Delegate XAN without gas
Sign an EIP-712 Delegation message offline. A relayer submits it and pays the gas.
This page has no dependencies and makes no network requests of its own — save it
and open it from disk.
How to generate your signature
- Connect your wallet. MetaMask, Rabby, Frame, Brave — anything that injects an EIP-1193 provider. A Ledger or Trezor connected through one of those works too.
- Let the page read your nonce. It calls
nonces(you)andeip712Domain()on the token through your wallet's own RPC, then checks the domain against the values pinned in this file. If you are fully offline, enter the nonce by hand. - Check the delegatee address character by character against the delegate profile. That address is the only thing this signature sets.
- Press Sign. Your wallet shows a
Delegationmessage with three fields: delegatee, nonce, expiry. If it shows an approval, a transfer, or raw unreadable bytes — reject it and ask before continuing. - Post the output block in the delegation topic. It is safe to publish.
Ledger: open the Ethereum app first. On older firmware you may need Blind signing enabled in the app's settings for EIP-712 messages.
Safe / smart-contract wallets cannot use this. delegateBySig verifies with
ECDSA.recover, not ERC-1271, so only externally owned accounts can delegate by signature.
From a Safe, call delegate() directly instead.
1 · Wallet
- Account
- Network
- XAN balance
- —
2 · Message
EIP-712 domain
- name
- Anoma
- version
- 1
- chainId
- 1
- verifyingContract
- 0xCEDbEA37C8872c4171259Cdfd5255CB8923Cf8e7
- separator
- digest
- —
3 · Sign
4 · Post this
Delegation moves votes only. It cannot transfer, spend, approve, lock or encumber your tokens. The signature is single-use, expires, and is safe to publish. Re-delegate any time — the last delegation on chain is the one that counts.