Skip to content

Instantly share code, notes, and snippets.

@patcito
Created September 19, 2026 20:49
Show Gist options
  • Select an option

  • Save patcito/281337ff0056dac4de8e5d5eafc43a46 to your computer and use it in GitHub Desktop.

Select an option

Save patcito/281337ff0056dac4de8e5d5eafc43a46 to your computer and use it in GitHub Desktop.
RWA liquidity on Sonic (gold/silver/stocks/indices) — Kyber swap-quote survey 2026-09-19: Backed bTokens deployed but untradeable, no gold/silver, fake NVDAon warning
[
{
"stable": "USDC",
"token": "bCSPX",
"size": 100,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bCSPX",
"size": 10000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bCSPX",
"size": 100000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bCSPX",
"size": 1000000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bNVDA",
"size": 100,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bNVDA",
"size": 10000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bNVDA",
"size": 100000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bNVDA",
"size": 1000000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bTSLA",
"size": 100,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bTSLA",
"size": 10000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bTSLA",
"size": 100000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bTSLA",
"size": 1000000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bGOOGL",
"size": 100,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bGOOGL",
"size": 10000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bGOOGL",
"size": 100000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bGOOGL",
"size": 1000000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bMSFT",
"size": 100,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bMSFT",
"size": 10000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bMSFT",
"size": 100000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bMSFT",
"size": 1000000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bMSTR",
"size": 100,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bMSTR",
"size": 10000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bMSTR",
"size": 100000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bMSTR",
"size": 1000000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bGME",
"size": 100,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bGME",
"size": 10000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bGME",
"size": 100000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "bGME",
"size": 1000000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDC",
"token": "NVDAon(fake)",
"size": 100,
"ok": true,
"amountOut": "18008171751323161736628928513",
"outUsd": 0.0,
"inUsd": 100.0757194615574,
"impactPct": 100.0,
"dexes": [
"metropolis-lb",
"shadow-legacy",
"thick",
"uniswapv3"
]
},
{
"stable": "USDC",
"token": "NVDAon(fake)",
"size": 10000,
"ok": true,
"amountOut": "18011498618133737422764808214",
"outUsd": 0.0,
"inUsd": 10007.57194615574,
"impactPct": 100.0,
"dexes": [
"beethovenx-v3-stable",
"metropolis-lb",
"shadow-dex",
"shadow-legacy",
"swap-x-cl",
"thick",
"uniswapv3"
]
},
{
"stable": "USDC",
"token": "NVDAon(fake)",
"size": 100000,
"ok": true,
"amountOut": "18011528326662424436972136277",
"outUsd": 0.0,
"inUsd": 100075.7194615574,
"impactPct": 100.0,
"dexes": [
"beethovenx-v3-stable",
"defive",
"metropolis-lb",
"shadow-dex",
"shadow-legacy",
"swap-x-cl",
"thick",
"uniswapv3",
"wagmi"
]
},
{
"stable": "USDC",
"token": "NVDAon(fake)",
"size": 1000000,
"ok": true,
"amountOut": "18011530385567542449546280965",
"outUsd": 0.0,
"inUsd": 1000757.194615574,
"impactPct": 100.0,
"dexes": [
"beethovenx-v3-stable",
"defive",
"kyberswap-limit-order-v2",
"shadow-dex",
"shadow-legacy",
"swap-x-cl",
"thick",
"wagmi"
]
},
{
"stable": "USDT",
"token": "bCSPX",
"size": 100,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bCSPX",
"size": 10000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bCSPX",
"size": 100000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bCSPX",
"size": 1000000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bNVDA",
"size": 100,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bNVDA",
"size": 10000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bNVDA",
"size": 100000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bNVDA",
"size": 1000000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bTSLA",
"size": 100,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bTSLA",
"size": 10000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bTSLA",
"size": 100000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bTSLA",
"size": 1000000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bGOOGL",
"size": 100,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bGOOGL",
"size": 10000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bGOOGL",
"size": 100000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bGOOGL",
"size": 1000000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bMSFT",
"size": 100,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bMSFT",
"size": 10000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bMSFT",
"size": 100000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bMSFT",
"size": 1000000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bMSTR",
"size": 100,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bMSTR",
"size": 10000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bMSTR",
"size": 100000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bMSTR",
"size": 1000000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bGME",
"size": 100,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bGME",
"size": 10000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bGME",
"size": 100000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "bGME",
"size": 1000000,
"ok": false,
"msg": "HTTP Error 400: Bad Request"
},
{
"stable": "USDT",
"token": "NVDAon(fake)",
"size": 100,
"ok": true,
"amountOut": "18008189126226247370544250880",
"outUsd": 0.0,
"inUsd": 100.03320491383482,
"impactPct": 100.0,
"dexes": [
"curve-stable-ng",
"shadow-legacy",
"thick"
]
},
{
"stable": "USDT",
"token": "NVDAon(fake)",
"size": 10000,
"ok": true,
"amountOut": "18011514243743375429598707712",
"outUsd": 0.0,
"inUsd": 10003.319958563407,
"impactPct": 100.0,
"dexes": [
"curve-stable-ng",
"shadow-dex",
"shadow-legacy",
"swap-x-cl",
"thick",
"wagmi"
]
},
{
"stable": "USDT",
"token": "NVDAon(fake)",
"size": 100000,
"ok": true,
"amountOut": "18011585794281450646230435808",
"outUsd": 0.0,
"inUsd": 100033.19958563407,
"impactPct": 100.0,
"dexes": [
"curve-stable-ng",
"defive",
"shadow-dex",
"shadow-legacy",
"swap-x-cl",
"thick",
"wagmi"
]
},
{
"stable": "USDT",
"token": "NVDAon(fake)",
"size": 1000000,
"ok": true,
"amountOut": "18011587164583882552831967576",
"outUsd": 0.0,
"inUsd": 1000331.9958563406,
"impactPct": 100.0,
"dexes": [
"curve-stable-ng",
"defive",
"metropolis",
"shadow-dex",
"shadow-legacy",
"spookyswap",
"sushiswap-v3",
"swap-x-cl",
"wagmi"
]
}
]

RWA liquidity on Sonic (chainId 146) — DEX swap-quote survey

Date: 2026-09-19 · Starter point: DefiLlama RWA — Backed Finance Quote source: KyberSwap Aggregator API (GET /sonic/api/v1/routes), which routes across Shadow (CL + Legacy), SwapX, Wagmi, Metropolis, Beets, SpookySwap, Thick, DeFive, Curve, Uniswap v3 and other Sonic DEXes. On-chain verification: Alchemy Sonic RPC (eth_call symbol/decimals/totalSupply).


TL;DR

  • There is effectively no tradeable RWA spot liquidity on Sonic today.
  • The only genuine RWA token with non-zero supply on Sonic is bCSPX (Backed's S&P 500 UCITS ETF tracker): 3,000 tokens ≈ $1.96M on-chain — but total DEX liquidity is ≈ $13.50 (a single Beets 0.1% pool). Kyber finds no route even for $100.
  • The other six Backed tokens on Sonic (bNVDA, bTSLA, bGOOGL, bMSFT, bMSTR, bGME) are deployed but have zero total supply — contracts exist, nothing was ever issued.
  • No tokenized gold or silver exists on Sonic (checked XAUT, PAXG, XAUm, KAU/KAG, VNXAU/VNXAG — none deployed).
  • No Nasdaq/index token other than bCSPX (no QQQ/SPY equivalents).
  • Ondo Global Markets is NOT on Sonic (NVDAon, BMNRon, QQQon, GLDon, SLVon live on Ethereum, BNB, Solana, HyperEVM). A counterfeit "NVDAon" token exists on Sonic with a dead pool on Shadow Legacy — see scam warning below.

Classification of RWA tokens on Sonic

Indices

Token Underlying Issuer Sonic contract On-chain supply DEX liquidity Kyber route
bCSPX iShares Core S&P 500 UCITS ETF Backed Finance 0x1e2c4fb7ede391d116e6b41cd0608260e8801d59 3,000 (≈ $1.96M FDV) $13.5 (Beets bCSPX/USDC.e 0.1%, 0xfa45d902f7ffadfc0cf07e2002ae92c87e65cc0e) ❌ none at any size

Stocks (Backed bTokens — deployed on Sonic, zero issuance)

Token Underlying Sonic contract On-chain supply DEX liquidity Kyber route
bNVDA NVIDIA 0xA34C5e0AbE843E10461E2C9586Ea03E55Dbcc495 0 none
bTSLA Tesla 0x14A5f2872396802C3Cc8942A39Ab3E4118EE5038 0 none
bGOOGL Alphabet A 0xEbee37Aaf2905b7BdA7E3b928043862e982E8F32 0 none
bMSFT Microsoft 0x374a457967ba24fd3ae66294cab08244185574b0 0 none
bMSTR MicroStrategy (Strategy) 0xaC28C9178ACc8BA4A11A29E013a3A2627086e422 0 none
bGME GameStop 0x7212088A11b4d8f6FC90fbB3dfE793B45dd72323 0 none

Contract addresses verified against Backed's own backed-ccip-contract repo and on-chain symbol() calls.

Gold / Silver

None found on Sonic. The major tokenized metals and their actual chains:

Token Asset Chains (not Sonic)
XAUT (Tether Gold) 1 oz gold Ethereum, Tron, TON
PAXG (Paxos) 1 oz gold Ethereum
XAUm (Matrixdock) 1 oz LBMA gold Ethereum, BNB, Sui, Solana
KAU / KAG (Kinesis) gold / silver Kinesis chain, Stellar

Stocks / crypto-equities requested (NVDA, GOOGL, BitMine…)

  • Backed bNVDA / bGOOGL exist on Sonic (above) but with zero supply — untradeable.
  • BitMine (BMNR): tokenized only as Ondo BMNRon, available on Ethereum / BNB / Solana / HyperEVM — not Sonic.
  • Ondo Global Markets (430+ stocks/ETFs incl. NVDAon, QQQon, GLDon, SLVon): chains are Ethereum, BNB Chain, Solana, HyperEVM — Sonic not supported.
  • Backed xStocks (NVDAx, SPYx, QQQx…): Solana, Ethereum, Arbitrum, Mantle, TON, Ink — not Sonic.

Quote matrix — Kyber aggregator, Sonic, 2026-09-19

Swaps quoted from USDC (0x29219dd400f2Bf60E5a23d13Be72B486D4038894) and USDT (0x6047828dc181963ba44974801FF68e538dA5eaF9), sizes $100 / $10,000 / $100,000 / $1,000,000:

Token out $100 $10k $100k $1M
bCSPX ❌ route not found
bNVDA ❌ route not found
bTSLA ❌ route not found
bGOOGL ❌ route not found
bMSFT ❌ route not found
bMSTR ❌ route not found
bGME ❌ route not found
"NVDAon" (fake) ⚠️ route via Shadow Legacy, output worth $0.00 ⚠️ $0.00 ⚠️ $0.00 ⚠️ $0.00

Identical results from USDC and USDT. Kyber raw response for every real RWA token: {"code":4008,"message":"route not found"}

Sanity check: the same API returns normal routes on Sonic for e.g. USDC→wS ($100 → 3.06 S), so "route not found" genuinely means no indexed liquidity.

Full raw results: see kyber-quote-matrix.json in this gist.


Where this liquidity actually lives (if you want to swap these RWAs)

Asset Venue with real liquidity
bCSPX (S&P 500) Base, Gnosis, Arbitrum, Ethereum (Backed bTokens; note Backed is migrating bTokens → xStocks)
xStocks (SPYx, QQQx, NVDAx, TSLAx…) Solana (Jupiter/Raydium), Ethereum; CEXs (Kraken, Bybit…)
Ondo GM (NVDAon, BMNRon, QQQon, GLDon, SLVon…) Ethereum, BNB Chain (PancakeSwap), Solana, HyperEVM
Gold (XAUT/PAXG/XAUm) Ethereum, Tron, TON / ETH / ETH-BNB-Sui-Solana respectively

RWA-adjacent assets that DO trade on Sonic (out of scope of the request, but liquid): frxUSD (Frax, backed by tokenized T-bill funds), scUSD (Rings), USDe/sUSDe (Ethena).

Also noted: Fortlake's Sigma Opportunities Fund was tokenized by Backed on Sonic (announced Dec 2024 with Chainlink) — institutional product, no public DEX pool found.


⚠️ Scam warning — fake "NVDAon" on Sonic

Address
FAKE "NVDAon" on Sonic (100B supply, dead Shadow Legacy pool 0xec897d6d533abdaf3a73e018d110acdbf20733ca, Kyber values output at $0.00) 0x7a3f10d7be88accfad228890cf02747596524768
Official Ondo NVDAon — Ethereum 0x2d1f7226bd1f780af6b9a49dcc0ae00e8df4bdee
Official Ondo NVDAon — BNB Chain 0xa9ee28c80f960b889dfbd1902055218cba016f75
Official Ondo NVDAon — HyperEVM 0xb989ad9b91886b1aaed8daadb26f028b29b40945
Official Ondo NVDAon — Solana gEGtLTPNQ7jcg25zTetkbmF7teoDLcrfTnQfmn2ondo

Only trust addresses from issuer docs / CoinGecko platform data.


Methodology

  1. Backed's official CCIP repo → Sonic deployment addresses for 7 bTokens.
  2. Alchemy Sonic RPC → verified symbol(), decimals(), totalSupply() for each (6 of 7 have zero supply; bCSPX has 3,000).
  3. DexScreener /tokens/{addr} → zero Sonic pairs for all Backed tokens; GeckoTerminal → one dust Beets pool for bCSPX ($13.5) + the fake NVDAon pool.
  4. CoinGecko platform data → confirmed Ondo GM tokens are not deployed on Sonic; gold/silver tokens not on Sonic.
  5. Kyber Aggregator API → 64 quote calls (8 tokens × USDC/USDT × 4 sizes), all recorded in kyber-quote-matrix.json.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment