# Contract Addresses

Deployed contract addresses across Rome environments.

## Precompile Addresses (All Environments)

These addresses are built into the Rome EVM program and are the same everywhere.

| Precompile           | Address                                      | Interface                 |
| -------------------- | -------------------------------------------- | ------------------------- |
| ecrecover            | `0x0000000000000000000000000000000000000001` | Standard Ethereum         |
| SHA-256              | `0x0000000000000000000000000000000000000002` | Standard Ethereum         |
| RIPEMD-160           | `0x0000000000000000000000000000000000000003` | Standard Ethereum         |
| Identity             | `0x0000000000000000000000000000000000000004` | Standard Ethereum         |
| BN254 ecAdd          | `0x0000000000000000000000000000000000000006` | Standard Ethereum         |
| BN254 ecMul          | `0x0000000000000000000000000000000000000007` | Standard Ethereum         |
| BN254 ecPairing      | `0x0000000000000000000000000000000000000008` | Standard Ethereum         |
| Blake2f              | `0x0000000000000000000000000000000000000009` | Standard Ethereum         |
| **SPL Token**        | `0xff00000000000000000000000000000000000005` | `ISplToken`               |
| **Associated Token** | `0xFF00000000000000000000000000000000000006` | `IAssociatedSplToken`     |
| **System Program**   | `0xfF00000000000000000000000000000000000007` | `ISystemProgram`          |
| **CPI**              | `0xFF00000000000000000000000000000000000008` | `ICrossProgramInvocation` |
| **Withdraw**         | `0x4200000000000000000000000000000000000016` | `IWithdraw`               |

## Devnet (montispl)

**Rome EVM Program ID:** `RD2Gg7Lcnv62XmRHAzxh6fQQfMRzHtN5LeKPVBhYU5S`

### ERC20-SPL Bridge

| Contract        | Address                                      |
| --------------- | -------------------------------------------- |
| ERC20SPLFactory | `0xfd21da046c282e1d36cc45e46d9599cff5742f2b` |

### Meteora Integration

| Contract             | Address                                      |
| -------------------- | -------------------------------------------- |
| MeteoraDAMMv1Factory | `0x054b3c6c826ffa58e5047e72c8ae42cc3af51de2` |
| DAMMv1Pool (pool 1)  | `0xA52DeA8D3f512Bf28A0689823A4D9f36A370e7A5` |
| DAMMv1Pool (pool 2)  | `0x3a3DF0Eb4276c627aE8ef56E8Eaf27A8D4505657` |

### Oracle Gateway V2

| Contract                              | Address                                      |
| ------------------------------------- | -------------------------------------------- |
| OracleAdapterFactory                  | `0xa4647955a16b72d15f13b51b5277036755d297be` |
| PythPullAdapter (implementation)      | `0x4fd11aed44ee5f71df22fb804cfcbb4c50535db9` |
| SwitchboardV3Adapter (implementation) | `0xb57e3589b880aa3f6b66ce2df6aa42cd9c36925e` |
| BatchReader                           | `0x70da375e5680f84032f5b15d35ba0e6f9871d3fd` |

**Factory Configuration:**

* Pyth Receiver Program ID: `0x0cb7fabb52f7a648bb5b317d9a018b9057cb024774fafe01e6c4df98cc385881`
* Switchboard Program ID: `0x068851c68c6832f02fa581b1bf491b77ca41776ba2b988b5a6faba8ee3a2ec90`
* Default Max Staleness: 60 seconds

### Oracle Feeds

| Feed                      | Adapter Address                              | Source                                                     |
| ------------------------- | -------------------------------------------- | ---------------------------------------------------------- |
| SOL/USD (Switchboard)     | `0xF0864572019c295407CF2ed46e6FD3615e10E19d` | Aggregator: `GvDMxPzN1sCj7L26YDK2HnMRXEQmQ2aemov8YBtPS7vR` |
| SOL/USD (Pyth V1, legacy) | `0x170dDC928429FC1A55Dc31c7f5793fc1b2Afea08` | —                                                          |
| BTC/USD (Pyth V1, legacy) | `0xaF9b0a1F94FAa8d36F67a6057cd9aC0Aa16BCa07` | —                                                          |
| ETH/USD (Pyth V1, legacy) | `0x8a67386F90b5422D3B61e9a5e4BD1986A216D98D` | —                                                          |

## Solana Program IDs

| Program                 | ID                                             | Purpose                            |
| ----------------------- | ---------------------------------------------- | ---------------------------------- |
| SPL Token               | `TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA`  | Standard SPL Token program         |
| SPL Token-2022          | `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb`  | Next-gen SPL Token with extensions |
| Associated Token        | `ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL` | ATA derivation and creation        |
| System Program          | `11111111111111111111111111111111`             | Account creation, SOL transfers    |
| Metaplex Token Metadata | `metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s`  | NFT/token metadata                 |

## Environments

| Environment       | Chain IDs | RPC Pattern                                          | Status |
| ----------------- | --------- | ---------------------------------------------------- | ------ |
| Local             | `1001`    | `localhost:9090` (Proxy), `localhost:8545` (OP-Geth) | Dev    |
| Devnet (montispl) | `200002`  | `montispl.devnet.romeprotocol.xyz`                   | Active |
| Testnet (Martius) | `121214`  | `martius-i.testnet.romeprotocol.xyz`                 | Active |
| Testnet (Caelian) | `121215`  | `caelian-i.testnet.romeprotocol.xyz`                 | Active |

## Notes

* All devnet addresses were deployed on 2026-04-02
* Precompile addresses are hardcoded in the Rome EVM program — they do not change between environments
* Oracle feeds use EIP-1167 minimal proxy clones — each feed has a unique clone address pointing to the shared implementation
* Legacy Pyth V1 feeds are still operational but V2 (via OracleAdapterFactory) is recommended for new integrations


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.rome.builders/reference/contract-addresses.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
