Documentation
Reference
ABI
Every ABI below is emitted straight from the compiler by
foci/backend/ops/scripts/emit-ui-docs.ts, so it matches the deployed bytecode on
arc-mainnet (chain 5042). Each file is the bare ABI array — exactly what
viem, ethers, wagmi and cast expect.
Everything at once#
foci.json — every contract with its address, the chain id, the factory's start block and the third-party addresses (Uniswap, Permit2, USDC) you need alongside them. One download is enough to build a client.
bash
curl -O https://foci.family/abi/foci.jsonts
import foci from "./foci.json";
const factory = foci.contracts.find((c) => c.name === "FociLaunchFactory")!;
await client.readContract({
address: factory.address as `0x${string}`,
abi: factory.abi,
functionName: "launchFee",
});Individual contracts#
| File | Surface | Address |
|---|---|---|
FociLaunchFactory.json | 54 fn · 22 ev · 49 err | 0xa392D6eca5242715517eeCd43406aeD19424FAC0 |
FociBondingCurve.json | 39 fn · 11 ev · 20 err | per launch — no fixed address |
FociLauncherToken.json | 18 fn · 2 ev · 7 err | per launch — no fixed address |
FociLaunchAndBuy.json | 8 fn · 4 ev · 9 err | 0x5C5c202271E1300bD5Ce43A4F5C1cEA8efd57B63 |
FociMemeHook.json | 47 fn · 19 ev · 22 err | 0xF847790B6fA5DA300BB3f56f10d743e71E98e044 |
FociFeeEscrow.json | 8 fn · 4 ev · 6 err | 0x5a76a44B49ca0f7c4dB181f289C1eCA91d928406 |
FociReferralRegistry.json | 5 fn · 1 ev · 5 err | 0xe047D0F0ce0dD600732793762B1f1929Adc5015d |
FociLaunchLocker.json | 14 fn · 5 ev · 10 err | 0x539fD9e6a6316B65bEd9dDb9A570959e0bc8C31A |
FociLaunchDeployer.json | 4 fn · 0 ev · 6 err | 0xa93f9CeFD92A77e1EAffa3246B6F4DB91a5c5659 |
FociGraduationExecutor.json | 5 fn · 2 ev · 6 err | 0xEB286974C35d2741B0fe9b2a1Cd41E53d06aE406 |
FociRewardsDistributorFactory.json | 8 fn · 1 ev · 8 err | 0xdac447110867954F00638125bbd5c66D8E0a7195 |
FociRewardsDistributor.json | 22 fn · 7 ev · 18 err | per launch — no fixed address |
Note
FociBondingCurve and FociLauncherToken are deployed once per launch, so they
have no fixed address. Read the pair from the factory with getLaunchedToken(token) — see
Addresses.
Using one file#
bash
curl -O https://foci.family/abi/FociLaunchFactory.jsonts
import factoryAbi from "./FociLaunchFactory.json";The JSON is the array itself, not an object wrapping one, so it drops straight into
abi: with no unwrapping.