Working with Blockchains
Carabaas provides a unified API across 60+ blockchain networks. Most operations — creating addresses, sending transactions, tracking balances — use the same endpoints regardless of the underlying chain. This page covers the general concepts; the chain-specific pages document operations unique to each ecosystem.
Network Identifiers
Every blockchain-related API call requires a network identifier. Use the Networks API to list all available networks:
curl -H "Authorization: Bearer $TOKEN" \
https://api.carabaas.com/api/v1/networks
Network identifiers follow the pattern {chain}-{environment}:
| Example | Chain | Environment |
|---|---|---|
bitcoin-mainnet | Bitcoin | Mainnet |
ethereum-sepolia | Ethereum | Testnet |
solana-mainnet | Solana | Mainnet |
cosmos-mainnet | Cosmos | Mainnet |
tron-mainnet | TRON | Mainnet |
@eth-like — Universal EVM Identifier
Use @eth-like to generate addresses that work across all EVM-compatible chains simultaneously:
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"accountId": "eFjwUQXB8CMnrTHSgYzaL6",
"network": "@eth-like",
"name": "Universal EVM Address"
}' \
https://api.carabaas.com/api/v1/addresses
Assets
Each network has native coins and tokens. Query available assets per network:
curl -H "Authorization: Bearer $TOKEN" \
https://api.carabaas.com/api/v1/networks/ethereum-mainnet/assets
{
"data": [
{ "asset": "c1", "name": "ETH", "decimals": 18, "type": "native" },
{ "asset": "c60_t0xdac17f958d2ee523a2206206994597c13d831ec7", "name": "USDT", "decimals": 6, "type": "erc20" }
]
}
The asset field in all transaction requests accepts a Universal Asset ID — the identifier returned by this endpoint. For native coins it's an internal ID (e.g., c1 for ETH). For tokens it follows the pattern c{coinType}_t{contractAddress} (e.g., c60_t0xdac1... for USDT on Ethereum).
Always use asset IDs from the /networks/{network}/assets endpoint — not human-readable names like "ETH" or "USDT".
Standard Transaction
The standard transaction creation works the same across all chains:
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"orderId": "e5f6a7b8-c9d0-4e1f-2a3b-4c5d6e7f8a9b",
"vaultId": "kR7mNpX2wQvL9sYhBjD4eT",
"destination": "recipient-address",
"network": "ethereum-mainnet",
"asset": "c1",
"amount": "1.0",
"feePriority": "medium"
}' \
https://api.carabaas.com/api/v1/transactions
Chain-Specific Options
Some networks accept additional parameters via the options field:
{
"orderId": "e5f6a7b8-c9d0-4e1f-2a3b-4c5d6e7f8a9b",
"vaultId": "kR7mNpX2wQvL9sYhBjD4eT",
"destination": "recipient-address",
"network": "ethereum-mainnet",
"asset": "c1",
"amount": "1.0",
"options": {
"gasLimit": 21000,
"memo": "payment-ref-123"
}
}
| Option | Networks | Description |
|---|---|---|
gasLimit | EVM chains | Custom gas limit for the transaction |
memo | Cosmos, Stellar, Ripple, TON | Memo/tag for deposit identification |
Chain Categories
Different blockchain families have different capabilities and requirements:
| Category | Chains | Key Differences |
|---|---|---|
| UTXO-based | Bitcoin, Litecoin, Dogecoin, Dash | Multiple inputs/outputs, address types (p2pkh, p2wpkh) |
| EVM | Ethereum, Polygon, BSC, Arbitrum, etc. | ERC-20 tokens, allowances, smart contracts |
| Cosmos/IBC | Cosmos Hub, Osmosis, Celestia, etc. | Delegation, memo field, IBC transfers |
| TRON | TRON | TRC-20 tokens, freeze/unfreeze, bandwidth |
| Stellar/XRP | Stellar, Ripple | Trustlines required before receiving tokens |
| Solana | Solana | SPL tokens, associated token accounts |
See the chain-specific pages for operations unique to each ecosystem.