Reproduce a B20 finding
Use the same CLI for an offline example and an explicitly supplied transaction sample. The package is an unreleased candidate; install a maintainer-provided tarball or build the checkout.
Start with the offline example
Download the before capture and after capture.
bao b20 replay --input b20-direct-broken.capture.json --chain-id 84532 --expect bc_example --offline
bao b20 replay --input b20-direct-fixed.capture.json --chain-id 84532 --expect bc_example --offlineThe direct attribution result changes from 0/1 to 1/1. Both receipts are synthetic. Token existence and native execution require network evidence.
Collect an explicit sample
Set BASE_RPC_URL locally, then provide transaction hashes from your integration. Keep keys and provider credentials outside reports and repository files.
bao b20 replay --hashes <TX_HASH_A>,<TX_HASH_B> --chain-id 84532 --expect <YOUR_BUILDER_CODE> --rpc-url-env BASE_RPC_URL --format json --output replay.json
bao b20 verify --input replay.json --rpc-url-env BASE_RPC_URL --format json --output recheck.jsonThe collector checks the endpoint chain and joins transactions, receipts, block headers, and token reads. Rechecking preserves the original block context. Replace angle-bracket placeholders before running these commands.
Choose the policy for your task
observe reports consistent partial evidence. strict-attribution requires an expected code, current-run RPC collection, resolved required evidence, expected attribution on all supplied hashes, and at least one eligible direct B20 operation.
A strict attribution pass concerns the declared sample. Application compatibility and native-runtime qualification remain separate checks. An offline artifact cannot grant a fresh RPC pass.
Technical pilot kit
Provide a public repository or minimal transaction-building snippet, your chain ID, expected Builder Code, selected hashes, and the reason you selected them. Include the generated report and recheck output, or describe the RPC limitation.
Supported direct operations are transfer, transferFrom, approve, transferWithMemo, and transferFromWithMemo. Canonical factory creation and receipt-only events have separate findings. Router and smart-wallet nested application attribution is unresolved.
Use the existing Bao Toolkit viem helper on the same encoded transfer. Keep token, recipient, and raw amount unchanged. A useful pilot records the omission, corrected payload, and maintainer reproduction independently.
Do not include private keys, seed phrases, customer data, or RPC credentials. Agree which public artifacts the maintainer may publish before registering an integration report.