transfer
Original:🇺🇸 English
Translated
1 scriptsChecked / no sensitive code detected
STX, fungible token (SIP-010), and NFT (SIP-009) transfers on Stacks. All operations require an unlocked wallet.
2installs
Sourceaibtcdev/skills
Added on
NPX Install
npx skill4agent add aibtcdev/skills transferTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Transfer Skill
Unified asset transfer skill for the Stacks L2 — sends STX, SIP-010 fungible tokens, and SIP-009 NFTs to a recipient address. All three subcommands require an unlocked wallet.
Usage
bun run transfer/transfer.ts <subcommand> [options]Subcommands
stx
Transfer STX to a recipient address. Amount is specified in micro-STX (1 STX = 1,000,000 micro-STX).
bun run transfer/transfer.ts stx \
--recipient <address> \
--amount <microStx> \
[--memo <text>] \
[--fee low|medium|high|<microStx>]Options:
- (required) — Stacks address of the recipient (starts with SP or ST)
--recipient - (required) — Amount in micro-STX (e.g.,
--amountfor 2 STX)2000000 - (optional) — Memo text to attach to the transfer (max 34 bytes)
--memo - (optional) — Fee preset (
--fee,low,medium) or micro-STX amount; auto-estimated if omittedhigh
Output:
json
{
"success": true,
"txid": "abc123...",
"from": "SP2...",
"recipient": "SP3...",
"amount": "2 STX",
"amountMicroStx": "2000000",
"memo": null,
"network": "mainnet",
"explorerUrl": "https://explorer.hiro.so/txid/abc123..."
}token
Transfer any SIP-010 fungible token to a recipient. Accepts a well-known token symbol (, , , ) or a full contract ID.
sBTCUSDCxALEXDIKObun run transfer/transfer.ts token \
--recipient <address> \
--amount <uint> \
--contract <token-symbol-or-contract-id> \
[--memo <text>] \
[--fee low|medium|high|<microStx>]Options:
- (required) — Stacks address of the recipient
--recipient - (required) — Amount in the token's smallest unit (check token decimals)
--amount - (required) — Token symbol (e.g.,
--contract) or full contract ID (e.g.,sBTC)SP2...my-token - (optional) — Memo text (max 34 bytes)
--memo - (optional) — Fee preset or micro-STX amount; auto-estimated if omitted
--fee
Output:
json
{
"success": true,
"txid": "abc123...",
"from": "SP2...",
"recipient": "SP3...",
"contract": "SP2...my-token",
"amount": "1000000",
"memo": null,
"network": "mainnet",
"explorerUrl": "https://explorer.hiro.so/txid/abc123..."
}nft
Transfer a SIP-009 NFT to a recipient. Requires the NFT collection contract ID and the specific token ID.
bun run transfer/transfer.ts nft \
--recipient <address> \
--token-id <uint> \
--contract <contract-id> \
[--fee low|medium|high|<microStx>]Options:
- (required) — Stacks address of the recipient
--recipient - (required) — Integer token ID of the NFT to transfer
--token-id - (required) — NFT collection contract ID (e.g.,
--contract)SP2...my-nft - (optional) — Fee preset or micro-STX amount; auto-estimated if omitted
--fee
Output:
json
{
"success": true,
"txid": "abc123...",
"from": "SP2...",
"recipient": "SP3...",
"contract": "SP2...my-nft",
"tokenId": 42,
"network": "mainnet",
"explorerUrl": "https://explorer.hiro.so/txid/abc123..."
}Notes
- Wallet must be unlocked before any transfer. Use first.
bun run wallet/wallet.ts unlock - For STX, 1 STX = 1,000,000 micro-STX. For tokens, check decimals with the skill's
tokenssubcommand.get-info - NFT token IDs are integers. Use the skill's
nftsubcommand to list owned token IDs.get-holdings - Fee is paid in STX regardless of the asset being transferred. Ensure sufficient STX balance for the fee.
- The option is available for STX and token transfers, but not NFT transfers (not part of the SIP-009 standard).
--memo