Documentation

Protocol reference

AnyQuote is an asset launch protocol on Arc. Every asset it launches is tradable on Uniswap V3 from the moment it exists, and all of its liquidity is held in an immutable contract that no party — the protocol included — can withdraw from.

Overview

The protocol turns a single statement — this is worth X — into a market. A creator names an asset, sets its floor value in US dollars, and AnyQuote mints a fixed supply into a Uniswap V3 position whose lower bound is that value. The position is locked permanently. Above the floor the token trades freely; below it the pool simply has no liquidity to sell into.

Every asset is quoted in something: USDC, an Arc ecosystem token, or another AnyQuote asset. That lets markets stack — a speculative token can be quoted in a priced one, so its volume is also demand for the asset underneath it.

A floor value is a statement by the creator. AnyQuote does not appraise, verify or endorse any asset. The floor is a structural property of the pool, not a promise about the thing it represents.

Arc and USDC

Arc is an EVM chain whose gas token is USDC. The native balance and the ERC-20 at 0x3600000000000000000000000000000000000000 are one and the same: sending USDC as msg.value (18 decimals) makes it spendable as ERC-20 USDC (6 decimals) in the same call. AnyQuote uses this throughout:

  • Buys are paid in native USDC — no approval step, one transaction.
  • The launch fee (1 USDC) and the optional first buy ride along as msg.value.
  • Sells pay out in USDC by default, or in the asset's quote token on request.

Blocks are about half a second apart, and a single transaction is capped at 224 gas. A launch uses roughly 6M.

Architecture

Four contracts, one transaction. The Router forwards a launch to the Factory, which clones a fixed-supply token, creates its Uniswap V3 pool, and hands the whole supply to the Lock, which mints it into the pool as single-sided ranges. Nothing is held outside the pool once the transaction ends.

100%
drag to pan · ⌘/Ctrl + scroll to zoom · double-click to reset
Launch path. Dashed: the flat launch fee, forwarded to the treasury. The Router and Factory hold no funds between transactions.

Every asset is two ranges in its pool: a main range that gives the asset its shape (a tight floor band for floors, a ~16× curve for curves) and an open tail to the highest tick. The tail is what lets the pool keep trading like an ordinary DEX pool once the main range is bought out — there is no migration step and no ceiling.

Asset classes

FloorCurve
PurposeA priced asset with a hard floorA curve-launched asset on top
Supply100,000,0001,000,000,000
Quoted inUSDC or an ecosystem tokenA floor asset, USDC or an ecosystem token
Price floorFloor value set at launchLaunch price
Price ceilingNoneNone
Pool fee1%1%
Token contractFixed supply. No minting, pausing or administrative privileges.

The Markets page groups floors into series: Arc official (curated), Platform tokens (floors quoted in an ecosystem token rather than USDC) and Agriculture (category: "agriculture" in the token metadata). Everything else lands in Other.

Floor assets

A floor asset represents something with an explicit value: a physical object, a claim, a project, a concept. At launch the creator sets the floor value; the full supply is minted into a single-sided Uniswap V3 position whose lower tick corresponds to that value divided by supply.

  • Below the floor the pool holds no quote-side liquidity, so there is nothing to sell into. Inside the AnyQuote pool the price cannot print below the floor value.
  • Above the floor price is set by supply and demand. There is no upper bound and no separate “graduation” event — the same position serves the market from the first trade onward.
  • Quoted in an ecosystem token the floor is fixed in that token; its dollar value moves with the token.
100%
drag to pan · ⌘/Ctrl + scroll to zoom · double-click to reset
Floor launch. 70% of supply sits in a 200-tick band at the floor; 30% is spread from the band top upward.

Curve assets

A curve asset is a speculative token that starts on a launch curve. It can be quoted directly in USDC or an ecosystem token, or in a floor asset, in which case buying and selling routes through that floor.

  • Launch curve. A curve quoted in USDC or an ecosystem token starts at a $3,000 fully diluted value. Price rises as the curve fills and walks back down the same curve on sells, never below the launch price. Filling the curve takes roughly 3.2× the start FDV in net buying and lands at about 16× — for a $3,000 start, ≈ $9,600 of buys and ≈ $48,000 FDV. The Fill figure on the site shows how much has been bought.
  • Continuous trading. Once the curve is filled the token keeps trading in the same pool with no ceiling. Liquidity is never migrated.
  • Quoted in a floor. The start is the same $3,000, converted into floor tokens at the floor price, not the market price — so trading in the floor before launch cannot move where the curve starts. If the floor trades above its floor, the curve's dollar figures scale with that premium; the site always displays live values.
100%
drag to pan · ⌘/Ctrl + scroll to zoom · double-click to reset
Curve launch. 80% of supply forms the curve — the same shape as a pump.fun-style bonding phase, but as a Uniswap V3 range — and 20% forms the tail that other launchpads would migrate to a DEX.

Pricing

All dollar figures follow a fixed set of rules.

  1. USDC is counted at exactly $1.
  2. An ecosystem token is converted with a 30-minute time-weighted average price from its pinned token/USDC Uniswap V3 pool, so short-term volatility does not affect launch pricing. Each pinned pool keeps 4,500 observation slots — enough history for the window at Arc's block rate.
  3. Uniswap V3 prices live on a tick grid. A floor value is aligned to the nearest tick; the launch form shows the exact aligned value before you sign.
  4. Amounts use the quote asset's native decimals: USDC and EURC have 6, the other ecosystem tokens and every AnyQuote token have 18. Native USDC sent as msg.value has 18.

Trading

  • Buy with USDC whatever the asset is quoted in: the Router walks USDC → quote token → floor → curve as needed, all inside the AnyQuote pools and the pinned quote/USDC pool. Holders of the quote token can pay with it directly and skip the first hop.
  • Swaps are bounded to the position. If a sell would cross the floor, the part that cannot be filled is refunded in the same transaction rather than reverting.
  • The floor exists only in the AnyQuote pool. Anyone may create other Uniswap pools for a token; prices there are unconstrained and the protocol does not read them.
  • Every AnyQuote token is a standard ERC-20 and remains tradable directly on Uniswap without the router.

Liquidity lock

The entire supply of every asset is minted into one Uniswap V3 position at launch. That position is owned by the Lock contract, which has no function to burn liquidity or move principal. Its only capability is to collect accrued fees and forward them to the parties described below. The Lock is not upgradeable; its owner can change the protocol treasury address and nothing else.

Earnings

Each trade pays a 1% pool fee into the locked position. Collection is permissionless — anyone can callcollect for any pool — and every party is paid in the same call:

  • Creator of the asset.
  • Floor creator, when the asset is a curve quoted in a floor.
  • Protocol treasury.

Creators choose at launch how their share is handled:

  • Pay to address — sent to the recipient named at launch (the creator by default).
  • Buy back & burn — the quote-side share is swapped into the token inside its own pool and sent to 0x…dEaD.
100%
drag to pan · ⌘/Ctrl + scroll to zoom · double-click to reset
Where trading fees go. Shares are fixed per pool when it is locked: creator 10% (floor) or 20% (curve), floor creator 10% for curves quoted in a floor, the remainder to the protocol.

Collectable amounts are previewed on the Earnings page.

Risk

  • A floor value is not an appraisal. Above the floor, price is set by trading and can fall back to it.
  • The floor is enforced only by the AnyQuote pool; other venues may trade below it.
  • Curve assets have no floor other than their launch price and can lose most of their value.
  • Assets quoted in an ecosystem token carry that token's price risk, and its USDC pool may be thin.
  • The Factory and Router are upgradeable by the protocol. Upgrades are visible on chain and cannot reach the pools or the locked liquidity of assets already launched.

Trust model

ComponentMutabilityScope
TokenImmutablePlain ERC-20, EIP-1167 clone of a verified implementation. Fixed supply minted once into the Lock.
LockImmutableHolds every LP position. Can only collect fees; cannot burn liquidity or move principal.
FactoryUUPS upgradeableRules for new launches, curve parameters, quote-asset list and fee routing. Cannot touch existing pools or locked liquidity.
RouterUUPS upgradeableConvenience entry point for trading and launch-and-buy. Never custodies funds between transactions.
PoolsUniswap V3Standard, unmodified, permissionless.

Contracts

Arc mainnet, chain ID 5042. Sources are verified on Sourcify.

AnyQuoteFactory0x6F549DCf38292F8Bc799cDfe6976fd3Fec1543df
AnyQuoteRouter0xAfEDbcC0e4695700A10567307A7ED477eEc22e89
AnyQuoteLock0x3682000c4B1272280a42E2C15B9B63Beb46af46D
AnyQuoteToken (implementation)0x52ffC465172DDDeC99380583106089910982cE1b
Uniswap V3 Factory0xf0db7b58379503491d857dB50AC9ece64c653918
Uniswap QuoterV20x7DfD4F31be6814D2906BDE155c3e1B146EAc1468
USDC0x3600000000000000000000000000000000000000

Quote assets

TokenAddressPinned USDC pool
EURC0xbef5f6d51cb62b58e6a8f77868681825c6fe21c10x88f97E21c423261244d6D661fBd569b2bd69539f · 0.3%
ARGUS0xece5ca8bf9220718e5727754026757512212cb3c0x6A3bAcAa6493734c1Ac221EBF42CF530A96C1e02 · 1%
TOLLY0xbc43ce8dec648ea298c4275559b81d6261c90b670x162Df51C504e7b8321e07387932f333D9be16a72 · 1%
COOL0xeb64987643db71c76b2a2be7e723decc995e5b370x40732e01ba7A829DEA44f51a10e7C58cd9F37765 · 1%
Architects0x8bcb94279fc2c984ec34e0c1f2192df8c69ea4f00x0069cb6F70e2f848405f4483f232274c720CE6f9 · 1%

Announcements and support: @AnyQuoteARC on X.

Integration

  • Factory.getAssets(offset, limit) — paginated, newest first; returns token, pool, parent, creator and template. Single lookups via Factory.getAsset(token).
  • Router.buy(token, amountIn, minOut, to, fromUsdc) — payable: send amountIn × 1e12 as msg.value to pay in native USDC, or approve the quote token and send no value. Router.sell(token, amountIn, minOut, to, toUsdc). Swaps are bounded to the position; unused input is refunded.
  • Router.launchAndBuy(params[], amountIn, minOut, fromUsdc) — launches in order (a curve may reference the floor launched immediately before it as parent) and buys the last one. msg.value covers one launch fee per entry plus the native buy amount. valuationUsd is always 18-decimal USD regardless of quote asset.
  • Lock.collect(pool) is permissionless and returns (amount0, amount1); simulate it to preview collectable earnings.
  • Token metadata is an inline JSON string on the token: { description, image, category, socialMediaUrls[] }.