{"uid":"cap_rh_THIKtvwNNydfcGqO19","slug":"korp-txcert-41887c5d","name":"Korp TxCert","description":"Check an unsigned EVM transaction before an AI agent signs it. Enforces spending limits, recipient restrictions, ERC20 approval rules, unlimited approval protection, and calldata policy. Only PASS receives a short-lived policy certificate. This is policy conformity, not simulation or a safety guarantee.","url":"https://korp-txcert.mute-cell-557f.workers.dev/v1/certify","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"from":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"policy":{"type":"object","required":["expectedAction","allowedRecipients","allowedSpenders","maxNativeValueWei","maxTokenSpend","allowUnlimitedApproval","allowUnknownCalls"],"properties":{"maxTokenSpend":{"type":"array","items":{"type":"object","required":["token","amount"],"properties":{"token":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"amount":{"type":"string","pattern":"^(0|[1-9][0-9]*)$","maxLength":78}},"additionalProperties":false},"maxItems":100},"expectedAction":{"enum":["native-transfer","transfer","transferFrom","approve","swap","unknown"],"type":"string"},"allowedSpenders":{"type":"array","items":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"maxItems":100},"allowUnknownCalls":{"type":"boolean"},"allowedRecipients":{"type":"array","items":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"maxItems":100},"maxNativeValueWei":{"type":"string","pattern":"^(0|[1-9][0-9]*)$","maxLength":78},"allowUnlimitedApproval":{"type":"boolean"}},"additionalProperties":false},"chainId":{"type":"number","const":8453},"transaction":{"type":"object","required":["to","data","value"],"properties":{"to":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"data":{"type":"string","pattern":"^0x(?:[0-9a-fA-F]{2})*$","maxLength":8194},"nonce":{"type":"string","pattern":"^(0|[1-9][0-9]*)$","maxLength":78},"value":{"type":"string","pattern":"^(0|[1-9][0-9]*)$","maxLength":78}},"additionalProperties":false}}},"responseSchema":{"type":"json","example":{"checks":[{"id":"CHAIN_ALLOWED","status":"PASS"},{"id":"SENDER_NOT_BURN","status":"PASS"},{"id":"TARGET_NOT_BURN","status":"PASS"},{"id":"NATIVE_VALUE_LIMIT","status":"BLOCK"},{"id":"RECIPIENT_ALLOWED","status":"PASS"},{"id":"EXPECTED_ACTION","status":"PASS"}],"chainId":8453,"decoded":{"action":"native-transfer","amount":"1001","recipient":"0x3333333333333333333333333333333333333333"},"version":"1","decision":"BLOCK","policyHash":"0x76c972b65aef2890ac0f1d0e1161b899b6e6cef2ebb56d90e16c3e1dc04ac8e0","certificate":null,"transactionHash":"0xa0d43ab25ccb83ae60f29efb115f48c9976bd0ed4ba54b25e9f0bfd7f67eac93"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.01","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.01/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_EOfBVjouEujC2TwNst6mR","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Validates an unsigned EVM transaction against a caller-defined policy and issues a short-lived certificate only if all policy checks pass.","exampleAgentPrompt":"Before you sign this transaction, run it through Korp TxCert — I want to enforce a max native value of 500000000000000000 wei, only allow recipient 0xAbCd...1234, block unlimited ERC20 approvals, and expect a native-transfer action on Base (chain 8453).","exampleUseCases":[{"title":"Guard AI agent wallet spending","prompt":"Before my agent signs any outgoing ETH transfer on Base, check it against these rules: max 0.1 ETH (100000000000000000 wei), only allowed recipient is 0x1111111111111111111111111111111111111111, no unknown calls allowed, and expected action is native-transfer. Only let it proceed if you get a PASS certificate."},{"title":"Enforce ERC20 approval limits for DeFi agent","prompt":"My trading agent is about to approve a token spend — run it through the policy checker first. The sender is 0xAAAA...BBBB on Base, the token is 0xUSDC...contract, max spend is 1000000000 (1000 USDC), block unlimited approvals, and the expected action is approve. Tell me if it passed."},{"title":"Whitelist-only swap validation","prompt":"Before my agent executes a swap on Base, validate the transaction against my policy: allowed spenders are only 0xDEX1...5678 and 0xDEX2...9abc, unknown calls are not allowed, expected action is swap, and max native value is zero. Give me the full list of which checks passed or blocked."}],"resultDescription":"Returns a JSON object with a decision field (PASS or BLOCK), an array of per-check results each with an id and status, a decoded transaction summary (action, amount, recipient), a policyHash, a transactionHash, and a certificate field that is non-null and contains a short-lived policy certificate only when the decision is PASS.","failureModes":["Transaction exceeds maxNativeValueWei — NATIVE_VALUE_LIMIT check returns BLOCK","Recipient not in allowedRecipients list — RECIPIENT_ALLOWED check returns BLOCK","Decoded action does not match expectedAction — EXPECTED_ACTION check returns BLOCK","Token spend exceeds maxTokenSpend — TOKEN_SPEND_LIMIT check returns BLOCK","Unlimited ERC20 approval detected when allowUnlimitedApproval is false — returns BLOCK","Unknown calldata when allowUnknownCalls is false — returns BLOCK","Invalid address format or malformed hex data — 400 validation error","chainId not 8453 (Base) — rejected, only Base mainnet is supported","Payment not included or insufficient — 402 Payment Required"],"whenToPreferThis":"Use Korp TxCert when an AI agent needs a lightweight, policy-enforced pre-flight gate before signing any EVM transaction on Base, especially when you want to enforce spending caps, restrict recipients to a whitelist, block unlimited ERC20 approvals, and require a verifiable certificate of conformity before execution. Prefer this over simulation tools (like Tenderly) when you need a policy artifact rather than a gas estimate or state trace, and over on-chain guards when you want an off-chain check with zero gas cost.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-18T06:37:44.229Z","isFirstParty":false}