Knowledge · how RUNS work

A RUN tracks one drill end-to-end. Fire it with your own wallet, record it, then verify it against live chain state.

The four vectors

  • Mempool lure

    Sends native coin with deliberately starved gas. Sits pending unconfirmed — the classic “incoming funds” lure.

  • Zero-value transfer

    Calls transfer(target, 0) on a real token (USDC, USDT, WETH, cbBTC, WBTC, WPOL or any contract). Emits a Transfer event with zero balance movement.

  • Address poisoning

    Calls emitPoisonedTransfer on your deployed 3GTT drill token — Transfer event, no balance delta.

  • Unverified token transfer

    Real transfer() against any ERC-20 contract you paste or deploy.

Questions

  • What is a RUN?

    A RUN is one executed drill: BROADCAST (tx sent + recorded) → Verify (chain read + heuristics) → FRAUD_INTERCEPTED or VERIFIED_LEGITIMATE with a 0–100 threat score, reasons and a recommended action.

  • Why does my wallet never pop a confirmation?

    No signing session in this tab (reload clears it), a passkey-only link (cannot sign), or the wallet is on the wrong network. Reconnect in the admin console and match the Network selector.

  • Why does the lure never confirm on-chain?

    By design: starved maxFeePerGas keeps it pending so the verifier can observe it. Other vectors confirm normally.

  • Which coins can I test?

    Base: ETH, USDC, USDT, WETH, cbBTC. Polygon: POL, USDC, USDT, WETH, WBTC, WPOL. Native BTC is watch-only (balance display); test BTC behavior via cbBTC/WBTC. Any other ERC-20 via the Contract field.

  • Why was my target rejected?

    Targets (and signers) must be allowlisted: link the wallet or ask the admin. The dashboard pre-checks this before asking your wallet to sign, so no gas is wasted.

  • What does e.toLowerCase is not a function mean?

    A wallet answered the chain id in a non-standard format. Fixed: the console now normalizes numeric and hex answers. Refresh and retry.