Developers

Add privacy
in one import.

ORION exposes a Maker API for liquidity providers, a proof verification endpoint anyone can call, an eligibility registry and the same privacy router the app uses. Cryptography underneath: Ed25519, X25519 + XSalsa20-Poly1305 (NaCl), Poseidon, Groth16 over BN254, Token-2022 confidential transfers.

POST /api/maker/register
Live on mainnet
SDK surface
lib/solana/client · deriveKeys()ElGamal + AES keys from one wallet signature (solana-conf-bal/v1).
planConfigureAccount / planDeposit / planApplyPendingToken-2022 confidential account lifecycle.
planConfidentialTransfer / planWithdrawZK equality, validity and range proofs, verified onchain.
lib/rfq/client · createSignedRfq()Sign an RFQ, sealed-quote key from orion-rfq-enc/v1.
decryptAndVerifyQuotes()Open NaCl boxes, verify maker signature, binding, commitment.
proveBestExecution()Groth16 proof over the committed QuoteSet (MAX_QUOTES 8).
buildAndSignSettlement()Atomic settlement: both parties sign identical bytes.
lib/disclosure/grant · verifyGrant()Ed25519 verification of a disclosure grant token.
@orion/zk/prover · prove() / verify()Browser and server prover/verifier for all five circuits.
TypeScript
import { deriveKeys, planDeposit, planApplyPending, executePlan } from "@/lib/solana/client";

const keys = await deriveKeys(messageSigner);          // one wallet signature
await executePlan(txSigner, await planDeposit(txSigner, mint, 2_500_000n, 6));
await executePlan(txSigner, await planApplyPending(txSigner, mint, keys));
// balance is now ElGamal-encrypted onchain; only your keys decrypt it
Orion API
POST/api/rfq
GET/api/rfq/:id
POST/api/rfq/:id/close
POST/api/rfq/:id/settle
POST/api/rfq/:id/quote
POST/api/maker/register
GET/api/maker/rfqs
POST/api/proofs
POST/api/proofs/verify
GET/api/eligibility
POST/api/disclosure/revoke
GET/api/solana/portfolio?owner=
GET/api/rhc/assets

All endpoints use strongly typed schemas mirrored in types/.

Provider architecture
PrivacyProvider
ChainProvider
AssetProvider
MarketDataProvider
QuoteProvider
SettlementProvider
ProofProvider
DisclosureProvider
TreasuryProvider

Interfaces in lib/providers/interfaces.ts. Live implementations: Solana RPC + Jupiter (lib/solana), Robinhood Chain + Chainlink (api/rhc), ORION MM (services/orion-mm), RFQ network (services/rfq), ZK (packages/zk).

Privacy primitives
Public Ledger
Standard SPL Token or Token-2022 transfer. Balances, amounts, assets and counterparties are visible to every observer.
MAINNET
Confidential Balances
Token-2022 confidential transfer extension. Balances and transfer amounts are ElGamal-encrypted and proven with zero-knowledge proofs verified by the ZK ElGamal Proof program. Asset type, sender and recipient addresses remain visible. A mint-level auditor key, if configured by the issuer, can decrypt amounts.
MAINNET
Cryptography rule

ORION owns protocol rules, message formats, circuits and routing. It never invents hash functions, curves, AEADs or signature schemes: Poseidon, BN254 Groth16 (snarkjs), NaCl box, Ed25519 and Token-2022 confidential transfers do that work. The Groth16 setup shipped today is a single-party development ceremony; a multi-party ceremony republishes the keys without changing the proof format.