Apsis moves value between chains — currently Arbitrum and Solana. A user asks for a quote, deposits the source asset into the Apsis contracts with the quote hash attached, and receives the destination asset from inventory the operator already holds on that chain. There is no escrow contract, no guardian set, and no message-passing wait. The inventory contract is the vault: deposits stay inside it, and every payout comes from its own balance.

What you integrate against

Two surfaces, and you will normally use both.

gRPC API

Quotes, swap instructions, the token catalog, and order state. Served at over gRPC and gRPC-web.

On-chain contracts

Where the deposit lands. One call on the source chain, carrying the quote hash returned by the API.

The shape of a swap

1

Quote

GetQuote prices the trade and persists the exact order parameters. Its keccak hash is the quote hash.
2

Deposit

The user calls the deposit contract on the source chain with that quote hash. The funds stay in the vault.
3

Settle

Apsis indexes the deposit, waits for the required confirmations, and pays the recipient on the destination chain out of vault float.
4

Track

GetOrder reports the order state until it reaches a terminal one: fulfilled, refunded, or a failure state.
The quote hash is the join key for everything. It binds the deposit to a price, identifies the order in every API call, and is the URL of the order in the explorer at .

Start here

Quickstart

A working cross-chain swap, quote to settlement.

How it works

Roles, the settlement path, and what happens when it fails.

Supported chains

Chains, routers, and per-chain limits.

API keys

Rate limits, and why keyless quotes price worse.
The user-facing application lives at .