Create
Documentation
Get started

Addresses

Everything below is Arc mainnet, chain 5042. The live table on this page is read from the API at request time, so it reflects what is actually deployed rather than what was true when this page was written.

Arc testnet (chain 5042002) still carries an older deployment. None of its addresses are listed here, and they are not interchangeable with the mainnet ones.

Per-launch contracts have no fixed address#

Three of the contracts in the reference are deployed once per launch:

  • FociBondingCurve — by the factory
  • FociLauncherToken — by the factory
  • FociRewardsDistributor — by the rewards factory, only for launches that chose Fees go to: Holders; read it with rewardsFactory.distributorOf(token) (zero otherwise)

There is no address to configure. Read them from the launch record:

ts
const launch = await client.readContract({
  address: FACTORY, abi: factoryAbi, functionName: "getLaunchedToken", args: [token],
});
launch.curve;   // the bonding curve for this launch
launch.exists;  // false for an unknown token — check this first

getLaunchedToken returns a zeroed struct rather than reverting for an address it does not know, so an unchecked read makes an unknown token look like a live curve at phase 0.

Indexing#

FACTORY_START_BLOCK is the block of the deploy broadcast — there is nothing to index before it.

Note that the public Arc RPC and a dedicated provider disagree on eth_getLogs limits: the public node allows a 25,000-block span, QuickNode caps it at 10,000. Pin your range to your provider, and re-measure it if you switch — a range above the cap fails every request rather than degrading.

Deployed contracts#

Network arc-mainnet, chain 5042. Explorer: https://explorer.arc.io Indexing starts at block 20883999.

ContractAddressKind
FociLaunchFactory0xa392D6eca5242715517eeCd43406aeD19424FAC0singleton
FociLaunchAndBuy0x5C5c202271E1300bD5Ce43A4F5C1cEA8efd57B63singleton
FociMemeHook0xF847790B6fA5DA300BB3f56f10d743e71E98e044singleton
FociFeeEscrow0x5a76a44B49ca0f7c4dB181f289C1eCA91d928406singleton
FociReferralRegistry0xe047D0F0ce0dD600732793762B1f1929Adc5015dsingleton
FociLaunchLocker0x539fD9e6a6316B65bEd9dDb9A570959e0bc8C31Asingleton
FociLaunchDeployer0xa93f9CeFD92A77e1EAffa3246B6F4DB91a5c5659singleton
FociGraduationExecutor0xEB286974C35d2741B0fe9b2a1Cd41E53d06aE406singleton
FociRewardsDistributorFactory0xdac447110867954F00638125bbd5c66D8E0a7195singleton
FociBondingCurveper launch, read from the launch record
FociLauncherTokenper launch, read from the launch record
FociRewardsDistributorper launch, read from the launch record

External contracts#

KeyAddressPurpose
poolManager0x8366a39CC670B4001A1121B8F6A443A643e40951Uniswap V4 PoolManager
positionManager0x6049c9a0e26405c0985f9e3685c87d0ae917f82bUniswap V4 PositionManager
universalRouter0x4fcA4a51Ab4F23A7447b3284fBd7D73289A89Fb1Uniswap UniversalRouter — pool swaps
v4Quoter0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94Uniswap V4 Quoter — pool-phase estimates
stateView0xF3334192D15450CdD385c8B70e03f9A6bD9E673bUniswap V4 StateView — pool state reads
permit20x000000000022D473030F116dDEE9F6B43aC78BA3Permit2 — required for UniversalRouter
usdc0x3600000000000000000000000000000000000000Quote asset (6 decimals)