Opus Protocol keeps all of its state on Robinhood Chain. Nothing is authoritative except the chain itself, so any Robinhood Chain client can read and check each address listed here.

Opus Protocol Contracts

Opus Protocol Subscriptions

0xde1e6a7e615c023c014171bc46cc764cedcf1df6

This is the Opus Protocol Subscriptions contract: open-source Solidity, authored by Opus Protocol, deployed on Robinhood Chain. A third-party security audit is planned to take place before the beta ends. Source code is in the contracts repository.

Plan Registry (OpusPlanCatalog)

The registry on-chain where providers publish their Plans. Its address will be made public at launch.

Token Contracts (Mainnet)

USDG

0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168

The Opus Protocol beta uses USDG (Global Dollar) as its primary payment token. USDG is issued by Paxos and was the first stablecoin to be natively issued on Robinhood Chain. It has 6 decimal places, which means 1_000_000 base units equals 1.00 USDG.

Token amounts

The SDK and the API express every amount in base units: the smallest unit the token can be divided into. Because USDG has 6 decimals, the conversion looks like this:

Amount Base units
0.001 USDG 1_000
0.50 USDG 500_000
1 USDG 1_000_000
10 USDG 10_000_000
49 USDG 49_000_000

Verifying transactions

Each payment and each subscription event lands on Robinhood Chain as a transaction, so you can confirm any of them with:

  • Robinhood Chain Explorer: paste in the transaction hash
  • The Opus Protocol Dashboard, which also shows token transfer metadata
  • Any RPC client for Robinhood Chain that supports eth_getTransactionByHash
import { createPublicClient, http } from "viem";

const client = createPublicClient({
  transport: http("https://rpc.mainnet.chain.robinhood.com"),
});
const tx = await client.getTransaction({
  hash: "0x9c3f...",
});

Testnet

Build against the Robinhood Chain testnet while developing. Set network: "testnet" and the SDK switches to the testnet contracts and RPC endpoints on its own:

const agent = new OpusProtocolAgent({ wallet: account, network: "testnet" });

USDG on testnet is a separate deployment purely for testing; the tokens have no real value:

0xce924134c3870ff8b796aebda4a9f0f3342ea654