B20 evidence

B20 Discovery & Attribution

A B20 transfer can succeed without your Builder Code. Compare the same transfer before and after an attribution fix, then inspect the evidence.

Same transfer. One missing code.

Synthetic example

The token, recipient, raw amount, and modeled execution stay the same. The corrected request uses withAttributionSuffix from Bao Toolkit’s viem adapter.

Before: 0/1Before report
After: 1/1After report

Before: code missing

Expected code
bc_example
Direct attribution
0/1 (0%)
Token evidence
Initialized B20 Asset · modeled factory query
Execution
Successful synthetic receipt
Application readiness
Not tested
Inspect missing-code report

After: code found

Expected code
bc_example
Direct attribution
1/1 (100%)
Token evidence
Initialized B20 Asset · modeled factory query
Execution
Successful synthetic receipt
Application readiness
Not tested
Inspect corrected report

These receipts demonstrate the analyzer. This before/after transfer has not been tested on a native B20 runtime.

Reports you can reproduce

5 synthetic examples · 2 recorded network reports. Synthetic examples remain separate from the attribution Observatory’s totals.

Token event inside a router

Receipt evidence does not establish attribution for the nested application.

SyntheticDirect attribution: Not measured

Run the comparison locally

Download a report’s capture, then run the candidate CLI. Offline validation checks internal consistency; a network recheck requires an explicit RPC endpoint.

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 --offline

Start with the CLI guide or technical pilot kit. The B20 package is an unreleased candidate.