Source and destination for each transaction type
Refer to the following table for the source and destination types corresponding to each transaction type. Detailed definitions for each source type and destination type can be found below the table.If you transfer tokens between two wallets created on Cobo Portal, two transactions will be recorded: a deposit into the destination wallet and a withdrawal from the source wallet.
Transaction source types
The transaction source types are as follows:Asset: A Custodial Wallet (Asset Wallet).Web3: A Custodial Wallet (Web3 Wallet).Org-Controlled: An MPC Wallet (Organization-Controlled Wallet).User-Controlled: An MPC Wallet (User-Controlled Wallet).Main: An Exchange Wallet (Main Account).Sub: An Exchange Wallet (Sub Account).DepositFromAddress: A wallet address.DepositFromWallet: An Exchange Wallet.DepositFromLoop: A transfer sent through the Cobo Loop transfer network.
address and included_utxos usage
This section explains, when the source_type is Web3, Org-Controlled, or User-Controlled, which source properties (address and included_utxos) need to be specified for different chains and transaction types, and how the system processes them.
UTXO-based chains
-
Regular transactions
- If only
included_utxosis specified: The transaction will use only these specified UTXOs. - If only
addressis specified: The system will select UTXOs only from this address. - If both
addressandincluded_utxosare specified: The system will verify that the UTXOs belong to the specified address, and only these UTXOs will be used. - If neither
addressnorincluded_utxosis specified: The system will automatically select UTXOs from all addresses under the wallet associated withwallet_id.
- If only
-
RBF transactions
addressorincluded_utxosin an RBF transaction can be different from those in the original transaction.
- If only
included_utxosis specified: The transaction will use only these specified UTXOs. - If only
addressis specified: The system will select UTXOs only from this address. - If both
addressandincluded_utxosare specified: The system will verify that the UTXOs belong to the specified address, and only these UTXOs will be used. - If neither
addressnorincluded_utxosis specified:- If the original transaction specified
included_utxos: The transaction will use the UTXOs specified in the original transaction. - If the original transaction did not specify
included_utxos: The system will automatically select UTXOs from all addresses under the wallet associated withwallet_idin the original transaction.
- If the original transaction specified
- If only
Account-based chains
- The transaction must specify
address, otherwise the token transfer will fail. - When estimating transfer fees, providing only
wallet_idis sufficient;addressis not required.
Transaction destination types
The transaction destination types are as follows:Address: A wallet address.ExchangeWallet: An Exchange Wallet.EVM_Contract: An Ethereum Virtual Machine (EVM) smart contract.SOL_Contract: A Solana smart contract (program).Stellar_Contract: A Stellar smart contract.TRON_Contract: A TRON smart contract.EVM_EIP_191_Signature: An EVM EIP-191 signature. For more details, see Signed Data Standard.EVM_EIP_712_Signature: An EVM EIP-712 signature. For more details, see Typed structured data hashing and signing.BTC_BIP_137_Signature: A BTC BIP-137 signature. For more details, see BIP-137.BTC_EIP_191_Signature: A BTC EIP-191 signature.BTC_BIP_322_Signature: A BTC BIP-322 signature. For more details, see BIP-322.COSMOS_ADR_36_Signature: A COSMOS ADR-36 signature. For more details, see ADR-36.Raw_Message_Signature: A raw message signature.DepositToAddress: A wallet address.DepositToWallet: An Exchange Wallet.
Address destination amount
When you call Transfer token, theaccount_output.amount in an Address destination must be a decimal amount string (for example, 1.5) that converts to a positive base-unit amount. The decimal precision must not exceed the tokenโs decimal value, which you can retrieve by calling Get token information.
For external Custodial Wallet withdrawals, the amount must also meet or exceed the tokenโs dust_threshold (minimum withdrawal amount). Retrieve dust_threshold by calling Get token information.
If account_output.amount fails validation, the API may return error code 2006 with an error_message such as account_output.amount invalid or Invalid parameter: account_output.amount. For external Custodial Wallet withdrawals, precision, positivity, or dust_threshold failures may return amount-specific errors instead of 2006, depending on the wallet path.