Skew
Solana OTC clearing infrastructure for crypto options
Skew is an on-chain clearing layer for RFQ options, portfolio margin, collateral custody, settlement, and builder distribution. The protocol is not a dealer, matching engine, or managed vault. It provides deterministic Solana program state, typed APIs, and an operating terminal for desks and builders.
Operating Model
Institutional OTC infrastructure separates negotiation, risk, clearing, and settlement. Skew keeps the same separation on Solana:
| Layer | Skew component | Responsibility |
|---|---|---|
| Trade capture | skew-relay, Auction RFQ, Pro Terminal | Route quote requests, collect signed quotes, prepare buyer-signed transactions |
| Clearing | skew-master Anchor program | Verify buyer/CM signatures, allocate option accounts, lock collateral, update registries |
| Risk | Portfolio margin engine, variation margin, MMP hooks | Complete-book IM, maker risk limits, liquidation admission, fee and IF routing |
| Custody | PDA escrow and vault accounts | USDC PM escrow, wSOL/jitoSOL physical locks, fee accumulators, builder escrows |
| Settlement | Pyth-gated settle, dispute/admin rails | Permissionless expiry settlement with explicit fallback and audit events |
| Distribution | SDK, MCP, API, terminal | Builders, bots, agents, and desks operate the same protocol surface |
This is private pre-trade RFQ and public post-trade clearing. Quote negotiation can happen off-chain; collateral movement, option minting, fee routing, and settlement land as auditable Solana transactions.
Live Surfaces
| Surface | URL / package | Status |
|---|---|---|
| Pro Terminal | skew-web.vercel.app/terminal | Devnet operating UI |
| Program | 3w2qSp1UnuTbTfdHPXxm3zZaz6JZRmPpbmHf56Y1DsgK | Devnet deployed |
| SDK | @skew-labs/sdk | 0.4.2 package version |
| MCP | @skew-labs/mcp | 0.6.2 package version |
| Relay | skew-relay-devnet.fly.dev/health | Instant RFQ websocket |
| Pricing | skew-pricing.fly.dev/health | Fair value, IV surface, margin previews |
| Docs | skew-web.vercel.app/docs | Public protocol documentation |
Launch panel: BTC, ETH, SOL, XRP, HYPE. Linear settlement is USDC. Physical SOL-family settlement is constrained to SOL inverse wSOL/jitoSOL lanes.
| Asset | USDC linear payoff support | SOL-family physical support |
|---|---|---|
| BTC | vanilla, digital, capped, range-accrual | none |
| ETH | vanilla, digital, capped, range-accrual | none |
| SOL | vanilla, digital, capped, range-accrual | vanilla inverse and digital inverse over wSOL/jitoSOL |
| XRP | vanilla, digital, capped | none |
| HYPE | vanilla, digital | none |
Auction RFQ v1 escrow is USDC/stable-only. wSOL and jitoSOL are policy-gated CM collateral and Instant RFQ physical-settlement rails for SOL inverse fills; they are not generic cross-asset PM collateral.
Execution Lanes
Skew exposes three distinct trade paths. They are deliberately not collapsed into one order-book abstraction.
| Lane | Path | Use |
|---|---|---|
| Instant RFQ HIT | quote_request -> buyer_accept -> cm_sign -> buyer_tx_signed -> atomic_fill_from_relay | Immediate buyer-selected CM fill with portfolio margin and fee routing |
| Auction RFQ | register_rfq_auction -> submit_rfq_quote_tx_signed / submit_rfq_quote -> finalize_rfq_auction | Competitive quote window and price discovery; browser MMs use tx-signed quotes, bots/HSMs use Ed25519 quotes |
| Pre-funded listing | create_option -> buy_option -> settle and legacy single-MM RFQ | Fully collateralized builder primitive and inventory workflows |
There is no take_best_quote instruction in the current IDL. Clients that need
1-click execution should use Instant RFQ; clients that need price discovery
should use Auction RFQ and finalize after the auction window.
Risk And Custody
- Portfolio margin: complete-position registry walks, tiered IM, held-long tracking, PM lock rebalance, and variation-margin freshness checks.
- Collateral policy: live custody paths are policy-gated. USDC is the linear PM rail; wSOL/jitoSOL are restricted physical collateral rails.
- Oracle policy: settlement uses canonical Pyth feeds. The IV oracle and pricing service are advisory/risk surfaces, not settlement sources.
- Liquidation: keepers compute priority off-chain; on-chain handlers verify improvement, close factors, waterfall movement, and holder-claim state.
- Fees: protocol fee accumulators are per settlement mint. Builder-routed flows share 25% of the effective taker fee with the registered builder.
- Insurance fund: IF replenish is SKEW_AUTHORITY-keeper gated and capped per call. Governance migration is documented before mainnet.
Skew is devnet software until external audit is complete. The codebase is built to expose invariants clearly before mainnet rather than to hide operational assumptions behind UI copy.
Developer Entry Points
SDK
pnpm add @skew-labs/sdk @solana/web3.js @coral-xyz/anchor @solana/spl-token
import { SkewClient } from "@skew-labs/sdk";
import idl from "@skew-labs/sdk/idl/skew_master.json" assert { type: "json" };
import { Program } from "@coral-xyz/anchor";
const skew = SkewClient.fromProgram(
connection,
wallet,
new Program(idl as any, provider),
);
The SDK includes typed methods for clearing members, option lifecycle, RFQ auctions, Instant RFQ relay helpers, settlement, liquidations, fee routing, builder codes, series listings, collateral vaults, and read snapshots.
MCP
npx @skew-labs/mcp
Core profile is read-only: discovery, market data, pricing, margin
breakdowns, fee estimates, collateral policy, option/RFQ/CM reads. Trading,
RFQ, advanced, and governance write surfaces are explicit opt-ins via
SKEW_MCP_PROFILE; write tools are not listed unless a keypair is configured.
API
The public web/API layer mirrors terminal data:
/api/rfq-auctions/api/rfq-metrics/api/surface/api/portfolio-margin/api/price/api/fill-tape/api/options
Every trading API route is rate-limited and returns provenance where the data can come from more than one path, such as indexer vs on-chain snapshot.
Repository Layout
skew/
├─ skew-master/ Anchor program
├─ skew-sdk/ npm SDK
├─ skew-mcp/ MCP server for agents
├─ skew-relay/ Instant RFQ websocket relay
├─ skew-pricing/ fair value, IV, margin preview service
├─ skew-web/ terminal, docs, public API routes
├─ skew-indexer/ Helius webhook and database projections
├─ skew-e2e/ anchor/browser integration tests
└─ scripts/ deploy, CU profiling, ops tooling
Quick Start
git clone https://github.com/skew-labs/skew
cd skew/skew
corepack pnpm install
corepack pnpm --filter @skew-labs/sdk build
corepack pnpm --filter @skew/web dev
For the Anchor program:
cd skew
anchor build
For devnet deployment and CU profiling:
corepack pnpm deploy:devnet
corepack pnpm profile:cu
Documentation
Design References
Skew's public surface follows a financial-infrastructure pattern rather than a consumer exchange pattern: network access and market connectivity, front-to-back risk/operations, explicit OTC trade capture, and transparent clearing output. The design review for this README used public material from Trayport, Orchestrade, CME ClearPort, and Paradigm as reference points for tone and information architecture.
License
MIT.