Skip to main content

What is a transaction

A transaction is a signed message submitted to a blockchain that changes its state — transferring tokens, calling a contract function, or deploying a new contract. Once included in a block, transactions are permanent and irreversible. When you inspect an EVM transaction on a block explorer, its recorded parameters show everything that single submission includes:
FieldDescription
fromThe account initiating and paying gas
toThe recipient address or contract
valueAmount of native token to send (zero for most contract calls)
dataEncoded function call for contracts; empty for plain transfers
gas limitMaximum computation the sender is willing to pay for
maxFeePerGasMaximum total gas price the sender is willing to pay (EIP-1559)
maxPriorityFeePerGasTip paid to the block producer to prioritize inclusion (EIP-1559)
nonceA sequential counter that prevents the same transaction from being submitted twice
Most modern EVM transactions use the EIP-1559 fee format. Legacy transactions with a single gasPrice field are still valid but less common.

Transaction hash

Every submitted transaction receives a unique transaction hash (tx hash) — a hex string like 0x4a3f8b2c.... This is how you look up a transaction on a block explorer:
ChainBlock explorer
Ethereum mainnetetherscan.io
Ethereum Sepoliasepolia.etherscan.io
Base mainnetbasescan.org
Base Sepoliasepolia.basescan.org
Polygon PoSpolygonscan.com
Arbitrum Onearbiscan.io
Optimismoptimistic.etherscan.io
BNB Smart Chainbscscan.com
Avalanche C-Chainsnowtrace.io
Solana mainnetsolscan.io
Cobo returns the transaction hash after successful submission.

Gas fees

On-chain transactions require a fee to compensate the network for computation and storage. The fee model differs between EVM chains and Solana.

EVM chains

Gas is the unit of computational work. Every operation costs a fixed amount of gas, and the total fee depends on how much computation the transaction requires:
Transaction fee (EVM) = gas used × gas price (in Gwei)
Gas is paid in the chain’s native token — ETH on Ethereum and Base, POL on Polygon, BNB on BNB Smart Chain, AVAX on Avalanche. Modern EVM transactions use the EIP-1559 fee model, which splits the gas price into two components:
ComponentFieldDescription
Base feeSet by the protocol; burned, not paid to validators
Priority feemaxPriorityFeePerGasTip paid to the block producer to prioritize inclusion
The maxFeePerGas field caps the total amount the sender is willing to pay. Any difference between maxFeePerGas and the actual base fee + priority fee is refunded. Gas prices fluctuate with network congestion. During high activity, fees can spike significantly.

Solana

Solana uses a different fee model with two components:
ComponentDescription
Base feeA flat fee per signature, charged in lamports (1 SOL = 1,000,000,000 lamports)
Priority feeAn optional fee per compute unit to increase processing priority during congestion
Transaction fee (Solana) = (number of signatures × base fee per signature) + (compute units × compute unit price)
Solana transactions also carry a recent blockhash that expires after approximately 150 blocks (~1 minute). If a transaction is not included within that window, it becomes invalid and must be resubmitted. Agents that submit transactions autonomously should account for this expiry when retrying.

Transaction lifecycle in Cobo Agentic Wallet

This lifecycle is specific to Cobo Agentic Wallet. Other products and platforms may handle transaction submission and signing differently.
Submit → Policy validation → MPC signing → Broadcast → Included in block → Confirmed
  1. Policy validation — the policy engine (governed by the pact) checks the transaction. If it violates a policy, it is blocked before reaching the network.
  2. MPC signing — if it passes, the transaction is co-signed: the agent and Cobo for agent-initiated transactions; the app and Cobo for app-initiated transactions.
  3. Broadcast — the signed transaction is sent to the network, included in a block, and confirmed.

Transaction finality

TTransactions are not final the moment they are submitted. They must be included in a block and confirmed by subsequent blocks. For high-value operations, waiting for additional confirmations beyond the first provides stronger settlement guarantees.
ChainTime to first confirmationPractical finality
Ethereum mainnet~12 seconds~3 minutes (15 blocks)
Base mainnet~2 seconds~10 seconds
Polygon PoS~2 seconds~10 seconds
Solana mainnet~400 milliseconds~2 seconds
Ethereum Sepolia~12 seconds~3 minutes
Base Sepolia~2 seconds~10 seconds
Cobo waits for block inclusion before marking a transaction as confirmed.