Contracts and events
Every deployed contract on Arc mainnet, and the events to index launches and swaps.
All addresses below are also committed to the repo as deploy artifacts, and the app builds from the same registry, so this page and the running product cannot silently disagree. Explorer: explorer.arc.io.
Arc mainnet (chain id 5042)
Deployment block 12226732. Start your indexer there; nothing of ours exists before it.
| Contract | Address | What it is |
|---|---|---|
| PositionManager | 0xC780c0f4aAc690908854D351b8bFda2812daeFDc |
The Uniswap v4 hook. Owns every pool, emits the events below |
| Flaunch | 0x93E5A7565008db9688BA5211Fa552d8b108B9c75 |
ERC721; one token per launched coin. For coins launched with a creator vault, held for good by the coin’s DividendVault; for earlier coins, held by the creator or escrowed in the split manager |
| FlaunchZap | 0xe07F7cA66EC795592385018Dd998F0B50b8A2834 |
One-transaction launch entry point |
| PoolSwap | 0x3A61B6E86fde5Fc657a48819837F346C7E2Fffa7 |
Swap router that forwards your referrer to the hook |
| V4Quoter | 0x4595D3CD7A6D98d83A719934e829db5076fF1d0d |
Off-chain quoting for v4 pools |
| FairLaunch | 0xdCDADa707264d9e2B0E8c2feC467860C97434Bd4 |
Fixed-price fair launch phase |
| WhitelistFairLaunch | 0xc35F6b7D4fD3Cf7E881Cc1C967eD8F76d84A6872 |
Merkle-gated fair launch variant |
| WhitelistPoolSwap | 0x658afD78EDE81f904d091383B437F7FFD64B58F6 |
PoolSwap variant that proves whitelist membership |
| BidWall (BurningBidWall) | 0xC5DD30802fefab789Cd9b1e835Bd7301a8D23F8A |
The automated floor bid under every coin |
| FeeEscrow | 0x678f0D1C045e820Ec1d4806749f2629e1035550e |
Holds withdrawable creator fees |
| ReferralEscrow | 0xf25B9ceAba005CcCb0cefC4e323e6e519F111eB3 |
Accrues the 5% referrer share, claimable by the referrer |
| UniversalRewardsDistributor | 0x66003091e723778d7D3285BB6c24ff3F0Ddcc7F7 |
Morpho’s URD; pays the daily USDC holder pool |
| TreasuryManagerFactory | 0xE25C132F379DB49C463328eF427E28DBCbD3a2F0 |
Deploys fee split managers |
| AddressFeeSplitManager (impl) | 0xde10818344f5ab75ecfA772887cE5751D6Cb91C7 |
Splits creator revenue across addresses |
| UsdcMarketCappedPrice | 0xc94F51A378aa088B23Bd20EC2e90C6504A4cBC8E |
Initial price oracle for launches |
| FeeExemptions | 0x83a46Fb9e05770aD88d256fe7B32E6d5F5Bf13D6 |
Per-address swap fee exemptions |
| FlaunchFeeExemption | 0x09E7679277bc84d1F161a4608F26f707728671D2 |
Launch fee exemptions |
| TreasuryActionManager | 0x45b69459062F8F89Df48FC5952224e1a3988C76D |
Approved treasury actions |
| MerkleAirdrop | 0x5847D0A5499e6d81aEd44cbc67F351791507C37c |
Creator airdrops |
| XHandleClaims | 0xfC38298590893c39E46D319aEd9EC3bf6CB17A3E |
X-handle split recipients: escrow prediction and claims |
| IndexerSubscriber | 0x2c68B21C9f8b899a662A71dd188C1c919D578a9F |
On-chain pool id to token lookup registry |
| FeeEscrowRegistry | 0xAA578360497f4aA1EC24FDaA5e774E18408FF504 |
Maps coins to their fee escrows |
| PlatformFeeSplitter | 0x3CB45926eE3b9381931Bc96AF10d30b630b75A87 |
Splits its 39% of the fee: 24% to UBI holders, 15% to the protocol |
| MemecoinImplementation | 0xd2737cCC93C511B528f50Ce3745961d01512C4e8 |
Clone target of every coin launched before block 24240004 |
| MemecoinDividends | 0xE9fB2f8a25f572C1c94d02434127bE2b0605b378 |
Clone target from block 24240004 on: the same token plus in-token USDC dividends. Creator vaults went live at block 24248448; a coin launched in between uses this template but has no vault and trades at the 1.25% base fee. Check the vault, not the template |
| DividendVault (impl) | 0xA9E566b548D5D0203e4d00bc3dFdB4BC38883514 |
Creator vault: holds a coin’s Flaunch NFT, splits the creator side between holders and recipients. Each coin’s vault is a clone deployed by the TreasuryManagerFactory at launch |
| HolderShareFeeCalculator | 0xe5737916951Fe20235Bddef5a65af5d18406f92E |
Per-coin swap fee (1.5% to 5%) and the vault check on every swap; unregistered (older) pools keep the 1.25% base fee |
| BuyBackAction | 0x3dF0758Cb99339528E279633c747Ee5f76FB3e2d |
Treasury action used by DividendVault.buyBackAndBurn |
| BurnTokensAction | 0x1a8a474f3AFA6Bf7Ea4584140388ED63E76cFb77 |
Treasury action used by DividendVault.buyBackAndBurn |
| MemecoinTreasuryImplementation | 0xAa6E83CC08617915AE767b543Dd55795DDbcD30a |
Clone target every coin treasury proxies to |
v3 on Arc mainnet
v3 tokens run on contracts of their own, deployed at block 26403042; the ones above did not change. Every v3 token mints a fixed 1 billion.
| Contract | Address | What it is |
|---|---|---|
| PositionManager | 0x01427fC5b40d6Dd3289b0052fB90DBF8dd5Ba5dc |
The v3 Uniswap v4 hook. Owns every v3 pool |
| Flaunch | 0xe176B60D90b4b036B9E05405b0F0F86C2e624E0a |
ERC721; one token per v3 coin, held for good by the coin’s DividendVault |
| FlaunchZap | 0x4A08182bffbA288949a909a3794201E92d6723fC |
One-transaction v3 launch entry point |
| PoolSwap | 0x25CF6E382f0018Ae0dAAAB36Ae14cB831e038749 |
Swap router that forwards your referrer to the v3 hook |
| PairFeeCalculator | 0x229fA6600F8C4B93B984f96A458cDFC21bC44ae4 |
Each v3 pool’s buy fee, sell fee and anti-snipe fee |
| PairedTokenRegistry | 0x96E1b6Ae68AbAAAD5705878BBD1E4BA9a2cB1Fd3 |
The approved pair assets and their price contracts |
| UniswapV3TwapPriceCalculator | 0xe2c5E3AC7F595a7E7dC97d2fdF4dB16e9B4E9044 |
Gold’s price: the 30-minute average of the Uniswap v3 XAUm/USDC pool |
| UsdcPairedMarketCappedPrice | 0x042E0E714F7Fc2776f229DC44a6F7Be90163E160 |
Initial price and launch fee for v3 launches |
| BidWall | 0xD97a73A2E6783C84B5eE022d95fdFc356816E16d |
The automated floor bid under every v3 token; burns what it buys |
| FeeEscrow | 0xF8271402c1021566976B135DeAc282960aCdC779 |
Holds withdrawable v3 fees, in each pair asset |
| ReferralEscrow | 0x33c0824636F909B13bbD33E1F893C913569beD0b |
Accrues the referrer share of v3 trades, claimable by the referrer |
| PlatformFeeSplitter | 0xc30C41C1fC41640d1E7838067793e88144483012 |
Receives the protocol cut of every v3 fee and splits it between UBI holders (through the UniversalRewardsDistributor above) and the protocol |
| TreasuryManagerFactory | 0x8B555dB465Be15d843132C9e90c80A6540C4277D |
Deploys each v3 token’s DividendVault at launch |
| DividendVault (impl) | 0x1b7a08DB3cCaAF595d8Eb4275EB7B48d996134D9 |
v3 creator vault: holds a token’s Flaunch NFT and splits its creator earnings between holders and recipients. Each v3 token’s vault is a clone deployed at launch |
| MemecoinDividends | 0xe863B866e1e228b9BEB7D816BEdCAe4AF02949e4 |
Clone target of every v3 token: dividends paid in the token’s pair asset |
| MemecoinTreasuryImplementation | 0xFcd587E2B2bb6d0b24BdEdeE82A77F8E0D63aA1b |
Clone target every v3 coin treasury proxies to |
| FeeExemptions | 0xA3477C00437Ac842644253Bc82C301e050f2db1E |
Per-address swap fee exemptions |
| FlaunchFeeExemption | 0x326082dE92c7EB88e782028275ffA99238858148 |
Launch fee exemptions |
| TreasuryActionManager | 0x042B923de24da55fBfc61B44124d0423b21B9657 |
Approved treasury actions |
| IndexerSubscriber | 0xeeAEAB42e897651a822F7dE8371A14b4B69515EF |
On-chain pool id to token lookup registry |
| FeeEscrowRegistry | 0xC0926274a22f4163BD6dc928aBD2bfEF2C00C9ef |
Maps v3 coins to their fee escrow |
| UniversalRewardsDistributor (Underwater) | 0xf02FF952AF74A25C10a2420d489323Dd63dcF626 |
Morpho’s URD for the Underwater pots: receives each vault’s Underwater share, and pays out only through claims against its published roots |
Events worth indexing
These are what our own indexer scans. All pool-scoped events are keyed by the v4 poolId (bytes32).
New coin launched (PositionManager):
event PoolCreated(
bytes32 indexed _poolId,
address _memecoin,
address _memecoinTreasury,
uint256 _tokenId,
bool _currencyFlipped,
uint256 _flaunchFee,
FlaunchParams _params
);
_currencyFlipped tells you whether the memecoin is currency0 or currency1 in the pool key: when false, USDC is currency0; when true, they are swapped. Always honor it when interpreting amounts.
Every swap (PositionManager):
event PoolSwap(
bytes32 indexed poolId,
int256 flAmount0, int256 flAmount1, int256 flFee0, int256 flFee1,
int256 ispAmount0, int256 ispAmount1, int256 ispFee0, int256 ispFee1,
int256 uniAmount0, int256 uniAmount1, int256 uniFee0, int256 uniFee1
);
The three amount pairs are the fair launch, internal-swap-pool, and Uniswap legs of one swap; sum the pairs for the user-visible totals.
Price and liquidity updates (PositionManager):
event PoolStateUpdated(bytes32 indexed _poolId, uint160 _sqrtPriceX96, int24 _tick, uint24 _protocolFee, uint24 _swapFee, uint128 _liquidity);
Fair launch lifecycle (FairLaunch): FairLaunchCreated(bytes32 indexed _poolId, uint256 _tokens, uint256 _startsAt, uint256 _endsAt) and FairLaunchEnded(bytes32 indexed _poolId, uint256 _revenue, uint256 _supply, uint256 _endedAt).
Referrer earnings (ReferralEscrow): TokensAssigned(bytes32 indexed _poolId, address indexed _user, address indexed _token, uint256 _amount) when your share accrues, TokensClaimed(address indexed _user, address _recipient, address indexed _token, uint256 _amount) when you claim it.
Creator vaults (since block 24248448): PoolRegistered(bytes32 indexed _poolId, uint256 indexed _tokenId, uint24 _fee) on the HolderShareFeeCalculator when a coin launches with a vault (_fee in basis points, 150 to 500); Harvested(uint256 _received, uint256 _toHolders, uint256 _toCreators), CreatorClaimed(address indexed _recipient, uint256 _amount), Renounced() and TreasuryBoughtBackAndBurned(uint256 _spent, uint256 _burned) on each coin’s vault; DividendsDistributed(address indexed _sender, uint256 _amount) and DividendWithdrawn(address indexed _holder, uint256 _amount) on the coin itself. A coin’s vault is the owner of its Flaunch NFT; read memecoin() on it to confirm the pairing.
Holder pool payouts (UniversalRewardsDistributor): Claimed(address indexed account, address indexed reward, uint256 amount). See Verify the payouts.
If you would rather not run an indexer, the REST data API serves the same data.