Documentation Index Fetch the complete documentation index at: https://docs.yativo.com/llms.txt
Use this file to discover all available pages before exploring further.
This guide takes you from zero to a completed on-chain transaction using the Yativo Crypto API. Each step includes examples in cURL, TypeScript, and Python.
Before starting, make sure you have a Yativo account with 2FA enabled and an API key with read, write, and transactions permissions. See the main Quickstart if you haven’t done this yet.
Authenticate
Exchange your API credentials for a Bearer token: curl -X POST https://crypto-api.yativo.com/api/v1/apikey/token \
-H "Content-Type: application/json" \
-d '{
"api_key": "yvk_live_...",
"api_secret": "yvs_live_..."
}'
import { YativoCrypto } from '@yativo/sdk' ;
const client = new YativoCrypto ({
apiKey: process . env . YATIVO_API_KEY ! ,
apiSecret: process . env . YATIVO_API_SECRET ! ,
});
// The SDK handles token exchange automatically
from yativo import YativoCrypto
client = YativoCrypto(
api_key = os.environ[ 'YATIVO_API_KEY' ],
api_secret = os.environ[ 'YATIVO_API_SECRET' ],
)
# The SDK handles token exchange automatically
Save the access_token — you’ll use it as Authorization: Bearer {token} in all subsequent requests.
Create an account
Accounts are containers that hold wallets and assets. Create one for your business or for a specific use case: curl -X POST https://crypto-api.yativo.com/api/v1/accounts/create-account \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"account_name": "Main Treasury",
"account_type": "business"
}'
const account = await client . accounts . create ({
account_name: 'Main Treasury' ,
account_type: 'business' ,
});
console . log ( 'Account ID:' , account . id );
account = client.accounts.create(
account_name = 'Main Treasury' ,
account_type = 'business' ,
)
print ( 'Account ID:' , account[ 'id' ])
{
"id" : "acc_01abc123" ,
"account_name" : "Main Treasury" ,
"account_type" : "business" ,
"created_at" : "2026-03-26T10:00:00Z"
}
Save the id — you’ll need it to add assets.
Add a wallet
Add a wallet for a specific chain and token to your account: curl -X POST https://crypto-api.yativo.com/api/v1/assets/add-asset \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"account_id": "acc_01abc123",
"chain": "solana",
"ticker": "USDC_SOL"
}'
const wallet = await client . assets . add ({
account_id: account . id ,
chain: 'solana' ,
ticker: 'USDC_SOL' ,
});
console . log ( 'Deposit address:' , wallet . address );
wallet = client.assets.add(
account_id = account[ 'id' ],
chain = 'solana' ,
ticker = 'USDC_SOL' ,
)
print ( 'Deposit address:' , wallet[ 'address' ])
{
"id" : "asset_01xyz789" ,
"account_id" : "acc_01abc123" ,
"chain" : "solana" ,
"ticker" : "USDC_SOL" ,
"address" : "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU" ,
"balance" : "0" ,
"created_at" : "2026-03-26T10:01:00Z"
}
The address is your deposit address. Share it with anyone who needs to send funds to this wallet.
Check balance
After funding the wallet (or for an existing asset), check the current balance: curl -X POST https://crypto-api.yativo.com/api/v1/balance/check \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"asset_id": "asset_01xyz789"}'
const balance = await client . balance . check ({ asset_id: wallet . id });
console . log ( 'Balance:' , balance . balance , balance . ticker );
balance = client.balance.check( asset_id = wallet[ 'id' ])
print ( f "Balance: { balance[ 'balance' ] } { balance[ 'ticker' ] } " )
{
"asset_id" : "asset_01xyz789" ,
"chain" : "solana" ,
"ticker" : "USDC_SOL" ,
"balance" : "100.00" ,
"balance_usd" : "100.00" ,
"last_updated" : "2026-03-26T10:05:00Z"
}
Send funds
Send crypto from your wallet to an external address: curl -X POST https://crypto-api.yativo.com/api/v1/transactions/send-funds \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"account": "64b1f9e2a3c4d5e6f7a8b9c0",
"assets": "64b1f9e2a3c4d5e6f7a8b9d1",
"receiving_address": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
"amount": 10,
"type": "USDC",
"chain": "solana",
"category": "payment",
"priority": "medium"
}'
const tx = await client . transactions . send ({
account: wallet . accountId ,
assets: wallet . id ,
receiving_address: '9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM' ,
amount: 10 ,
type: 'USDC' ,
chain: 'solana' ,
category: 'payment' ,
priority: 'medium' ,
});
console . log ( 'Transaction ID:' , tx . data . _id );
console . log ( 'Status:' , tx . data . status );
tx = client.transactions.send(
account = wallet[ 'account_id' ],
assets = wallet[ 'id' ],
receiving_address = '9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM' ,
amount = 10 ,
type = 'USDC' ,
chain = 'solana' ,
category = 'payment' ,
priority = 'medium' ,
)
print ( 'Transaction ID:' , tx[ 'data' ][ '_id' ])
print ( 'Status:' , tx[ 'data' ][ 'status' ])
{
"status" : true ,
"message" : "Transaction Created Successfully" ,
"data" : {
"_id" : "64c2a1f3b4d5e6f7a8b9c0d1" ,
"account" : "64b1f9e2a3c4d5e6f7a8b9c0" ,
"assets" : "64b1f9e2a3c4d5e6f7a8b9d1" ,
"receiving_address" : "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM" ,
"amount" : 10 ,
"type" : "USDC" ,
"chain" : "solana" ,
"category" : "payment" ,
"status" : "pending" ,
"created_at" : "2026-03-26T10:06:00Z"
}
}
The transaction starts as pending and moves to completed once confirmed on-chain. Set up a webhook to get notified when it completes.
What’s Next
Webhooks Get notified in real time when deposits arrive or transactions complete.
Supported Chains See all supported blockchains and tokens.
Yativo Card Issue debit cards funded from crypto balances.
Sandbox Test your integration safely without real funds.