DEFUNCT — Solana-native DeFi options vault (DOV) protocol that pioneered structured products ("Volts") on Solana including covered calls, cash-secured puts, and basis trades. Friktion shut down its user platform in late January 2023 due to economics + founder disagreements; the underlying programs remain on-chain in withdraw-only mode but no new deposits are accepted.
- 01reading historical Volt performance for research
- 02withdrawing residual positions from on-chain Volts
- 03studying Solana DOV architecture for new builds
- 04migrating users off Friktion onto active protocols
- pnpm add @friktion-labs/friktion-sdk @solana/web3.js @project-serum/anchor
- cargo add volt-abi
| Variable | Scope | Description |
|---|---|---|
| NEXT_PUBLIC_SOLANA_RPC_URL | Client | Solana mainnet RPC endpoint (e.g. Helius, Triton, or `https://api.mainnet-beta.solana.com`). |
| FRIKTION_VOLT_VAULT | Client | PublicKey of the specific Volt vault account (e.g. `volt#1` ETH covered-call) you are withdrawing from. |
Treat Friktion as withdraw-only on Solana. Use `@friktion-labs/friktion-sdk` — `const sdk = new FriktionSDK({ provider, network: 'mainnet-beta' })`, then `const vault = await sdk.loadVoltSDKByKey(voltKey)`. Read user balance with `vault.getDepositTokenAccountKeyForUser(user)` + `vault.getCurrentValuePerVoltToken()`. Withdraw via `vault.cancelPendingDeposit()` (if pending) or `vault.withdrawHumanAmount(amount)` which constructs the `withdraw` instruction against the on-chain Volt program (`VoLT11111111111111111111111111111111111111`). Do NOT call `deposit*` — the front end is dead and deposits are economically blocked. For Rust integrations use `volt-abi` crate to build CPI instructions.
- ⚑Friktion is DEFUNCT (front end shut down January 25, 2023). The underlying program remains on-chain but is in withdraw-only mode — any new product built on Friktion will have no liquidity, no keepers running rounds, and no maintained off-chain pricing.
- ⚑DOV underperformance vs HODL on Solana was even more pronounced than on EVM during 2022 — covered-call Volts systematically capped upside in SOL rallies, and several Volts ended below their starting NAV when accounting for round losses.
- ⚑Solana is not EVM. Calling Friktion requires Anchor/Solana program tooling (BPF programs, derived addresses, ATAs) — viem/ethers are useless. Budget for a separate wallet adapter (Solana Wallet Adapter) and RPC stack (Helius/Triton).
- ⚑Round mechanics depended on a centralised keeper; with the team gone, automatic round transitions (`startRound`/`endRound`) may have stalled. Always read `vault.voltVault.roundNumber` and `voltVault.lastRoundEnd` to detect a frozen Volt before trying to interact.
- ⚑There is no maintained API or subgraph — the historical Hasura GraphQL endpoint is gone. Reconstruct historical NAV by reading the on-chain ring buffer of round receipts (`Round` accounts) directly.
- ⚑For new Solana DOV / structured-product needs, recommend protocols like Drift Vaults, Katana, or moving to EVM (Aevo, Premia, Stryke) — do not pick Friktion as a live integration.