Retroactive Big Tipper: xcm-lens v0.0.2 — XCM debugging toolkit
Hello Polkadot community ![]()
I’d like to discuss a retroactive Big Tipper for xcm-lens v0.0.2 — an XCM debugging toolkit (TypeScript CLI + library) that I shipped over the past 4 days. The artifact is already live and reviewable on GitHub before any funding ask: 136 tests passing, 5/5 build vectors green, MIT licensed, no upstream merge dependencies.
This post opens a 7-day community discussion. If the feedback is constructive, I plan to submit an on-chain referendum next week.
TL;DR
- What: CLI + library that turns a high-level intent (“teleport DOT from AH to Bridge Hub for Alice”) into the right post-AHM extrinsic, dry-runs it, surfaces real
XcmPaymentApifees, and explains each instruction. - Why: XCM is consistently the #1 developer friction point. Existing tools cover chain state OR scaffold projects — none address the construct-simulate-explain loop.
- Status: v0.0.2 shipped, public, working. Two adversarial code review passes closed (Wednesday: 6 critical + 4 major; Thursday: 5 critical + 7 major findings) before this submission.
- Ask: 800 DOT (~$5,200 at current DOT price) retroactive Big Tipper. Solo-dev, ~4 days of focused work.
- Precedent: ref #1340 (PVM Debugger) — 100% Aye, $16K USDT, almost identical profile.
What ships in v0.0.2
Repo · Release notes · STATUS.md
Two TypeScript packages + CLI:
@xcm-lens/core (PAPI-free)
- IntentSchema v1 — frozen Zod schema with semver-aware versioning, schema-level invariants (Parachain only at interior[0], fee asset must equal action asset, u64 weights).
buildFromIntent— post-AHM call selection matrix covering 5 corridors (Relay<->AH teleport DOT, Relay->para reserve DOT, AH->para transfer USDT, AH->BridgeHub teleport DOT).- Decoder for XCM v3/v4/v5 covering 22+ instructions per version.
- Vector resolver with
networkProfiles+networkBehavior(live / chopsticks-only / skip).
@xcm-lens/chain
dryRun+estimateFeesorchestrators (singledry_run_callsource of truth; sharable between APIs).ChainAdaptercontract +ChainAdapterPool(TOCTOU-safe in-flight dedup).ChainRegistry— 18 chains (Polkadot + Westend + Paseo system parachains) with trusted teleport sources scaffolded for M5 commit pinning (config/teleport-pins.json).LocationResolver,reanchorLocation,assetIdEq(null/undefined normalized),OriginSynthesizer(Alice on testnets; throws on Polkadot mainnet without explicit origin).StubChainAdaptervia@xcm-lens/chain/testingsubpath (kept out of production bundles).
xcm-lens-cli
decode,build,dry-run(stub default),estimate-fees(stub default),corridors(STATUS.md reader).--liveflag opts into the live PAPI adapter (lands in v0.0.3, post-grant work — currently throws with a clear error).
Why this matters for Polkadot
XCM is the ecosystem’s #1 developer friction. Reference points:
- polkadot-sdk#3050 — XCM v3->v4->v5 migration churn.
- polkadot-sdk#6637 — Asset Hub Migration’s new
transfer_assetscall shape breaks every existing integration that doesn’t dynamically dispatch. - polkadot-sdk#4736 — builders explicitly asking for runtime-API-driven dry-run + fee-estimation tooling.
- polkadot-sdk#6774 — no end-to-end XCM cookbook for modern typed PAPI.
Existing tooling falls into three buckets, none of which address XCM message construction + execution + fee discovery in one workflow:
| Existing tool | What it does | XCM execution? |
|---|---|---|
shawntabrizi/polkadot-mcp |
Read-only RPC over MCP | No |
r0gue-io/pop-mcp |
Project scaffolding | No |
docs.polkadot.com MCP |
Docs RAG | No |
| Polkadot.js Apps | UI for already-formed calls | Manual, error-prone |
xcm-lens is the missing execution-side tool.
What I’m NOT asking funding for
To be explicit about scope of the Big Tipper ask:
- This Big Tipper covers ONLY v0.0.2 — the M1 cut already shipped. ~4 days of focused work.
- v0.0.3 (live PAPI adapter, Chopsticks integration, nightly Westend) is future work I’ll do without grant funding to build a longer track record, before any second proposal.
- M2 (MCP server for AI agents, error knowledge base) and M3 (90-day patch SLA) would be a separate Small Spender proposal in 4-6 weeks, only after v0.0.3 is shipped and the community has had time to evaluate v0.0.2 usage.
This is NOT a salary request. It’s a one-time tip for finished work.
Budget breakdown (800 DOT ≈ $5,200)
| Item | Hours | Notes |
|---|---|---|
| Day 1: monorepo + tooling + decoder | 8 | SCALE codec helpers, v3/v4/v5 decoder (22+ instructions) |
| Day 2: IntentSchema v1 + buildFromIntent | 10 | Post-AHM call selection matrix, 5 corridor vectors, Wednesday review fixes |
| Day 3: @xcm-lens/chain split + dryRun + estimateFees orchestrators | 12 | ChainRegistry, LocationResolver, reanchor, fee pipeline, Thursday review fixes |
| Day 4: M5 scaffolding + CLI + STATUS.md + CONTRIBUTING.md + release | 6 | Two adversarial review passes, polish, v0.0.2 release |
| Total | 36 hours | At $145/hr ≈ $5,220 |
At 800 DOT × $6.50 = $5,200, this is a fair retroactive rate for senior Polkadot infra work delivered as MIT open source.
Track record
- PR #12 in
polkadot-developers/bounties— 3-chapter PAPI XCM Cookbook (12,500 words + 300 lines of runnable TypeScript on Paseo), submitted 2026-05-29, currently up for tip review. - Code is vendored under
xcm-lens/resources/cookbook/so the deliverable is independent of upstream merge timing. - GitHub: @1DanWave2
- Polkadot SS58:
15ou8P2L6GkKj8fio4PeNyZUUaeEJfYqtMifsM3MR8pqq8Lv(where the Big Tipper would settle)
Quickstart for reviewers
git clone https://github.com/1DanWave2/xcm-lens
cd xcm-lens
pnpm install
pnpm -r build
pnpm test # 136 tests pass
pnpm vectors:check # 5/5 build vectors green
node packages/xcm-lens-cli/bin/xcm-lens.mjs build \
docs/examples/01-relay-to-ah-teleport-dot.json
The CLI defaults to stub mode in v0.0.2 (no network calls, no surprise gas costs in CI). See STATUS.md for the corridor matrix and CONTRIBUTING.md for the dev loop.
What I’d like feedback on (before going on-chain)
- Amount calibration — is 800 DOT (~$5.2K) appropriate for the scope? Reference #1340 paid $16K for a comparable scope; #1657 paid $7.5K for a smaller retroactive scope. I’m choosing on the low end of the range to respect the 2026 Treasury tightening signal.
- Track choice — Big Tipper (≤1K DOT, 7-day vote) vs Small Spender (≤10K DOT, 28-day vote, larger window for community discussion). I’m picking Big Tipper for v0.0.2 specifically because the ceiling fits the M1-cut scope and the faster cycle matches “retroactive for already-shipped work.”
- Future M2/M3 scope — is the community OK with a separate Small Spender proposal in 4-6 weeks for the MCP server + error knowledge base + 90-day SLA, or should that be deferred entirely?
- Anything missing in the v0.0.2 cut that would unlock more confident funding (e.g. tagged npm release, docs site, more vectors)?
Happy to iterate on the framing here in the forum before going on-chain. Open to feedback and to changing the ask amount based on comments.
Thanks for reading ![]()
-– @1DanWave2