Every rail. One line.

Ten chains.
One line of code.

Ethereum, Base, Polygon, Arbitrum, Avalanche, BNB Chain, Optimism, Celo, Solana, Tron. Write one line. The router picks the rail. The payment lands.

Supported chains
Ethereumlive
BNB Chainlive
Baselive
Optimismlive
Polygonlive
Celolive
Arbitrumlive
Solanalive
Avalanchelive
Tronlive
Stablecoins · USDC / USDT / EURC
10
Blockchains
8
EVM chains
3
Protocol types
1
SDK interface

Ten chains. Same call.

Every chain runs through the same Oris call. Pick a rail by hand or let the router pick the best one for you.

01 / 05

Ethereum

EVM

USDC / USDT / DAI

Base

EVM

USDC / USDbC

Polygon

EVM

USDC / USDT

Arbitrum

EVM

USDC / USDT

Avalanche

EVM

USDC / USDT

BNB Smart Chain

EVM

USDC / USDT / BUSD

Optimism

EVM

USDC / USDT

Celo

EVM

USDC / cUSD

Solana

SPL Token

USDC / USDT

Tron

TRC20

USDT / USDC

The router picks the cheapest rail.

Skip the chain argument and the router scans gas, speed, and balance across ten rails. Cheapest viable option wins every time.

02 / 05

The router treats the chains as a fungible pool of settlement rails. It looks at the destination, the agent's spending wallet, current gas prices, and the chain's finality profile, then picks the best route for the payment in question.

When the same destination is reachable on multiple chains, the router picks the cheapest one that still meets the settlement time the caller asked for. A default request optimizes for cost. A latency-sensitive call optimizes for finality.

Router decision
10 chains evaluated
Input
pay(to="0x7f3a...", amount=25.00)
request
Oris router
evaluates gas, speed, balance across 10 chains
evaluating
Selected
Base · gas $0.002 · finality 2 s
routed
Decision latency < 15 ms

No native tokens required.

Agents never hold ETH, MATIC, or AVAX. Oris pays the gas. The agent settles in stablecoin in the same call. One currency, one balance.

03 / 05
Gas handling
by protocol family
EVM chains (8)
ERC-4337
Solana
Native fee handler
Tron
Energy / bandwidth
Stablecoin in, stablecoin out atomic

On the eight EVM rails, Oris uses ERC-4337 account abstraction with paymasters that accept stablecoin reimbursement. On Solana, the same role is played by a native fee handler. On Tron, energy and bandwidth allocations are managed for the caller.

The developer never sees these protocol-level differences. Every payment is denominated in the stablecoin the agent holds, and the underlying gas obligation is reconciled inside the same call.

Pick a chain. Or do not.

Same call either way. The only difference is whether you name a chain.

04 / 05

If the agent already has stablecoin on a specific chain, pass the chain argument and the payment goes out there. Otherwise, let the router choose. The behavior is consistent across Python and TypeScript SDKs.

multi_chain_pay.py
# Explicit chain
agent.pay(to="0x7f3a...", amount=25.00, chain="base")

# Auto-routed
agent.pay(to="0x7f3a...", amount=25.00)

Every chain. Same safety.

No weak rail. No chain where the policy engine takes a break. No carve-out for cheaper gas. The safety layer runs everywhere.

05 / 05

Policy engine

All 10 chains

Per-transaction caps, daily and monthly limits, counterparty whitelists, and category restrictions evaluate identically on every supported chain. A blocked transaction on Ethereum is blocked on Solana too.

Audit log

All 10 chains

Activity log records every payment in the same schema regardless of source chain. The chain identifier is one column among many, not a separate database.

KYA checks

All 10 chains

The agent's KYA level governs which chains and which amount tiers are reachable. The same enforcement runs whether the agent transacts on Ethereum, Solana, or Tron.

Compliance

All 10 chains

Pre-execution screening and post-execution audit run against every payment. The sanctions check is chain-agnostic; the same blocked address is blocked on every rail.

Ship to every chain.

One SDK. Ten chains. Your agents move value wherever they need to.