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.