> For the complete documentation index, see [llms.txt](https://docs.rome.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rome.builders/id/referensi/contract-addresses.md).

# Alamat Kontrak

Precompile, ID program, dan alamat kontrak yang di-deploy per chain.

Alamat precompile sudah dibangun ke dalam program Rome EVM dan identik di setiap chain. Kontrak yang diterapkan per-chain adalah **kanonik di** [**registri Rome**](https://github.com/rome-protocol/rome-registry/tree/main/chains). Tabel Hadrian di bawah mencantumkan kontrak utama yang ditandai oleh registry (rilis v0.2.0) `live`; registry adalah satu-satunya sumber kebenaran, dan sebuah kontrak dapat di-deploy ulang setelah halaman ini ditulis. Lihat [Membaca daftar kontrak](#reading-the-contracts-list) untuk cara memilih alamat aktif di kode.

## Precompile (semua chain)

Precompile Ethereum standar, dengan semantik setara mainnet:

| Precompile        | Alamat                                       |
| ----------------- | -------------------------------------------- |
| ecrecover         | `0x0000000000000000000000000000000000000001` |
| SHA-256           | `0x0000000000000000000000000000000000000002` |
| RIPEMD-160        | `0x0000000000000000000000000000000000000003` |
| identitas         | `0x0000000000000000000000000000000000000004` |
| modexp            | `0x0000000000000000000000000000000000000005` |
| penjumlahan BN254 | `0x0000000000000000000000000000000000000006` |
| perkalian BN254   | `0x0000000000000000000000000000000000000007` |
| pairing BN254     | `0x0000000000000000000000000000000000000008` |
| blake2f           | `0x0000000000000000000000000000000000000009` |

Precompile non-EVM Rome, untuk menjangkau Solana (antarmuka di [`rome-solidity/contracts/interface.sol`](https://github.com/rome-protocol/rome-solidity/blob/master/contracts/interface.sol)):

| Precompile     | Alamat                                       | Antarmuka                 | Tujuan                                        |
| -------------- | -------------------------------------------- | ------------------------- | --------------------------------------------- |
| System         | `0xFF00000000000000000000000000000000000007` | `ISystemProgram`          | derivasi PDA, konversi base58                 |
| CpiProgram     | `0xFF00000000000000000000000000000000000008` | `ICrossProgramInvocation` | CPI arbitrer + pembacaan lintas-state         |
| HelperProgram  | `0xFF00000000000000000000000000000000000009` | `IHelperProgram`          | pembuatan ATA/PDA, transfer SPL, gas↔lamports |
| Withdraw       | `0x4200000000000000000000000000000000000016` | `IWithdraw`               | Tarik SOL/SPL dari EVM ke Solana              |
| SystemCached   | `0xFF00000000000000000000000000000000000004` | `ISystemCached`           | Utilitas Sistem di track cached               |
| SplCached      | `0xFF00000000000000000000000000000000000005` | `ISplCached`              | Operasi SPL di track cached                   |
| ASplCached     | `0xFF00000000000000000000000000000000000006` | `IAssociatedSplCached`    | Operasi ATA di track cached                   |
| WithdrawCached | `0xFF0000000000000000000000000000000000000b` | `IWithdrawCached`         | penarikan di track cached                     |

Sebuah kontrak menggunakan satu track — legacy (`SplCached` nonaktif) atau cached — secara konsisten; keduanya tidak dicampur dalam satu panggilan.

## ID Program

program rome-evm (program Solana yang menjalankan EVM), per jaringan Rome:

| Jaringan          | ID Program                                    |
| ----------------- | --------------------------------------------- |
| Hadrian (testnet) | `RPTWwELXAY4KC9ZPHhaxp7Sq1hHtU3HNEgLbSegCcWf` |
| Rubicon (mainnet) | `RomePq9X3iAoTr813HR7uRarafFDUJty6GdiEceYpzX` |

Program Solana yang terkenal (sama seperti di mana pun di Solana):

| Program                 | ID                                             |
| ----------------------- | ---------------------------------------------- |
| SPL Token               | `TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA`  |
| SPL Token-2022          | `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb`  |
| Token Terkait           | `ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL` |
| Program Sistem          | `11111111111111111111111111111111`             |
| Metadata Token Metaplex | `metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s`  |

## Rome ZK EVM di devnet Solana

Program v0.3.0 ini digunakan bersama oleh chain ZK EVM yang dijalankan operator di devnet Solana. Yang [daftar program bertag](https://github.com/rome-protocol/solana-zk-evm/blob/v0.3.0/deploy/rollup/programs.devnet.json) adalah sumber untuk ID ini.

| Program       | ID                                             |
| ------------- | ---------------------------------------------- |
| zk-inbox      | `28948c2Qt1QtG2XJA823ytzCfj7U5cNNm3FuM2KoXsAa` |
| zk-settlement | `8anSjJZu5vgfNbESPLoKudVBNEraDZASwKJnkDLTCaGo` |
| veritas       | `2cLGd9FKC7TiZrEHCvpw291AwXNcGgP9nDT4W3PHLe5k` |
| zk-bridge     | `27TbMDUyVynpFpqeKygpUMcDzWKHfW4k9aRN5yCysLEQ` |

Citra node: `ghcr.io/rome-protocol/rome-zk-evm:v0.3.0`.

## Kontrak yang di-deploy — Hadrian (testnet, 200010)

Kontrak utama, diambil dari `live` entri dari [registry](https://github.com/rome-protocol/rome-registry/tree/main/chains/200010-hadrian) (v0.2.0). Seluruh set (wrapper SPL, Uniswap V2/V3/V4, Aave, feed oracle) ada di registry.

| Kontrak              | Alamat                                       |
| -------------------- | -------------------------------------------- |
| ERC20SPLFactory      | `0x37c13e4ff21fb914eb24014dcbd0f8dbeaa31078` |
| Multicall3           | `0xb7180d3c46632b582b99d9af3daae394fab9ae4c` |
| OracleAdapterFactory | `0x52b008771fc95b4674a4f3533570b3d223f27f68` |
| BatchReader          | `0x2869f0a96572e7fb15036656e9a32fd17346499b` |
| RomeBridgeWithdraw   | `0x6eeacb4e6006b7a29c8141f69b6c75346dedec73` |
| MeteoraDAMMv1Factory | `0xd68b355f62643de0ec40243cba8f699f959ea3c4` |
| UniswapV3Factory     | `0xD9E323088561D40267767b52252595ea9cF1D5bD` |
| UniswapV4PoolManager | `0x8a281Be9B5173B2F52328437eAa0d272791707f7` |

## Kontrak yang di-deploy — Rubicon (mainnet, 7531)

Kontrak utama (registry publik saat ini menerbitkan set Hadrian; set Rubicon dicantumkan di sini). Wrapper: `wUSDC` `0x0952d233b0c254cd375f3bfb3e5869c1a906f9b3`, `wETH` `0x01e8b3573da1d4b7b4b1ce0932cf07c8af0c92e9`, `wSOL` `0xc4e29e0f726a906e93277cbbc37bf27a9848a113`.

| Kontrak                         | Alamat                                       |
| ------------------------------- | -------------------------------------------- |
| ERC20SPLFactory                 | `0x4068aa7482dc15e9f78e22fbe0f884531c83ae6e` |
| Multicall3                      | `0xd6e0b13ea70aea0d44db083544f01d8b7693a759` |
| OracleAdapterFactory            | `0x6a1340dd86c3951b6f13d9001b3951d56a2fe581` |
| BatchReader                     | `0x580dc0ecb226530ee8a90b57e0f0cd2555fb4f0f` |
| RomeBridgeWithdraw              | `0xceea191761cdba2fc589996d7dd096e57db29c84` |
| WETH9                           | `0x8dc8bf908efa4511f71a9e2ed95f46a70507f1ae` |
| UniswapV2Factory                | `0x23af4d2065d24b42a1a17f22b963c9216d0a1dc2` |
| UniswapV2Router                 | `0x445d7af7888db44a4904b63336cc43446dfb37f7` |
| UniswapV3Factory                | `0x02aed7762fdc8bae826e7ee0ac2d2e1f754ba025` |
| SwapRouter (V3)                 | `0x680b7645c63421e33584a02aca91be6642d3d034` |
| NonfungiblePositionManager (V3) | `0xfb132adf6b7d811408f3639e91c8f638bddd6123` |
| QuoterV2 (V3)                   | `0x1d68d09dcc3a8c1b9aa8f0e2b138205c04bad4a7` |

## Membaca daftar kontrak

Setiap folder chain di registry memiliki sebuah `contracts.json`. Ini adalah daftar kontrak. Setiap entri memiliki sebuah `nama` dan sebuah `versi[]` daftar, dan setiap versi memiliki sebuah `address`, sebuah `versi` dan sebuah `status` dari `live`, `deprecated` atau `pensiun`. Sebuah kontrak yang di-deploy ulang menyimpan versi lamanya dalam daftar, jadi item pertama atau terakhir belum tentu yang harus digunakan. Pilih versi yang `status` adalah `"live"`. Beberapa entri (kontrak Aave milik Hadrian) memiliki lebih dari satu versi live, jadi filter berdasarkan `status` dan pilih dengan sengaja, bukan mengambil kecocokan pertama.

```ts
import { getContracts } from "@rome-protocol/registry";
const factory = getContracts(200010).find((c) => c.name === "ERC20SPLFactory");
const address = factory.versions.find((v) => v.status === "live").address;
```

`getContracts(chainId)` mengembalikan daftar untuk chain tersebut, atau `null` jika chain belum dipublikasikan. Beberapa entri sama sekali tidak memiliki versi live (milik Hadrian `RomeswapMinimalRouter` adalah salah satunya), jadi periksa bahwa `find` menemukan sesuatu sebelum membaca `.address`Paket registry diinstal dari GitHub, bukan npm: `npm install github:rome-protocol/rome-registry#v0.2.0`.

## Lingkungan

| Lingkungan        | ID rantai | RPC                                | Status |
| ----------------- | --------- | ---------------------------------- | ------ |
| Rubicon (mainnet) | `7531`    | `rubicon.mainnet.romeprotocol.xyz` | Aktif  |
| Hadrian (testnet) | `200010`  | `hadrian.testnet.romeprotocol.xyz` | Aktif  |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rome.builders/id/referensi/contract-addresses.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
