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.
Offer, fill, settle.
Three instructions cover the full lifecycle. Every step is enforced by the on-chain program.
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
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
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
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.