> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fx.meme/llms.txt
> Use this file to discover all available pages before exploring further.

# Deployed contracts

> Arc mainnet addresses, the R6 deployment manifest, and direct contract reads.

FX's **V6 revision 6** contracts are deployed on **Arc mainnet, chain ID 5042**. Use this page to identify the release and connect to its onchain interfaces.

<Note>
  The public app and indexed market API are not hosted yet. At the latest [release check](/reference/release-status), new launches were paused and official FX was not registered. Direct contract reads are available.
</Note>

## Network

| Setting                | Value                                   |
| ---------------------- | --------------------------------------- |
| Network                | Arc mainnet                             |
| Chain ID               | `5042`                                  |
| Public RPC             | `https://rpc.mainnet.arc.io`            |
| Explorer               | [Arc Explorer](https://explorer.arc.io) |
| Native gas asset       | USDC                                    |
| Release ID             | `arc-mainnet-r6-f66530bb`               |
| Deployment start block | `21239186`                              |

See [Arc's network setup](https://docs.arc.io/arc/references/connect-to-arc) for wallet configuration. Arc exposes native USDC at 18-decimal precision and its ERC-20 interface at 6 decimals. They represent the same balance; do not count them as separate assets.

## Core contracts

| Component              | Arc mainnet address                                                                                                        |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| Uniswap v4 PoolManager | [`0x8366a39CC670B4001A1121B8F6A443A643e40951`](https://explorer.arc.io/address/0x8366a39CC670B4001A1121B8F6A443A643e40951) |
| Currency-pool registry | [`0x214c9023034b1e31D024c8084AF0e4151E659Bf2`](https://explorer.arc.io/address/0x214c9023034b1e31D024c8084AF0e4151E659Bf2) |
| Token factory          | [`0x95067766eF16f7849942185AD12de1816d3c3C2C`](https://explorer.arc.io/address/0x95067766eF16f7849942185AD12de1816d3c3C2C) |
| FX hook                | [`0xc555d361dEe2062A0560678D3f663784887265Cc`](https://explorer.arc.io/address/0xc555d361dEe2062A0560678D3f663784887265Cc) |
| Canonical positions    | [`0x5580191B3F867Fb5B5EDdA52cb3FE8010a48949F`](https://explorer.arc.io/address/0x5580191B3F867Fb5B5EDdA52cb3FE8010a48949F) |
| Launch deployer        | [`0x02D1a2387f97CD124D8e7f7Fb3c0eD58Bb3E76f8`](https://explorer.arc.io/address/0x02D1a2387f97CD124D8e7f7Fb3c0eD58Bb3E76f8) |
| Router                 | [`0x36A99B29dE4B186Ca8fC70ca95c3CB45596ACBE4`](https://explorer.arc.io/address/0x36A99B29dE4B186Ca8fC70ca95c3CB45596ACBE4) |
| Quoter                 | [`0x04B9d79AEaB5d3a5a568994122317c9753C1d627`](https://explorer.arc.io/address/0x04B9d79AEaB5d3a5a568994122317c9753C1d627) |
| Market lens            | [`0xce3Cfd35c59eF9C3c2F68c3eF4E3Cf9123B9a935`](https://explorer.arc.io/address/0xce3Cfd35c59eF9C3c2F68c3eF4E3Cf9123B9a935) |

The router is the spending target for the documented trading flow. The quoter simulates execution; it does not hold a spending allowance. Use the matching R6 ABI and check [quote and settle](/developers/quote-and-settle) before constructing an order.

## Revenue and policy

| Component              | Arc mainnet address                                                                                                        |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| Revenue vault          | [`0xc89d0a58b4DaA9aAd99315A3D8C8dcB83e875A56`](https://explorer.arc.io/address/0xc89d0a58b4DaA9aAd99315A3D8C8dcB83e875A56) |
| Revenue collector      | [`0x92a66BDFa306E16db38E65976d4a6d9F4fd67f88`](https://explorer.arc.io/address/0x92a66BDFa306E16db38E65976d4a6d9F4fd67f88) |
| Conversion registry    | [`0x04284F8713426867Ea3ea7F2556ba5DB994bc447`](https://explorer.arc.io/address/0x04284F8713426867Ea3ea7F2556ba5DB994bc447) |
| Buyback executor       | [`0xe84aA2B1Ca63749C6569adAf368AB642c08ABf80`](https://explorer.arc.io/address/0xe84aA2B1Ca63749C6569adAf368AB642c08ABf80) |
| Liquidity observations | [`0x3914e82Ed6fdbb7DccFDad0310278575340e7b44`](https://explorer.arc.io/address/0x3914e82Ed6fdbb7DccFDad0310278575340e7b44) |
| Release policy         | [`0x9828DadEa3D438D2566fCeb85F245089C1E6C39c`](https://explorer.arc.io/address/0x9828DadEa3D438D2566fCeb85F245089C1E6C39c) |

See [architecture](/reference/architecture) for each component's role and [production settings](/reference/release-status#deployed-execution-policy) for the installed policy.

## Currencies and pair

| Asset | ERC-20 decimals | Arc mainnet address                                                                                                        |
| ----- | --------------: | -------------------------------------------------------------------------------------------------------------------------- |
| USDC  |               6 | [`0x3600000000000000000000000000000000000000`](https://explorer.arc.io/address/0x3600000000000000000000000000000000000000) |
| EURC  |               6 | [`0xbEf5f6d51CB62b58e6A8f77868681825C6fe21c1`](https://explorer.arc.io/address/0xbEf5f6d51CB62b58e6A8f77868681825C6fe21c1) |

Both quote assets and the EURC/USDC relationship were enabled at the documented snapshot. New launches remain subject to the separate global pause and current admission checks.

The registry's pair ID is:

```text theme={null}
0xec255c898470f77aaf513f8f692d75de66b4bc973fcb01907b9d24b1562d53d4
```

The admitted external currency pool uses this PoolKey on the PoolManager above. Its fee value is in parts per million: `500` means **0.05%**.

```json theme={null}
{
  "currency0": "0x3600000000000000000000000000000000000000",
  "currency1": "0xbEf5f6d51CB62b58e6A8f77868681825C6fe21c1",
  "fee": 500,
  "tickSpacing": 10,
  "hooks": "0x0000000000000000000000000000000000000000"
}
```

The relationship is discovered through the registry. An empty `pairs` array in the deployment manifest is intentional when `registryDiscovery` is enabled; it does not mean the registry has no admitted pair.

## Read the current state

This example uses `viem` and makes read-only requests to the public Arc RPC. It does not need a wallet.

```javascript theme={null}
import { createPublicClient, http, parseAbi } from 'viem';

const client = createPublicClient({
  transport: http('https://rpc.mainnet.arc.io'),
});

if (await client.getChainId() !== 5042) {
  throw new Error('Expected Arc mainnet');
}

const registry = '0x214c9023034b1e31D024c8084AF0e4151E659Bf2';
const factory = '0x95067766eF16f7849942185AD12de1816d3c3C2C';
const blockNumber = await client.getBlockNumber();

const abi = parseAbi([
  'function launchesPaused() view returns (bool)',
  'function protocolToken() view returns (address)',
  'function count() view returns (uint256)',
]);

const [launchesPaused, protocolToken, tokenCount] = await Promise.all([
  client.readContract({
    address: registry, abi, functionName: 'launchesPaused', blockNumber,
  }),
  client.readContract({
    address: factory, abi, functionName: 'protocolToken', blockNumber,
  }),
  client.readContract({
    address: factory, abi, functionName: 'count', blockNumber,
  }),
]);

console.log({
  block: blockNumber.toString(),
  launchesPaused,
  protocolToken,
  tokenCount: tokenCount.toString(),
});
```

A zero `protocolToken` address means official FX has not been registered. Read the factory again after registration; a token's name or symbol does not establish official status.

The live FX proxy at `https://fx.meme/api/rpc` accepts approved JSON-RPC read requests. It is a read service, not a signing or transaction-submission endpoint.

## Release manifest

All 15 contract code hashes below matched the mainnet bytecode at block **21,240,866**. Explorer links identify the contract accounts; source-code verification by an explorer is a separate property.

The fingerprint is Keccak-256 of the UTF-8 compact JSON serialization of the `release` object, with object keys sorted recursively and array order preserved. Pin the expected fingerprint independently of responses that supply market data.

```text theme={null}
0x7ee2db5d09e61daf68de50c7ac68dd7649c5b280478770cc0aea1627fdcdec69
```

<Accordion title="View the complete deployment manifest">
  This manifest identifies the deployed contracts and currencies. It does not configure a hosted app or indexed market API.

  ```json theme={null}
  {
    "release": {
      "schema": 2,
      "protocolVersion": 6,
      "releaseRevision": 6,
      "releaseId": "arc-mainnet-r6-f66530bb",
      "environment": "mainnet",
      "chainId": 5042,
      "nativeBalanceAsset": "0x3600000000000000000000000000000000000000",
      "contracts": {
        "poolManager": {
          "address": "0x8366a39CC670B4001A1121B8F6A443A643e40951",
          "codeHash": "0xbd3881180b547f5fe817545743cfb4343e96b1bc6640dcd70c106b0066e95626"
        },
        "registry": {
          "address": "0x214c9023034b1e31D024c8084AF0e4151E659Bf2",
          "codeHash": "0xf33364ef2280f7f45e4965d146046d2c5e7215e90e463fffc192c2199eac4def"
        },
        "factory": {
          "address": "0x95067766eF16f7849942185AD12de1816d3c3C2C",
          "codeHash": "0x257bffd086d3ae81126b57316db295efd2bd62c8b54364c59dcc6c2ae8757328"
        },
        "hook": {
          "address": "0xc555d361dEe2062A0560678D3f663784887265Cc",
          "codeHash": "0x4f835be8be9e16efa01f2a253780f195ab52274a91816420f354e9e854029722"
        },
        "positions": {
          "address": "0x5580191B3F867Fb5B5EDdA52cb3FE8010a48949F",
          "codeHash": "0x07d4e14354ba56ff3594aecf77041ccf89398395ec752036079a30851be065bb"
        },
        "launchDeployer": {
          "address": "0x02D1a2387f97CD124D8e7f7Fb3c0eD58Bb3E76f8",
          "codeHash": "0x47e1fe28fdc8f7a84ced05c9bc5d96a63a37a798d892ba5a6c4397c5cb821d40"
        },
        "router": {
          "address": "0x36A99B29dE4B186Ca8fC70ca95c3CB45596ACBE4",
          "codeHash": "0x20493a249d6069a22423bf830c03c32d54460e25edb7d63be61885c250beb82f"
        },
        "quoter": {
          "address": "0x04B9d79AEaB5d3a5a568994122317c9753C1d627",
          "codeHash": "0x5f337add2a7c91688ee91e5bc02a1d83010ef68d7f56158b7689daf35be707a6"
        },
        "revenueVault": {
          "address": "0xc89d0a58b4DaA9aAd99315A3D8C8dcB83e875A56",
          "codeHash": "0x297ffd96812ad224612aeff6f07ff40fcc732ba2156c454b10b84eb82d13c96f"
        },
        "revenueCollector": {
          "address": "0x92a66BDFa306E16db38E65976d4a6d9F4fd67f88",
          "codeHash": "0x27e5517dcde84a3b5c4b2d0bfb7d2fba9c62b755b9bd5725e9d4d7c7c997df1e"
        },
        "conversionRegistry": {
          "address": "0x04284F8713426867Ea3ea7F2556ba5DB994bc447",
          "codeHash": "0x197f0c6b2c71bc7cd578323416d6be0b3cc40d18baeedcb652770d16c9c06a5c"
        },
        "buybackExecutor": {
          "address": "0xe84aA2B1Ca63749C6569adAf368AB642c08ABf80",
          "codeHash": "0x93d7f4f225550a90e28076a604eea1f7a4e9fac7cb2f22441fd07ade58a8842e"
        },
        "observations": {
          "address": "0x3914e82Ed6fdbb7DccFDad0310278575340e7b44",
          "codeHash": "0x9df87e2b8048a2a81088ef70bf63167b920ea17196604cc68381ef27dc7b11f5"
        },
        "releasePolicy": {
          "address": "0x9828DadEa3D438D2566fCeb85F245089C1E6C39c",
          "codeHash": "0xc34396f66eec86c329e72affac61c2f75ce29ad0e22e403f3e83b53abc06ed86"
        },
        "lens": {
          "address": "0xce3Cfd35c59eF9C3c2F68c3eF4E3Cf9123B9a935",
          "codeHash": "0x92ff9c7887e16093fed15f174d24026893a9b53de5c2c1023146b41eb132a8d7"
        }
      },
      "treasury": "0xc89d0a58b4DaA9aAd99315A3D8C8dcB83e875A56",
      "launchFeeAsset": "0x3600000000000000000000000000000000000000",
      "registryDiscovery": true,
      "registryOwner": "0xf66530bbB8a48d91A48F163316aE4aD32E8e96f3",
      "governance": {
        "schema": 2,
        "kind": "direct-owner",
        "owner": "0xf66530bbB8a48d91A48F163316aE4aD32E8e96f3"
      },
      "assets": [
        {
          "address": "0x3600000000000000000000000000000000000000",
          "symbol": "USDC",
          "decimals": 6,
          "trade": true,
          "launch": true
        },
        {
          "address": "0xbEf5f6d51CB62b58e6A8f77868681825C6fe21c1",
          "symbol": "EURC",
          "decimals": 6,
          "trade": true,
          "launch": true
        }
      ],
      "pairs": [],
      "routingPools": [
        {
          "currency0": "0x3600000000000000000000000000000000000000",
          "currency1": "0xbEf5f6d51CB62b58e6A8f77868681825C6fe21c1",
          "fee": 500,
          "tickSpacing": 10,
          "hooks": "0x0000000000000000000000000000000000000000"
        }
      ],
      "startBlock": "21239186"
    },
    "hash": "0x7ee2db5d09e61daf68de50c7ac68dd7649c5b280478770cc0aea1627fdcdec69"
  }
  ```
</Accordion>

For the documented snapshot, the release policy's onchain `policyHash()` was:

```text theme={null}
0xb5acf5711c9e76b4851f46074c42c4ad25ddb7a3c50405e1fd4b72fea4bf5378
```

The release fingerprint covers the manifest. The policy hash covers the constructor-selected opening and buyback settings. They identify different data and should not be interchanged.
