Tenzro
Execution

Permit2 SignatureTransfer.

Permit2 lets a token holder sign a single, expiring authorization that any third party can use to pull a bounded amount of a token. Tenzro implements the protocol-level primitive in tenzro-vm::permit2, with the witness path bound to ERC-7683 cross-chain orders for end-to-end gasless flows.
STATUS
Testnet
CRATE
tenzro-vm::permit2
STABILITY
Stable
TYPE
Component
01

Canonical verifying contract

0x0000000000000000000000000000000000001023

domain_name: "Permit2"
EIP-712 domain: name + chain_id + verifying_contract
02

Typed data

TokenPermissions { token, amount }
PermitTransferFrom { permitted, spender, nonce, deadline }
PermitWitnessTransferFrom {
  permitted, spender, nonce, deadline,
  witness (32 bytes), witness_type_name, witness_type_string
}
03

Nonce bitmap

Per-owner 256-bit-per-word bitmap, identical to the Uniswap layout. The high 248 bits of the nonce are the word position; the low 8 bits are the bit position. Owners can sign multiple permits in parallel without serializing through a counter.

04

RPCs

tenzro_permit2DomainSeparator
tenzro_permit2Digest {
  token, amount, spender, nonce, deadline,
  witness?, witness_type_name?, witness_type_string?
}
tenzro_permit2VerifyAndConsume { ..digest_params, owner, signature }
tenzro_permit2NonceUsed { owner, nonce }
05

Witness for ERC-7683

When an ERC-7683 origin opener wants gasless transfer of inputs, the witness is the order id and the type-string is the Tenzro 7683 order shape. The single signature that authorizes the Permit2 pull also signs the cross-chain intent — relayer-friendly, replay-safe.

Related
← All docs