Pair assets
What your coin can be priced in. This is the part that replaces a hardcoded list of tickers with a measurement.
The published list
Nineteen assets, in four buckets, offered by name in the interface:
| bucket | what is in it |
|---|---|
| Large cap | the gas token and Ink's three dollars — WETH, USD₮0, USDC, USDG — plus Kraken's bitcoin kBTC and Aave's GHO |
| Stocks | xStocks' tokenised equities on Ink: wAAPLx, wMSTRx, wNVDAx, wSPYx (S&P 500), wNFLXx, wPLTRx |
| Ink eco | OTO (Otomate) |
| Memes | ANITA, BEAST, KRAKMASK, PURPLE, ICAT, CAT |
Each was measured by the gates themselves before being written down, and nothing is listed with less
than one and a half times its bar: an asset that only just clears it drops out on an ordinary
withdrawal, and the first anyone would know is a launch reverting. Tether's gold, XAUt0, measured
$10,793 against a $10,000 bar and stayed off for exactly that reason.
Anything else
You are not limited to the list. Paste any address and it goes through the same measurement — it just has to clear a higher bar, because nobody has looked at it.
| bar it must clear | |
|---|---|
| on the published list | $10,000 |
| pasted in by address | $25,000 |
Both numbers are depth in USD on the anchor side of the pool, and both are read live at the moment of the launch. Being on the list lowers the bar; it never removes it. A listed asset whose market dies stops being launchable on its own, without anyone intervening.
The bars are set against Ink, not copied from anywhere else. Ink's markets are thin: of every memecoin on the chain, two hold more than $100,000 of liquidity, and the seventh-deepest measures about $19,000. A bar high enough to be meaningless on a bigger chain would empty this one.
How depth is measured
Not by asking a price feed, and not from a single number a launcher could have arranged. What the gate reads depends on what the venue keeps.
Venues that keep an oracle
Uniswap V3 and Velodrome Slipstream write their own history as they trade. The gates read it over a 30-minute window:
tickCumulativesgives an arithmetic mean tick — a manipulation-resistant pricesecondsPerLiquidityCumulativeX128gives the harmonic mean of in-range liquidity
and those two convert into the depth sitting on the anchor side of the pool. Faking that means actually holding the liquidity for the whole window.
That alone would still be gameable: a very tight range turns a few hundred dollars into an enormous liquidity figure, because it describes depth at the current price and says nothing about what the pool holds. So the reading is capped by the anchor tokens actually in the pool. Spot balance is inflatable with a flash loan; time-weighted liquidity is inflatable with a tight range — but not the same way. Passing requires beating both at once, which is indistinguishable from being a real market.
Venues that keep nothing
A constant-product pair — InkySwap, DyorSwap, SquidSwap, Uniswap V2, Velodrome's classic pools —
never had an oracle. There is no history to read, so the gate reads the pair as it stands:
getReserves is simply what the contract holds, read rather than balanceOf so that tokens sent to a
pair without being synced in do not count.
What a live reading cannot do, stated plainly rather than buried: it describes this instant, and
this instant is one flash loan away from saying anything — borrow, deposit as liquidity, be measured,
withdraw, repay, all inside one transaction. The machinery to defend against that exists and is
switched off. It samples the pair over a window and takes the minimum, which is expensive to fake
because nobody controls when the next reading happens; it is one owner call
(setRequireWitness(true)) away, with no redeployment. It is off because the certain cost falls on
the wrong people: every legitimate coin would wait half an hour, and on Ink that is almost every
memecoin there is.
Depth is measured against five anchors: WETH, USD₮0, USDC, USDG and kBTC.
Where it looks
Every venue with a real market on Ink, and the best answer wins — never the sum, because depth on two venues is not depth you can trade through at once.
| venue | how it is read | where it matters |
|---|---|---|
| Uniswap V3, every fee tier | the pool's own oracle | the xStocks, Otomate |
| Velodrome Slipstream, every tick spacing, both factories | the pool's own oracle | the dollars, GHO, kBTC |
| InkySwap, DyorSwap, SquidSwap, Uniswap V2 | reserves | the memecoins |
| Velodrome's classic AMM, stable and volatile | reserves | a few long-tail pairs |
The two Slipstream factories matter more than it sounds. Ink runs two deployments under the same Velodrome voter: the original holds nearly all of today's liquidity, and the newer one is where Velodrome now deploys. A gate wired to only one of them would lose whatever moves to the other.
Uniswap V4 is deployed on Ink too, but it is not read: a V4 pool keeps no oracle, and on Ink there is little in them. A coin whose only market is a V4 pool measures as zero.
Coins launched here
A coin launched here trades in its own Uniswap V3 pool, which keeps an oracle like any other — so it goes through the same path as everything else. Nothing about it is special-cased.
Its liquidity being permanently locked in the vault is a real extra guarantee, but it is not what makes it eligible — the depth is. A coin launched here becomes usable as a pair asset once $25,000 of real backing has accumulated in its pool and its oracle reaches half an hour back, and not before.
Why an asset gets refused
| code | meaning |
|---|---|
| 1 | not an ERC-20 |
| 2 | decimals outside 6–18 |
| 3 | no reference pool against the anchors |
| 4 | the pool's oracle does not reach a full window back |
| 5 | not enough depth |
| 6 | no anchor price available right now — transient, retry |
Code 4 only comes from the oracle venues, and it is common on Ink: blocks arrive every second, and
many pools keep a buffer of a single observation, which cannot answer a half-hour question once the
pool has traded. It is fixable by anyone: primeObservations grows a pool's buffer permissionlessly,
and the asset becomes measurable once the window has elapsed. That is why wSPCXx and wTSLAx,
which do trade, are not on the list today.
