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. Held by the creator, or escrowed in the split manager when a launch configures revenue splits |
| 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 the protocol leg of the fee |
| MemecoinImplementation | 0xd2737cCC93C511B528f50Ce3745961d01512C4e8 |
Clone target every coin proxies to |
| MemecoinTreasuryImplementation | 0xAa6E83CC08617915AE767b543Dd55795DDbcD30a |
Clone target every coin treasury proxies to |
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.
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.