Quick pre-sign verdict (free)
presign_quick_checkRead-only
Free: the green/orange/red verdict only, for a transaction, token approval, EIP-712 signature, XRP Ledger transaction (type xrpl) or Algorand transaction (type algorand) your agent is about to sign. Limited to 10 calls per hour. For the reason codes and details use presign_check ($0.01); for a plain-language explanation presign_check_explain ($0.03).
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | transaction: the target contract | |
| tx | No | xrpl: the unsigned transaction JSON (TransactionType, Account, Destination, Amount, …) | |
| data | No | transaction: 0x-prefixed calldata | |
| from | No | transaction or message, optional: your wallet address; the transaction is then simulated (what really leaves and arrives; orange HIDDEN_APPROVAL, SIMULATION_NFT_OUT, SIMULATION_FAILS) and its recipients are compared with who this wallet paid before (red ADDRESS_POISONING for a look-alike) | |
| type | Yes | What the agent is about to sign; message = a plain personal_sign / eth_sign message in message; solana = a Solana transaction in transaction; xrpl = an unsigned XRP Ledger transaction in tx; algorand = an Algorand transaction in transaction, or a group in transactions | |
| x402 | No | optional, EIP-3009 payments only: the x402 payment requirements you are paying ({ accepted: { scheme, network, amount, asset, payTo, maxTimeoutSeconds, extra } }, one entry of the 402's accepts); red when the signature pays more, someone else, another token or chain | |
| token | No | approval: the token contract | |
| value | No | transaction: native value in wei | |
| amount | No | approval: amount in base units (0 = revoke) | |
| intent | No | optional: what you are trying to do, in one sentence (e.g. "swap 10 USDC for ETH on Uniswap"); orange INTENT_MISMATCH when signing would do more or something else | |
| method | No | message: how it is signed (default personal_sign); eth_sign is always red | |
| origin | No | optional: the site asking for the signature or transaction (URL or hostname); a domain under 30 days old is orange | |
| chainId | No | EVM chain id, required for approval, transaction and signature: 1, 10, 56, 137, 8453, 42161 (8453 = Base); optional for message | |
| message | No | message: the text or 0x-hex about to be signed; a Sign-In with Ethereum message for another site than origin is red, unreadable bytes are orange | |
| network | No | xrpl: xrpl:0 (mainnet, default) or xrpl:1 (testnet) | |
| spender | No | approval: who gets the allowance | |
| typedData | No | signature: the exact eth_signTypedData_v4 payload (Permit, Permit2, EIP-3009 x402 payment, Seaport) | |
| transaction | No | solana: the base64 wire transaction about to be signed; decoded and simulated (red SOLANA_TOKEN_ACCOUNT_TAKEOVER, SOLANA_ACCOUNT_ASSIGN; orange SOLANA_UNLIMITED_DELEGATE, SOLANA_DURABLE_NONCE, HIDDEN_APPROVAL, SIMULATION_FAILS). algorand: one base64 msgpack transaction (unsigned or signed); red ALGORAND_REKEY, ALGORAND_CLOSE_ACCOUNT, ALGORAND_ASSET_CLOSE, ALGORAND_FAKE_STABLECOIN; simulated | |
| transactions | No | algorand: an atomic group, each a base64 msgpack transaction; send the whole group so every transaction is checked |
Output Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| verdict | Yes | green: go ahead; orange: ask the user; red: do not sign or buy |