Documentation
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 factoryFociLauncherToken— by the factoryFociRewardsDistributor— by the rewards factory, only for launches that chose Fees go to: Holders; read it withrewardsFactory.distributorOf(token)(zero otherwise)
There is no address to configure. Read them from the launch record:
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 firstgetLaunchedToken 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.
| Contract | Address | Kind |
|---|---|---|
| FociLaunchFactory | 0xa392D6eca5242715517eeCd43406aeD19424FAC0 | singleton |
| FociLaunchAndBuy | 0x5C5c202271E1300bD5Ce43A4F5C1cEA8efd57B63 | singleton |
| FociMemeHook | 0xF847790B6fA5DA300BB3f56f10d743e71E98e044 | singleton |
| FociFeeEscrow | 0x5a76a44B49ca0f7c4dB181f289C1eCA91d928406 | singleton |
| FociReferralRegistry | 0xe047D0F0ce0dD600732793762B1f1929Adc5015d | singleton |
| FociLaunchLocker | 0x539fD9e6a6316B65bEd9dDb9A570959e0bc8C31A | singleton |
| FociLaunchDeployer | 0xa93f9CeFD92A77e1EAffa3246B6F4DB91a5c5659 | singleton |
| FociGraduationExecutor | 0xEB286974C35d2741B0fe9b2a1Cd41E53d06aE406 | singleton |
| FociRewardsDistributorFactory | 0xdac447110867954F00638125bbd5c66D8E0a7195 | singleton |
| FociBondingCurve | — | per launch, read from the launch record |
| FociLauncherToken | — | per launch, read from the launch record |
| FociRewardsDistributor | — | per launch, read from the launch record |
External contracts#
| Key | Address | Purpose |
|---|---|---|
| poolManager | 0x8366a39CC670B4001A1121B8F6A443A643e40951 | Uniswap V4 PoolManager |
| positionManager | 0x6049c9a0e26405c0985f9e3685c87d0ae917f82b | Uniswap V4 PositionManager |
| universalRouter | 0x4fcA4a51Ab4F23A7447b3284fBd7D73289A89Fb1 | Uniswap UniversalRouter — pool swaps |
| v4Quoter | 0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94 | Uniswap V4 Quoter — pool-phase estimates |
| stateView | 0xF3334192D15450CdD385c8B70e03f9A6bD9E673b | Uniswap V4 StateView — pool state reads |
| permit2 | 0x000000000022D473030F116dDEE9F6B43aC78BA3 | Permit2 — required for UniversalRouter |
| usdc | 0x3600000000000000000000000000000000000000 | Quote asset (6 decimals) |