Permissionless Perpetual Futures

Any token.
Any leverage.
No permission.

Launch a leveraged trading market for any Solana token in 60 seconds. Up to 20x. Coin-margined. Fully on-chain.

Browse Markets
leviantperp — engine
> connecting to solana devnet...
> loading vAMM engine...
> oracle feeds: DEX | Pyth | Authority
> max leverage: 20x
> fee split: 82% LP / 10% protocol / 8% creator
> insurance fund: ACTIVE
> coin-margined mode: ENABLED
 
> status: OPERATIONAL
> awaiting trades...
0
Markets Live
24h Volume
20x
Max Leverage

How it works

01
Pick a token
Any SPL token with on-chain liquidity. SOL, memecoins, anything.
02
Configure & deploy
Set leverage, fees, seed liquidity. Market goes live in ~30 seconds.
03
Earn 8% of fees
Market creators earn 8% of every trade. Forever. No cap.

Built different

Permissionless
Anyone can launch a market. No gatekeepers.
💎
8% Creator Fee
Earn on every trade in your market. Forever.
🌊
vAMM Engine
Virtual AMM, automatic liquidity, zero IL.
🔗
Coin-Margined
Trade with the token itself. No stablecoin wrappers.
📊
DEX Oracle
Real prices from PumpSwap and Raydium.
🔥
Up to 20x
Configurable leverage per market.
🛡️
Insurance Fund
LP protection against bad debt.
⛓️
Fully On-Chain
No off-chain matching engine.
LeviantPerp

Ready to launch?

Pick a token, set your parameters, deploy. Start earning trading fees in under a minute.

Launch Market

Deploy a permissionless perpetual futures market for any SPL token. Configure leverage, seed liquidity, and start earning 8% of all trading fees.

Token Selection
Paste the mint address of any SPL token with on-chain liquidity (PumpSwap / Raydium)
Market Parameters
5x
Higher leverage = higher risk for traders, more liquidation fees for you
Trading spread in basis points. 30 bps = 0.3% per trade
Initial liquidity to bootstrap the vAMM. More liquidity = less slippage
82%
LP Pool
10%
Protocol
8%
You (Creator)
market preview
> token: awaiting input...
> leverage: 5x
> spread: 30 bps
> liquidity:
> fee split: 82% LP / 10% proto / 8% creator
> vAMM k:
 
> status: WAITING FOR CONFIG
5x
Leverage
30bps
Spread
8%
Your Fee
Liquidity
PROTOCOL

LeviantPerp Documentation

LeviantPerp is a permissionless perpetual futures engine on Solana. Anyone can launch a leveraged trading market for any SPL token — no gatekeepers, no applications, no delays.

20x
Max Leverage
~30s
Deploy Time
8%
Creator Revenue
100%
On-Chain

Key Features

Permissionless market creation for any SPL token
Virtual AMM (vAMM) — no impermanent loss for LPs
Coin-margined — trade with the token itself
DEX oracle pricing from PumpSwap & Raydium
Protocol-level insurance fund
Fully on-chain — no off-chain matching engine
GUIDE

How It Works

Launching a market on LeviantPerp takes three steps:

01

Pick a Token

Choose any SPL token with on-chain liquidity on PumpSwap or Raydium. Paste the token mint address into the Launch Market interface.

02

Configure Parameters

Set the maximum leverage (1-20x), base spread (in basis points), and seed liquidity amount. Higher seed liquidity means less slippage for traders.

03

Deploy & Earn

Sign the transaction with your wallet. The market goes live in ~30 seconds. You earn 8% of every trade fee — forever, with no cap.

CORE

vAMM Engine

LeviantPerp uses a Virtual Automated Market Maker (vAMM) for price discovery and trade execution. Unlike traditional AMMs, the vAMM doesn't hold real tokens in the pool — it uses virtual reserves to track price.

Constant Product Formula
k = base_reserve × quote_reserve

// Price calculation
mark_price = quote_reserve / base_reserve

// Swap output (buying base / going long)
new_quote = quote_reserve + input_amount
new_base  = k / new_quote
base_out  = base_reserve - new_base

How the vAMM Differs from Traditional AMMs

Feature
Traditional AMM
LeviantPerp vAMM
Token reserves
Real tokens
Virtual (simulated)
Impermanent loss
Yes
No
Leverage
1x only
Up to 20x
Shorting
Not native
Native support
LP deposits
Token pairs
Single token (coin-margined)
ECONOMICS

Fee Structure

Every trade on LeviantPerp incurs a fee based on the market's base spread. Fees are automatically split between three recipients:

82% LP
10%
8%
Recipient
Share
Description
LP Pool
82%
Distributed to liquidity providers proportional to LP shares
Protocol
10%
Protocol treasury + 20% routed to insurance fund
Creator
8%
Market creator earns passively on every trade, forever

Fees are charged on both opening and closing a position. The base spread is set by the market creator during deployment (default 30 bps = 0.3%).

TRADING

Positions & Trading

Traders can open long or short positions with configurable leverage on any active market.

Opening a Position

Position Parameters
side:       Long | Short
collateral: Amount of tokens deposited as margin
leverage:   1x to max_leverage (set by market)
size:       collateral × leverage (notional)
entry:      Calculated from vAMM swap output
liq_price:  Auto-calculated based on leverage

Position Lifecycle

1. Open — Trader deposits collateral. vAMM calculates entry price and position size.
2. Hold — Unrealized PnL tracks with the vAMM mark price in real-time.
3. Close — Partial (1-99%) or full close. Payout = collateral ± PnL - fees.
4. Liquidate — If underwater, anyone can liquidate for a 5% reward.

PnL Calculation

Unrealized PnL
// Long position
pnl = size × (current_price - entry_price) / entry_price

// Short position
pnl = size × (entry_price - current_price) / entry_price

// Payout on close
payout = max(0, collateral + pnl) - closing_fee
RISK

Liquidation

Positions are liquidated when the remaining margin falls below the maintenance margin requirement.

Liquidation Mechanics
maintenance_margin = 5% of position size

// Position is liquidatable when:
collateral + unrealized_pnl ≤ maintenance_margin

// Liquidation price (Long):
liq_price = entry × (1 - (1 - maintenance) / leverage)

// Liquidation price (Short):
liq_price = entry × (1 + (1 - maintenance) / leverage)

Liquidation Flow

Anyone can call liquidate on an underwater position
Liquidator receives 5% of remaining collateral as reward
Remaining collateral goes to the market's insurance fund
vAMM reserves are adjusted (position unwound)
LP

Liquidity Providers

LPs deposit tokens into a market's vault and receive LP shares proportional to their contribution. LPs earn 82% of all trading fees.

Adding Liquidity

LP Share Calculation
// First deposit
shares = deposit_amount

// Subsequent deposits
shares = deposit_amount × total_shares / total_liquidity

// vAMM reserves scale proportionally with liquidity
// More liquidity = deeper book = less slippage

Removing Liquidity

Withdrawal amount = LP shares × total_liquidity / total_shares
Cannot withdraw below minimum liquidity (based on open interest)
vAMM reserves scale down proportionally
SAFETY

Insurance Fund

Each market has a dedicated insurance fund that protects LPs against bad debt from liquidation shortfalls.

Funding Sources

20% of protocol fee (2% of total trading fee)
Remaining collateral from liquidated positions

When Insurance Kicks In

If a position's losses exceed its collateral (bad debt), the insurance fund covers the difference to protect LP deposits from socialized losses.

TECHNICAL

Smart Contracts

LeviantPerp is built on Solana using the Anchor framework. All logic runs on-chain with no off-chain dependencies.

Program Instructions

Instruction
Access
Description
initialize_protocol
Admin
One-time protocol setup
create_market
Anyone
Deploy market for any SPL token
add_liquidity
Anyone
Deposit tokens, receive LP shares
remove_liquidity
LP
Burn LP shares, withdraw tokens
open_position
Anyone
Open long/short with leverage
close_position
Owner
Close partial or full position
liquidate
Anyone
Liquidate underwater position

Account Structure

PDA Seeds
ProtocolConfig  → seeds: ["protocol"]
Market          → seeds: ["market", token_mint]
TokenVault      → seeds: ["vault", market]
VaultAuthority  → seeds: ["vault_auth", market]
Position        → seeds: ["position", market, trader, index]
DEVELOPER

SDK & Integration

Use the TypeScript SDK to interact with LeviantPerp programmatically.

Quick Start
import { LeviantPerpClient } from '@leviantperp/sdk';
import { Connection } from '@solana/web3.js';

// Connect
const connection = new Connection('https://api.devnet.solana.com');
const client = LeviantPerpClient.fromPhantom(connection);

// Create a market
const { tx, market } = await client.createMarket(
  tokenMint,    // PublicKey
  10,           // max leverage
  30,           // spread bps
  1_000_000     // seed liquidity
);

// Open a 5x long
const { tx, position } = await client.openPosition(
  tokenMint,
  'long',
  10_000,       // collateral
  5             // leverage
);

// Get market stats
const stats = await client.getMarketStats(tokenMint);
console.log(stats.markPrice, stats.creatorFees);

Available Methods

Method
Returns
createMarket()
{ tx, market }
addLiquidity()
tx hash
openPosition()
{ tx, position }
closePosition()
tx hash
liquidate()
tx hash
getMarketStats()
market data object
getAllMarkets()
array of markets
getPositionsByTrader()
array of positions