simulate_revoke
Prove a revoke before signing by simulating the zero-amount revocation against live node state. Re-reads the grant to confirm removal, then returns calldata without broadcasting.
Instructions
Prove a revoke BEFORE it is signed. Builds the one transaction that removes a single approval — ERC-20 approve(spender, 0), NFT setApprovalForAll(operator, false), or a grant held inside Permit2 — then runs it against live state on the node and re-reads the grant in the same simulated block, so 'works' is measured, not assumed. Nothing is signed, sent or broadcast: the calldata comes back for a wallet or an offline signer, and the amount is hard-coded to zero. Read-only. Use check_approvals first to find which grant to remove; use this to prove that removing it will actually work.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | EVM only: approval (ERC-20, default) | nft_operator | permit2. A Permit2 grant survives zeroing the ERC-20 approval to Permit2, so it must be revoked as permit2 | |
| chain | Yes | ethereum | bsc | polygon | base | arbitrum | avalanche | solana | tron | |
| owner | Yes | the wallet that holds the grant: EVM 0x…, TRON T…, or Solana base58 | |
| token | Yes | token contract (EVM, TRON); on Solana, the token ACCOUNT that holds the delegate, not the mint | |
| spender | No | the spender or NFT operator to cut off (EVM, TRON); not used on Solana, where the delegate is read from the account |