Skip to content
Tenzro
Documentation menu
Execution and interoperability

Chainlink CCIP

Move tokens and messages between Network 1 and CCIP-connected chains, with Cross-Chain Token pools, per-lane rate limits and fees in TNZO.

Chainlink CCIP (Cross-Chain Interoperability Protocol) connects Tenzro Network 1 to the chains CCIP serves. It is one of the protocols behind the bridge router. CCIP is a good fit when a transfer needs conservative limits: every token pool enforces rate limits per lane, and each inbound message passes two independent checks. This suits organisations in regulated industries, and you can pin a transfer to CCIP so the router never falls back to another protocol.

Verification

Every inbound CCIP message passes two layers before Tenzro acts on it:

  1. Commit store. A committee commits Merkle roots of source-chain messages; the message must be in a committed root.
  2. Risk management network. A separate set of nodes independently checks the commits and can block them.

A message that fails either check is rejected, and message ids are recorded so a message cannot be executed twice. Outbound, messages leave Tenzro only from finalised blocks, backed by portable finality certificates.

Messaging

Send an arbitrary payload to a receiver contract through the CCIP Router. The node quotes fees and builds ccipSend envelopes for any CCIP-connected chain, so an application or agent on Tenzro can drive CCIP on the chains where it operates as well as to and from Tenzro.

bash
# Quote the fee (Router.getFee)
tenzro ccip get-fee \
  --source-chain ethereum --dest-chain base \
  --receiver 0xRECEIVER --data-hex 0x68656c6c6f \
  --rpc https://rpc.tenzro.xyz

# Build the Router.ccipSend envelope (calldata and value)
tenzro ccip send \
  --source-chain ethereum --dest-chain base \
  --receiver 0xRECEIVER --data-hex 0x68656c6c6f \
  --gas-limit 200000 \
  --rpc https://rpc.tenzro.xyz

# Track execution on the destination
tenzro ccip track \
  --message-id <MESSAGE_ID> --dest-chain base --offramp-address 0xOFFRAMP \
  --rpc https://rpc.tenzro.xyz

Discover what is connected with tenzro ccip supported-chains, tenzro ccip supported-tokens and tenzro ccip lanes.

Token transfers

Bridge through CCIP only, with no fallback to another protocol:

bash
tenzro ccip bridge \
  --source-chain tenzro --dest-chain ethereum \
  --asset TNZO --amount 1000000000000000000 \
  --sender 0xYOUR_ADDRESS --recipient 0xRECIPIENT \
  --rpc https://rpc.tenzro.xyz

Amounts are in the token's smallest unit. The JSON-RPC method is tenzro_ccipBridge, an owner method that must be signed by the paying account. To let the router pick CCIP among other options instead, use tenzro bridge execute --protocol ccip.

Cross-Chain Tokens (CCT)

CCT is the CCIP standard for tokens that move natively between chains, without a wrapped copy held in a vault. Each token has a pool on each chain, of one of two types:

Pool typeSource chainDestination chain
BurnMintTokens are burnedTokens are minted
LockReleaseTokens are locked in the poolTokens are released from the pool

TNZO supports ERC-7802 crosschainMint and crosschainBurn hooks and works with both pool types. With BurnMint pools, TNZO's fixed supply of 1,000,000,000 is preserved across chains, and every mint and burn is recorded in Tenzro's cross-network supply registry; see Bridges.

Inspect pools:

bash
tenzro cct list-pools --rpc https://rpc.tenzro.xyz
tenzro cct get-pool --chain ethereum --rpc https://rpc.tenzro.xyz
tenzro ccip token-pool --chain ethereum --pool-address 0xPOOL --rpc https://rpc.tenzro.xyz

tenzro_cctBuildMessage builds the pool-aware CCIP message for a token transfer.

Rate limits

Every pool enforces token-bucket rate limits for each remote chain, inbound and outbound. A transfer larger than the remaining capacity is refused by the pool. Read the live state before sending large amounts:

bash
tenzro ccip rate-limits \
  --chain ethereum --pool-address 0xPOOL --remote-chain tenzro \
  --rpc https://rpc.tenzro.xyz

Check remaining capacity before a large transfer, and split it if it would exceed the limit.

Fees in TNZO

CCIP fees can be paid in a fee token rather than the source chain's native gas token. On Tenzro, quote the destination-native fee in TNZO and let the node cover destination gas from the CCIP sponsorship pool:

bash
tenzro bridge-fee quote --adapter ccip --dest-chain eip155:1 --native-fee 1000000000000000 \
  --rpc https://rpc.tenzro.xyz

The TNZO rate comes from price feeds where configured and a governance-set rate otherwise. Read the prices with tenzro_getPrice.

Methods

MethodAccess
tenzro_ccipGetFee, tenzro_ccipSend (builds an envelope, does not send), tenzro_ccipTrackopen
tenzro_ccipSupportedChains, tenzro_ccipSupportedTokens, tenzro_ccipLanesopen
tenzro_ccipTokenPool, tenzro_ccipRateLimits, tenzro_cctListPools, tenzro_cctGetPool, tenzro_cctBuildMessageopen
tenzro_ccipBridgeowner