Documentation Index Fetch the complete documentation index at: https://docs.arkadeos.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Sending assets uses the standard wallet.send() method. Specify the recipient address, an optional BTC amount (in satoshis), and the assets to transfer. The recipient does not need to be online.
Setup
Import the SDK and create a wallet:
import { MnemonicIdentity , Wallet } from '@arkade-os/sdk'
const identity = MnemonicIdentity . fromMnemonic ( "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about" )
const wallet = await Wallet . create ({
identity ,
arkServerUrl: 'https://arkade.computer' ,
})
Your wallet needs an offchain balance to cover transaction fees. See Receiving Payments to fund your wallet.
Receive Assets
You can either receive assets directly to your Arkade address, or issue a new asset :
const { assetId } = await wallet . assetManager . issue ({
amount: 10101 , // [101.01]
metadata: {
name: 'ABC Token' ,
ticker: 'ABC' ,
decimals: 2 ,
icon: 'https://example.com/abc.png' ,
},
})
Send a Partial Amount
Transfer some units of an asset to another wallet. The remaining units stay in your wallet as change.
const txid = await wallet . send ({
address: recipientAddress ,
assets: [{ assetId , amount: 543 }], // [5.43]
})
Send All Units
First, calculate your remaining balance:
const vtxos = await wallet . getVtxos ()
const assetPackets = vtxos
. flatMap (( v ) => v . assets ?? [])
. filter (( a ) => a . assetId === assetId )
const assetBalance = assetPackets . reduce (( sum , a ) => sum + a . amount , 0 )
console . log ( assetBalance ) // 9558 [95.58]
Now, transfer the entire asset balance to another wallet:
const txid = await wallet . send ({
address: recipientAddress ,
assets: [{ assetId: myAssetId , amount: assetBalance }],
})
After sending all units, your wallet will have zero balance for that asset.
Send with BTC
Attach a BTC amount alongside the asset transfer:
const txid = await wallet . send ({
address: recipientAddress ,
amount: 5000 , // 5000 sats
assets: [{ assetId , amount: 200 }], // [2.00]
})
The recipient receives both the BTC and the asset on the same VTXO.
Send Multiple Assets
Pass multiple entries in the assets array to send several assets in one transaction:
const { assetId : tokenA } = await wallet . assetManager . issue ({
amount: 100
})
const { assetId : tokenB } = await wallet . assetManager . issue ({
amount: 500
})
const txid = await wallet . send ({
address: recipientAddress ,
assets: [
{ assetId: tokenA , amount: 75 },
{ assetId: tokenB , amount: 250 },
],
})
Next Steps
Issue Assets Create new assets
Check Balance Query how many units your wallet holds