Creating a Market
Anyone can create a new market for any ERC-20 token. No approvals, no governance votes, no admin permissions.
What you need
- A token address — any ERC-20 token you want to trade against USDC
- Initial token liquidity — tokens to seed the pool
- Initial USDC liquidity — USDC to seed the other side
- Swap fee — the fee percentage for swaps (in basis points, e.g., 100 = 1%)
What happens
Calling createMarket() on the Factory:
- AirToken deployed — ERC-20 wrapper for your underlying token (matches its decimals)
- AirUsd deployed — ERC-20 wrapper for USDC (6 decimals)
- EXNIHILOPool deployed — the AMM + trading contract
- LP NFT minted — to you, the market creator
- Initial liquidity seeded — your tokens are deposited into the pool
- Market registered —
MarketCreatedevent emitted
All of this happens in a single atomic transaction.
Initial price
The initial spot price is determined by the ratio of your seed liquidity:
spotPrice = usdcAmount / tokenAmountFor example, seeding with 1,000 USDC and 1,000,000 tokens sets the initial price at $0.001 per token.
After creation
You receive an LP NFT and become the sole liquidity provider. You can:
- Add more liquidity
- Set position caps
- Claim fees as traders open positions
- Transfer the LP NFT to someone else
Token requirements
- Must be a standard ERC-20 (no fee-on-transfer tokens — the pool rejects them)
- Must have a
decimals()function (the factory reads it to configure airToken) - If
symbol()is unavailable, the factory uses "???" as fallback