Skip to main content

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}:

ExampleChainEnvironment
bitcoin-mainnetBitcoinMainnet
ethereum-sepoliaEthereumTestnet
solana-mainnetSolanaMainnet
cosmos-mainnetCosmosMainnet
tron-mainnetTRONMainnet

@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).

tip

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"
}
}
OptionNetworksDescription
gasLimitEVM chainsCustom gas limit for the transaction
memoCosmos, Stellar, Ripple, TONMemo/tag for deposit identification

Chain Categories

Different blockchain families have different capabilities and requirements:

CategoryChainsKey Differences
UTXO-basedBitcoin, Litecoin, Dogecoin, DashMultiple inputs/outputs, address types (p2pkh, p2wpkh)
EVMEthereum, Polygon, BSC, Arbitrum, etc.ERC-20 tokens, allowances, smart contracts
Cosmos/IBCCosmos Hub, Osmosis, Celestia, etc.Delegation, memo field, IBC transfers
TRONTRONTRC-20 tokens, freeze/unfreeze, bandwidth
Stellar/XRPStellar, RippleTrustlines required before receiving tokens
SolanaSolanaSPL tokens, associated token accounts

See the chain-specific pages for operations unique to each ecosystem.

See Also