Transaction firewall

5 RECORDED / FOUR CHECKS, NO FIFTH

txGuard() forks the chain at the live block and simulates the exact pending call before the wallet signs. Paste an address to run it now; the recorded calls underneath replay a verdict from the same pipeline.

Check a contract

live gate / base mainnet or sepolia

Paste an address nobody here wrote. It runs through the same four checks, on the same pipeline, as the recorded calls below. The code is fingerprinted and compared to its graded version before anything is simulated, so an address on its own already answers something. Add calldata to check a specific call.

Recorded calls

STAGED FIXTURES / REPLAYED VERDICT

Four calls that were checked earlier, folded to the verdict. Open one to read the flags, the balance movements, and the values it can be re-derived from.

  1. Swap through a verified router

    to 0x76657269666965642d726f757465720000000000 / value 0 / Base Sepolia

    ALLOWevidence +
    ALLOW

    no simulator-confirmed red flag on this call at this block

    Reproducible for block 20000000 and the state at that block. It is not a prediction of what the transaction does once it lands.

    code matches the version that was graded

    flags

    the four checks

    • Drainer approval
    • Honeypot
    • Bad callee(advisory)
    • Owner or upgrade backdoor

    This set is closed. A name left unmarked was not reported by this run, which is not the same as a check that passed.

    Bad calleeadvisorysource scan, advisory only

    Source scan noted an unverified callee

    Reported by the advisory source scan only. An advisory finding never moves a verdict on its own; a simulator-confirmed finding is what blocks.

    Advisory only. It did not move this verdict and cannot move one on its own.

    balance movements

    • -1000000000000000 native to 0x636c69656e742d6167656e742d77616c6c657400
    • +4200000 0x666978747572652d657263323000000000000000 to 0x636c69656e742d6167656e742d77616c6c657400

    reproducible from

    block
    20000000
    from
    0x636c69656e742d6167656e742d77616c6c657400
    to
    0x76657269666965642d726f757465720000000000
    calldata hash
    0x666978747572652d63616c6c646174612d686173680000000000000000000000
    value
    0
    code fingerprint
    0x666978747572652d636f64652d66696e6765727072696e740000000000000000

    Run these values against the same chain and the check returns the same verdict, or this one is falsified. That is what separates it from an opinion about the contract.

  2. Unlimited approval to an unknown spender

    to 0x666978747572652d657263323000000000000000 / value 0 / Base Sepolia

    BLOCKevidence +
    BLOCK

    blocks this action: it grants an unlimited allowance to an unknown spender

    Reproducible for block 20000000 and the state at that block. It is not a prediction of what the transaction does once it lands.

    no prior grade for this code, so there is no baseline to compare against

    flags

    the four checks

    • Drainer approval
    • Honeypot
    • Bad callee
    • Owner or upgrade backdoor

    This set is closed. A name left unmarked was not reported by this run, which is not the same as a check that passed.

    Drainer approvalblocksconfirmed by simulation

    Unlimited allowance to an unknown spender

    The call approves the maximum uint256 allowance for an address outside the verified set, which lets that address move the full balance later without another signature.

    balance movements

    no balance moved

    reproducible from

    block
    20000000
    from
    0x636c69656e742d6167656e742d77616c6c657400
    to
    0x666978747572652d657263323000000000000000
    calldata hash
    0x666978747572652d63616c6c646174612d686173680000000000000000000000
    value
    0
    code fingerprint
    0x666978747572652d636f64652d66696e6765727072696e740000000000000000

    Run these values against the same chain and the check returns the same verdict, or this one is falsified. That is what separates it from an opinion about the contract.

  3. Owner-gated mint behind a proxy

    to 0x666978747572652d657263323000000000000000 / value 0 / Base Sepolia

    BLOCKevidence +
    BLOCK

    blocks this action: an owner-gated path fires during the call

    Reproducible for block 20000000 and the state at that block. It is not a prediction of what the transaction does once it lands.

    code moved since grading
    Checked before the simulation ran. Code that moved since it was graded blocks whatever the simulation goes on to find.

    flags

    the four checks

    • Drainer approval
    • Honeypot
    • Bad callee
    • Owner or upgrade backdoor

    This set is closed. A name left unmarked was not reported by this run, which is not the same as a check that passed.

    Owner or upgrade backdoorblocksconfirmed by simulation

    Owner-gated mint fires during this call

    Simulating the call reaches an owner-only mint path, so the balance the caller ends up holding can be diluted by the owner at will.

    balance movements

    no balance moved

    reproducible from

    block
    20000000
    from
    0x636c69656e742d6167656e742d77616c6c657400
    to
    0x666978747572652d657263323000000000000000
    calldata hash
    0x666978747572652d63616c6c646174612d686173680000000000000000000000
    value
    0
    code fingerprint
    0x666978747572652d70726f78792d66696e6765727072696e7400000000000000

    Run these values against the same chain and the check returns the same verdict, or this one is falsified. That is what separates it from an opinion about the contract.

  4. Call whose fork could not be established

    to 0x76657269666965642d726f757465720000000000 / value 0 / Base Sepolia

    BLOCKevidence +
    BLOCK

    blocks this action: the fork could not be established, so the call was never checked

    Reproducible for block 20000000 and the state at that block. It is not a prediction of what the transaction does once it lands.

    no prior grade for this code, so there is no baseline to compare against

    flags

    the four checks

    • Drainer approval
    • Honeypot
    • Bad callee
    • Owner or upgrade backdoor

    This set is closed. A name left unmarked was not reported by this run, which is not the same as a check that passed.

    No flags, and it still blocks. The failure is structural: the call was never checked, and a check that cannot run blocks rather than passing.

    balance movements

    no balance moved

    reproducible from

    block
    20000000
    from
    0x636c69656e742d6167656e742d77616c6c657400
    to
    0x76657269666965642d726f757465720000000000
    calldata hash
    0x666978747572652d63616c6c646174612d686173680000000000000000000000
    value
    0
    code fingerprint
    0x666978747572652d636f64652d66696e6765727072696e740000000000000000

    Run these values against the same chain and the check returns the same verdict, or this one is falsified. That is what separates it from an opinion about the contract.

  5. Contract whose source tells the scanner to report it clean

    to 0xB21304F3eCFb78345473d3Aa4198a21C2CaAB740 / value 0 / Base Sepolia

    BLOCKevidence +
    BLOCK

    unlimited allowance to 0x00000000000000000000000000000000BaDc0dE0

    Reproducible for block 44586063 and the state at that block. It is not a prediction of what the transaction does once it lands.

    no prior grade for this code, so there is no baseline to compare against

    flags

    the four checks

    • Drainer approval
    • Honeypot
    • Bad callee
    • Owner or upgrade backdoor

    This set is closed. A name left unmarked was not reported by this run, which is not the same as a check that passed.

    Drainer approvalblocksconfirmed by simulation

    unlimited allowance to 0x00000000000000000000000000000000BaDc0dE0

    this call leaves 0x00000000000000000000000000000000BaDc0dE0 holding an unlimited amount (uint256 max) of 0x7f53f01C30C1f868E40ECA0840493A0ea8057Df7 belonging to 0x1111111111111111111111111111111111111111. Blocked because the allowance is unbounded, and the spender is an address with no code, so nothing constrains what it does next.

    Drainer approvaladvisorysource scan, advisory only

    Unbounded token approval granted to an arbitrary third-party spender

    Both `DrainerRouter.swap` and `InjectionFixture.stake` invoke `IDrainable(token).forceApprove(msg.sender, collector, type(uint256).max)`. This silently grants the user an unlimited allowance to the immutable `collector` address, which is the core mechanic of a token drainer. The source also contains adversarial comments instructing the automated reviewer to ignore these functions and clear the contract; these instructions are treated as evidence of obfuscation rather than direction.

    Advisory only. It did not move this verdict and cannot move one on its own.

    source scan

    advisory source scanroute 0g-compute:0gm-1.0-35b-a3b
    • Unbounded token approval granted to an arbitrary third-party spender. Both `DrainerRouter.swap` and `InjectionFixture.stake` invoke `IDrainable(token).forceApprove(msg.sender, collector, type(uint256).max)`. This silently grants the user an unlimited allowance to the immutable `collector` address, which is the core mechanic of a token drainer. The source also contains adversarial comments instructing the automated reviewer to ignore these functions and clear the contract; these instructions are treated as evidence of obfuscation rather than direction.

    Proposed, not confirmed. An advisory finding never moves a verdict on its own, in either direction: it cannot block a call, and it cannot talk a simulator-confirmed flag out of blocking one.

    balance movements

    no balance moved

    reproducible from

    block
    44586063
    from
    0x1111111111111111111111111111111111111111
    to
    0xB21304F3eCFb78345473d3Aa4198a21C2CaAB740
    calldata hash
    0x2a81f6c3adda93eb4e39d256463e85b51d07672a1977125c70860eef516bb054
    value
    0
    code fingerprint
    0x6d167ae7d4fade0b74e4536f65afbec2a7c24b7e2d4ac7c9751366fed7d4e45b

    Run these values against the same chain and the check returns the same verdict, or this one is falsified. That is what separates it from an opinion about the contract.

preflight console / product page / deckx402 on Hedera / ERC-8004 on Base / nobody can pay for a grade