Documentation
Addresses
Everything below is Arc testnet, chain 5042002. 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.
Per-launch contracts have no fixed address#
Two of the contracts in the reference are deployed once per launch by the factory:
FociV2BondingCurveFociV2LauncherToken
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-testnet, chain 5042002. Explorer: https://testnet.arcscan.app
Indexing starts at block 61068004.
| Contract | Address | Kind |
|---|---|---|
| FociV2LaunchFactory | 0xa93f9CeFD92A77e1EAffa3246B6F4DB91a5c5659 | singleton |
| FociV2LaunchAndBuy | 0xE4A165a52A6033ee0C1b3B6dA83f72AbA1707349 | singleton |
| FociV2MemeHook | 0x527129aB10Fa3163629A32c4E3Ab7a98ba28e044 | singleton |
| FociV2FeeEscrow | 0xcecCFebAcaDCd9404Ae70b160305Af07D9760A46 | singleton |
| FociV2ReferralRegistry | 0xEB286974C35d2741B0fe9b2a1Cd41E53d06aE406 | singleton |
| FociV2LaunchLocker | 0xe047D0F0ce0dD600732793762B1f1929Adc5015d | singleton |
| FociV2LaunchDeployer | 0x5C5c202271E1300bD5Ce43A4F5C1cEA8efd57B63 | singleton |
| FociV2GraduationExecutor | 0x02e7d818080bf85EEB7191536A768B0CFdB38D5D | singleton |
| FociV2BondingCurve | — | per launch, read from the launch record |
| FociV2LauncherToken | — | per launch, read from the launch record |
External contracts#
| Key | Address | Purpose |
|---|---|---|
| poolManager | 0xa4aD72b5C7F72528Ce0baE359A13BD5A93a4574F | Uniswap V4 PoolManager |
| positionManager | 0x0f42e91f2cd13E6f03CC7650e72ceBed6031A125 | Uniswap V4 PositionManager |
| universalRouter | 0x52EF879333a56E94d62113cC7a9440d0550f8d32 | Uniswap UniversalRouter — pool swaps |
| v4Quoter | 0x719A77E47B14F262143399Cbdc49D1510087A148 | Uniswap V4 Quoter — pool-phase estimates |
| stateView | 0x270CE77c308C181018F1168903739F400bF9B4FA | Uniswap V4 StateView — pool state reads |
| permit2 | 0x000000000022D473030F116dDEE9F6B43aC78BA3 | Permit2 — required for UniversalRouter |
| usdc | 0x3600000000000000000000000000000000000000 | Quote asset (6 decimals) |