Tenzro
Cross-chain

ERC-7683 intents.

Native support for ERC-7683 cross-chain orders — user-signed open orders, resolved settlement intent, and chain-discriminated outputs. Persisted in CF_SETTLEMENTS on both origin and fill sides with deterministic IDs.
STATUS
Types shipped, on-chain envelope live
CRATE
tenzro-types
CAIP-2 (mainnet)
0x10ED20
CAIP-2 (testnet)
0x10ED21
01

The type surface

The intent_7683 module in tenzro-types defines the full type surface:

  • CrossChainOrder / GaslessCrossChainOrder — user-signed open orders
  • ResolvedCrossChainOrder — the IOriginSettler.resolve return shape
  • Output / TargetOutput — chain-discriminated 32-byte recipient + uint256 amount
  • FillInstruction — destination-chain execution payload
  • TenzroOrderData — Tenzro-native opaque payload
  • TokenAmount
  • ProofRoute — LayerZero / Wormhole / DeBridge / Hyperlane
  • OrderState — Open → AwaitingProof → Settled / Refunded / ForceRefundEligible
  • Tenzro7683Order — the on-chain envelope
02

Order IDs are deterministic

compute_order_id is byte-stable:

order_id = SHA-256(
  "tenzro/7683/order"
    || swapper
    || nonce_le
    || origin_chain_id_le
    || fill_deadline_le
    || order_data_type
    || order_data
)

The same hash works on the origin side (7683_origin: prefix) and on the fill side (7683_dest: prefix), so cross-chain idempotency is just a key lookup.

03

uint256 boundary

u128_to_uint256_be and uint256_be_to_u128 are the only sanctioned conversion helpers. uint256_be_to_u128 rejects non-zero high 128 bits to guard against silent truncation when fill-side EVM contracts send amounts larger than our internal u128 ledger can express.

04

Chain IDs

CAIP-2 chain IDs: Tenzro mainnet is 0x10ED20, Tenzro testnet is 0x10ED21. Use these when constructing FillInstruction.destinationChainId or matching CrossChainOrder.originChainId.

Related
← All docs