# RWA Exit‑Liquidity Platform for Mantle

By [Max](https://paragraph.com/@0xmaxyz) · 2026-07-01

mantle, rwa, dashboard

---

TL;DR
-----

An **audit instrument for tokenized‑asset liquidity**. RWA dashboards report TVL — how much was _minted_. This one measures the number that actually matters and that nobody publishes: how much can be **exited**, computed on‑chain, asset by asset, with spoofed and ticker‑collided liquidity stripped out first. It's the tool a chain or an issuer would run to verify its own RWA liquidity claims _before_ putting them in a report. Track 1 is the finding; this is the instrument that produced it and keeps producing it — served as a live dashboard, a JSON API, a portable agent-skill spec any AI agent can load to query it live, and a **working x402 USDC-payment demo** on one endpoint.

What it does & why it's useful
------------------------------

TVL measures inventory, not exitability — so it hides phantom liquidity. This platform measures the other side of the trade:

*   **Canonical‑address enforcement — we refuse to count phantom liquidity.** It matches DEX pools by contract/mint address, never by ticker, and _discards_ everything that doesn't match — the integrity step most tools skip. The dashboard's **Phantom‑liquidity** tab shows exactly what gets thrown away, side by side: a ticker search reports **$13.0M** of "USDY" but only **$3.0M** is the real mint (**4×** overstatement), gold **$2.2B → $32.0M** (**69×**), and **SpaceX's $2.3B of ticker "SPCX" liquidity → $0 canonical** because no canonical SpaceX mint exists on Solana (it is a private company) — and it lists the exact look‑alike pools we discard.
    
*   **Real on‑chain exit slippage.** A local Uniswap‑V3 multi‑tick swap simulator reads slot0 + tick data directly and walks the curve over pools discovered via factory.getPool — so "exit liquidity" is the actual USD you'd recover, not a vendor figure. _USDY's true exit ceiling on Mantle is_ **_~$1.6k_** _(1 July 2026 snapshot, ~$1,625 tick simulation); a $10k sell ≈ 100% slippage._
    
*   **Issued‑vs‑exitable + holder concentration.** On‑chain supply vs exitable depth, plus current top holders (when the explorer API is available). _syrupUSDT: ~all $80M sits in a single Aave market._
    
*   **Cross‑chain exit benchmark.** For each token we simulate a **$1k / $10k / $100k sell** on every chain it lives on, routing over real liquidity via DEX aggregators (LiFi on Mantle & Ethereum, Jupiter on Solana), canonical‑address filtered. The same assets exit a full **$100k for under 1% slippage** on their home chain — gold **~0.4%** (Ethereum), syrupUSDT **~0.2%**, Tesla **~0.7%** and Nvidia **~0.8%** (Solana), USDY **near-zero** (Solana) — while on **Mantle a $1k USDY sell already costs ~5.8% and a $10k sell has no route at all**. That is the proof the failure is Mantle‑specific _distribution_, not anything inherent to RWAs.
    
*   **Exit‑capacity scoreboard.** Every asset×chain graded by the largest sell that still clears under 1% / 5% slippage — **A** = a $100k institutional exit clears under 1%, **F** = even $1k can't. Mantle's RWAs grade **F across the board**; the _same_ tokens grade **A** on Ethereum/Solana. It's the issued‑vs‑exitable scorecard the article argues chains should publish, made live.
    
*   **Exit routes — the composability gap.** Side by side per asset: the instant on‑chain DEX exit (≈$0 depth on Mantle) vs the primary _redemption_ exit and its real terms — fiat‑wire / KYC / T+days for USDY, a ~400oz Swiss gold bar for XAUt, AP‑only for the xStocks and MI4. It puts on screen what the Track 1 piece argues in prose: **no Mantle RWA has an exit that is both deep _and_ composable on‑chain.**
    

Net result, **1 July 2026**: across all 164 Mantle RWAs (159 xStocks + 5 other RWAs) the **single deepest exit pool is ~$5.2k** (the SpaceX token, on Merchant Moe) and **not one can clear even a $10k sale** — let alone the $100k an institution needs. Every figure computed by us, canonical‑address filtered, not taken on faith.

How it's built
--------------

*   **TypeScript**, fully **dockerized**: Postgres + a refresh worker + a Hono API + an nginx dashboard — one docker compose up -d --build.
    
*   **Trust‑minimised data:** the v3 quoter bulk‑fetches tick data in batched eth\_calls and simulates the swap locally — no third‑party quote. Multi‑RPC failover (Goldsky primary, public fallback). DexScreener is kept only as a labelled cross‑check tab.
    
*   **Honest about method.** Where a Mantle pool exists (USDY) the exit figure is a _tick‑by‑tick_ simulation — the real recoverable USD. The other 163 RWAs — including the full 159-token xStocks roster, pulled live from the xStocks asset API — have **no v3 pool at all** (confirmed via factory.getPool), so they're zero by construction, not estimated. Cross‑chain numbers use DEX‑aggregator routing (LiFi / Paraswap / Jupiter), **labelled as such** — we don't dress a vendor quote up as our own simulation.
    
*   **Holders** via RPC Transfer window scan (HOLDER\_SOURCE=window); explorer/subgraph modes also supported.
    
*   **Mantle agent stack (the bonus) — built honestly, not oversold:**
    
    *   **Agent-skill spec** (rwa-liquidity-analyst/[SKILL.md](http://SKILL.md)) — a portable instruction file, in the Cursor/Claude Agent Skill format, that tells _any_ AI agent runtime how to answer liquidity questions by querying this API instead of guessing. **We are not shipping a bundled bot** — load the file into an agent runtime you already trust (Cursor, Claude, a custom LLM harness) and it earns its place on questions a human can't eyeball: _"which Mantle RWAs are 'pegged' only because nothing trades?"_ (oracle price + ~$0 volume), _"what's the cheapest chain to exit $50k of USDY, and at what slippage?"_, _"if USDY's #1 holder unwound, what would it cost them?"_ Every answer the skill produces is a figure pulled from the API/quoter with its source attached, never recalled from memory.
        
    *   **x402 payment demo** — GET /v1/quote/:asset returns HTTP 402; the caller signs an **EIP‑3009 transferWithAuthorization** and pays in **native USDC on Mantle**; a relayer verifies the signature and settles the transfer on‑chain. This proves the full x402 mechanism works end‑to‑end on Mantle (verified on‑chain settlement, tx below) — today it gates the same per‑asset figures also exposed for free via /v1/assets, so treat it as a working payment-rail demo rather than an exclusive paywall.
        

One live example
----------------

*   **Dashboard:** [https://rwa.sanctumfi.online/](https://rwa.sanctumfi.online/)  _(On‑chain · DexScreener cross‑check · Holders · Cross‑chain · Exit scoreboard · Phantom liquidity · Exit routes)_
    
*   **API:** [https://rwa.sanctumfi.online/api/v1/onchain](https://rwa.sanctumfi.online/api/v1/onchain) → USDY's per‑pool exit + slippage; GET /v1/assets → on‑chain exit vs DexScreener per asset.
    

Links
-----

*   Live dashboard: [https://rwa.sanctumfi.online](https://rwa.sanctumfi.online)
    
*   Repo: [https://github.com/0xMaxyz/rwa\_mnt](https://github.com/0xMaxyz/rwa_mnt)
    
*   Agent-skill spec (load into Cursor/Claude/any Agent-Skill-compatible runtime): `rwa_mnt/skill/rwa-liquidity-analyst/SKILL.md`
    
*   Companion research (Track 1): [https://paragraph.com/@0xmaxyz/rwa\_t1](https://paragraph.com/@0xmaxyz/rwa_t1)

---

*Originally published on [Max](https://paragraph.com/@0xmaxyz/rwa-elp)*
