Skip to content

rome-protocol/rome-bridge-api

Repository files navigation

rome-bridge-api

Built on Rome Protocol — EVM chains that run natively inside the Solana runtime, where Solidity apps call Solana programs atomically (CPI) and Solana users drive EVM apps: two VMs, one chain, one block.

A stateless HTTP API that wraps Rome's bridge primitives — Circle CCTP, Wormhole, and Solana SPL flows — behind a small REST surface for integrators. It is the bridge's off-chain orchestrator and fee-sponsor, not a fund-custodying bridge: the API process holds no on-chain keys, and the sponsor worker is fee-payer-only (it can trigger a user's own signed intent, never move funds).

The real bridge is on-chainRomeBridgeWithdraw (egress) and the Rome EVM's settle_inbound_bridge (inbound credit, authorized by a user-signed EIP-712 intent), plus Circle CCTP / Wormhole for transport. This service quotes routes, verifies source transactions, and sponsors the gas to land them.

This repository is the API only — there is no bundled UI. Build your own front-end against the REST surface, or use it server-to-server.

Quick start

npm ci
npm run build
# minimum env (see .env.example for the full list):
#   REDIS_URL=redis://localhost:6379
#   REGISTRY_PATH=/path/to/a/clone/of/rome-protocol/rome-registry
#   ETHEREUM_RPC_URL=https://sepolia.infura.io/v3/<your-key>
npm start        # listens on :3000

Chain metadata is registry-driven — nothing is hard-coded. Point REGISTRY_PATH at a local clone of the public rome-protocol/rome-registry (or let the client fetch it from GitHub). The service refuses to boot without it.

API surface

All endpoints are under the /v1 prefix. Full reference — request/response shapes, the error catalogue, and a worked example — is in docs/API.md.

Endpoint Purpose
POST /v1/quote Quote a route (USDC / ETH / SOL / SPL / TOKEN; in- or out-bound)
POST /v1/transfers Register a source tx; poll its lifecycle
GET /v1/transfers/{id} Transfer status + next step
GET /v1/assets Concrete fixed-asset routes
GET /v1/chains Supported chains (registry-derived)
GET /v1/tokens Supported tokens
GET /v1/solana/* Solana-side helpers
GET /v1/openapi.json OpenAPI document

How it works

  • No custody — the API holds no keys; the sponsor worker is a fee-payer and can only trigger what a user's on-chain signed intent already authorizes.
  • Trustless inbound settle — inbound credit is enforced in-program against a user-signed EIP-712 authorization, so any caller (the sponsor) can submit without being trusted.
  • Registry-driven — chains, contract addresses, and bridge wiring resolve from the public registry.

Architecture, the trustless-settle rationale, and the invariants are in docs/BRIDGE_API_ARCHITECTURE.md.

Learn more

About

Rome Protocol runs EVM chains natively inside the Solana runtime — stateless HTTP API for Rome's bridge primitives (CCTP, Wormhole, Solana SPL); off-chain orchestrator + fee-sponsor, holds no keys.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages