OTC escrow for
Solana SPL tokens.

Invia is a Solana program for posting and filling OTC offers between any SPL token and USDC, USDT, or SOL. Offers settle on-chain in one transaction. Makers pay zero. Takers pay 0.20% on the payment leg.

How it works

Offer, fill, settle.

Three instructions cover the full lifecycle. Every step is enforced by the on-chain program.

01Offer

Maker creates an offer

The maker locks the asset into a program-owned escrow PDA, sets a price per token in USDC, USDT, or SOL, a minimum fill amount, and an expiry up to 30 days.

  • Asset side: any SPL token
  • Maker fee: 0 bps
  • Cancellable any time before fill
MAKER85.00KJUPESCROW · IMMUTABLE85.00K JUP@ 0.8421 SOLLOCKED · PUBLIC
02Fill

Taker fills part or all

Any wallet can take any amount between the maker's minimum fill and the remaining size. The last fill can be smaller than the minimum if it clears the offer. Multiple takers can fill the same offer.

  • Same listed price for every fill
  • One transaction per fill
  • Partial fills supported
FILL PROGRESS42%FILLED35.70K JUPREMAINING49.30K JUPTAKER A25%TAKER B17%TAKER C
03Settle

Atomic on-chain settlement

The Solana transaction transfers the asset to the taker, the payment to the maker, and a 0.20% fee on the payment leg to the treasury. Either every transfer succeeds or none does.

  • Taker fee: 20 bps in the payment mint
  • Treasury address hardcoded in the program
  • Solana finality in seconds
MAKER+ SOL35.17ATOMIC1 TXTAKER+ JUP42.00KFINALIZED · SOLANA5x9a…k2Lp0.87s
What the program does

Six properties, all enforced on chain.

Each card maps to a check in the Anchor program. The program is the source of truth, not this page.

Fixed price per fill

Every taker pays the maker's listed price. Filling one million units of the asset costs the same per unit as filling one.

Non-custodial escrow

Assets sit in program-owned PDAs derived from the offer. Only the program can move them, and only on the take, cancel, or expire instructions.

Expiry up to 30 days

The maker sets any window from a few seconds up to 30 days. After expiry, anyone can call expire_offer to refund the maker and earn a small SOL bounty for the cleanup.

0.20% taker fee

Takers pay 20 bps of the fill notional in the payment mint to a treasury address baked into the program. Makers pay zero. The rate is compiled in and not configurable.

No quote race

The price is locked at offer creation and applies to every fill. There is no order book, no aggregator route, and no MEV path between offer and settlement.

Asset side: any SPL

The asset side accepts any SPL Token mint with no allowlist or listing fee. The payment side is restricted to USDC, USDT, or wrapped SOL by program-level check.

Try a real trade on devnet.

The contract is deployed at C9YA…BiUV on Solana devnet. The same binary will deploy to mainnet at launch with the upgrade authority renounced.