How Signatures Work
Every Zedkr transaction is authorized by an EIP-712 typed signature. The user's private key never leaves their wallet, the relayer only ever sees the signed intent, not the key.
The Intent struct
typescript
// The SDK signs this Intent struct using EIP-712
{
user: "0xYourWallet",
target: "0xRecipientOrContract",
feeToken: "0xUSDT",
maxFee: "50000", // max fee in token units (6 decimals for USDT)
nonce: 42, // prevents replay
deadline: 1700000000 // Unix timestamp
}Security guarantees
Non-custodialThe relayer never holds your keys or tokens.
Bound to chainThe domain separator includes the chain ID, signatures can't be replayed on other networks.
DeadlineIntents expire at a user-specified timestamp. Stale signatures can't be executed.
Fee capmaxFee in the intent limits how much the router can deduct. The relayer can't charge more.
NonceEach nonce is consumed once, the same intent can never execute twice.
Tip
EIP-712 gives users a human-readable signing prompt in MetaMask. They can see exactly what they're authorizing before signing.