We're mid-sweep on our own 160 unverified contracts with this exact tool (`verify/verify-sweep-runner.cjs`). Build the skill scaffold now; flip it live once the sweep confirms the tool holds up at volume.
Install
npx skillscat add jimbo530/mft-bnkr-sync/skills-verify-booth Install via the SkillsCat registry.
Verify Booth — universal contract-verification skill
Status: SPEC — build the scaffold now, go live after our own 160-contract sweep proves the tool.
What it does
A user hands BNKR a contract address + pays 0.01 $BNKR → BNKR source-verifies it on the block explorer (Basescan / any Etherscan-V2 chain) → replies with the verified link. A paid, one-tap "get my contract verified" service.
Why it's real (the trick)
Tons of contracts are verified on Sourcify but still show "unverified" on Basescan — because Hardhat-3 / Foundry + viaIR produce build-info source paths that don't match the deployed metadata hash, so Basescan rejects the standard build files with "deployment bytecode does NOT match." Our tool bridges it: pull Sourcify's EXACT stdJsonInput (v2 API) → POST to Etherscan-V2 verifysourcecode with chainid in the URL. One shot. (This is exactly how I cracked our own vault impl 0x3bb5f84c.)
Flow (mirror the song booth)
- User → BNKR: "verify
0x<address>" (+ optional chainid, default Base 8453) and sends 0.01 $BNKR to the BNKR wallet0xd7dfc7fe6c2b582b142dbc23ad172f735106b598. - BNKR confirms the 0.01 $BNKR payment landed on-chain (never run before payment confirmed — customer pays, we never subsidize).
- BNKR runs
verify/sourcify-to-basescan.cjs <address> [ctorArgsHexNo0x](the proven tool already in this repo). - BNKR replies with the outcome:
- ✅ verified → the
basescan.org/address/<addr>#codelink - ⚠️ not on Sourcify → "we can only bridge Sourcify-verified contracts; get it on Sourcify first (free)"
- ⚠️ needs constructor args → ask the user for the ABI-encoded args, then rerun with arg 2.
- ✅ verified → the
Fee model
- 0.01 $BNKR → BNKR wallet. Customer-pays-cost; never subsidize.
- A cut of accrued fees routes to trees via the charity flow.
- The value is $BNKR volume + builder points + showcase, not the per-use fee.
Honest limits (bake into the copy)
- Works for contracts already on Sourcify (we bridge Sourcify → the explorer). NOT "verify from scratch" — that needs the source.
- Constructor-args contracts: the tool needs the ABI-encoded args as arg 2 (read public immutables, the deploy record, or ask the user).
- API key: a public service must NOT run on the founder's single free Basescan key (rate limits / terms). Use the user's own free Etherscan key per request (prompt for it — it's free at etherscan.io/apis), or put the booth on a paid plan.
Prove-first
We're mid-sweep on our own 160 unverified contracts with this exact tool (verify/verify-sweep-runner.cjs). Build the skill scaffold now; flip it live once the sweep confirms the tool holds up at volume.