Chainlink CCIP.
- STATUS
- Stable
- CRATE
- tenzro-bridge
- ADAPTER
- ChainlinkCcipAdapter
- CLASS
- RegulatedRail
Adapter class + router
The ChainlinkCcipAdapter declares BridgeAdapterClass::RegulatedRail, so BridgeRouter picks it over generic adapters whenever the caller selects RoutingStrategy::Regulated. The router falls back to lowest-fee only when no RegulatedRail adapter covers the lane. Two signature-verification layers gate every inbound message: the OCR commit-store committee (install_commit_set) and the RMN ARM set (install_rmn_set).
The node exposes a CCIP JSON-RPC namespace alongside the standalone Chainlink MCP server. The tenzro_ccip* family covers fee quoting, send envelopes, message tracking, lane discovery, CCT pool inspection, rate-limiter state, and router-mediated bridging. The Rust and TypeScript SDKs expose this as client.ccip(); the CLI as tenzro ccip.
Cross-chain messaging
CCIP messaging on top of the Chainlink Router with live fee quoting via Router.getFee() and message tracking via OffRamp.getExecutionState(). The node exposes this as both JSON-RPC (tenzro_ccip*) and MCP tools.
tenzro_ccipGetFee/ccip_get_fee—Router.getFee()eth_call.tenzro_ccipSend/ccip_send—Router.ccipSend()envelope (calldata +msg.value).tenzro_ccipTrack/ccip_track—OffRamp.getExecutionState().tenzro_ccipSupportedChains,tenzro_ccipSupportedTokens,tenzro_ccipLanes— Chainlink docs-API passthrough.tenzro_ccipBridge/ccip_bridge—BridgeRouterdispatch pinned to the CCIP adapter; refuses to fall back to a generic rail.
Cross-Chain Token (CCT) v1.6+
CCT is the Chainlink standard for native cross-chain token transfers without wrapped representations. Tenzro implements pool registry, LockRelease and BurnMint pool metadata per chain, and per-lane rate limits.
tenzro_ccipTokenPool/ccip_token_pool— CCT pool metadata read from the pool'sgetToken().tenzro_ccipRateLimits/ccip_rate_limits— inbound + outboundRateLimiter.TokenBucketstate per (pool, remote-chain) pair.tenzro_cctListPools,tenzro_cctGetPool,tenzro_cctBuildMessage— pool registry and message build.
Data Feeds and Data Streams
chainlink_get_price—AggregatorV3.latestRoundData().chainlink_list_feeds— registered feeds.ds_get_report— sub-second market data via Data Streams REST API.ds_list_feeds— crypto / forex / equities / commodities streams.
VRF v2.5
vrf_request_random—requestRandomWords()calldata.vrf_get_subscription— subscription balance and consumer set.
Proof of Reserve
Chainlink Proof of Reserve feeds back the Secure-Mint policy: the reserve attestation that authorizes a tokenized asset to mint up to reserve is signed by a registered attestor and time-bound.
por_get_reserve— read reserve from a PoR feed.por_list_feeds— registered PoR feeds (WBTC, USDC, TUSD, etc.).
Automation and Functions
chainlink_check_upkeep— dry-runcheckUpkeep().chainlink_get_upkeep_info— registry query.chainlink_estimate_functions_cost,chainlink_get_subscription— Functions subscription metadata.
Surfaces
The CCIP tool surface is available three ways: the node's tenzro_ccip* JSON-RPC family at rpc.tenzro.network, the main MCP server at mcp.tenzro.network/mcp, and the dedicated Chainlink MCP server at chainlink-mcp.tenzro.network/mcp (which also carries Data Feeds, Data Streams, VRF, PoR, Automation, and Functions).
The Rust and TypeScript SDKs expose this as client.ccip(); the CLI as tenzro ccip {get-fee, send, track, supported-chains, supported-tokens, lanes, token-pool, rate-limits, bridge}.