Shadow Documentation

Shadow is a private perpetuals trading app built on Solana devnet. It combines encrypted positions, delegated sessions, and confidential compute from Arcium so trading feels practical without exposing every detail in public.

Overview

Shadow is built for people who want a more private trading experience on Solana. Trade size, direction, leverage, and margin are encrypted before they reach the program, and the sensitive calculations run through Arcium instead of being exposed in plain view.

Only the public state needed for settlement is written on chain. The goal is to avoid turning every position into public intent data.

Shadow is currently running on Solana Devnet as an active prototype. Everything here should be treated as test funds and test state.

How It Works

Each trade follows the same core path:

  1. Encrypt | Your browser encrypts sensitive trade inputs such as size, price, leverage, direction, and margin.
  2. Queue | The encrypted payload is submitted to the Solana program, which queues the computation on Arcium.
  3. Compute | Arcium evaluates the private trade logic, including margin checks, PnL, and liquidation conditions, without exposing the raw inputs to any single node.
  4. Callback | Arcium returns the verified result to the Solana program.
  5. Settle | Shadow updates the margin account and position state from that verified output.

After your session is approved, the relay can submit trades on your behalf. That keeps the flow smooth, because you sign once for the session instead of getting a wallet prompt for every action.

Session Trading

Shadow uses a delegated session model so the trading flow stays usable. Here is what happens the first time you start a session:

  1. You sign a CreateTradeSession transaction. This creates a session PDA tied to your wallet and the relay.
  2. You sign a short authorization message. This is not a transaction. It simply proves that the relay can act for you during the session window.
  3. For the rest of that session, the relay submits trades without opening a wallet popup each time.

Session Limits

ParameterDefault
Session duration7 days
Max actions200 trades
Max margin per action$1,000 USDC
RevocableYes, anytime on chain
The session authorization signature is tied to a specific session ID, market, and expiry. It cannot be reused across sessions or markets.

Privacy Model

Shadow relies on Arcium Multi Party Computation infrastructure. Here is the practical split between what stays private and what remains visible:

What is private

  • Position size
  • Entry price
  • Leverage
  • Direction
  • Margin amount
  • Unrealized PnL

What is public

  • Your wallet address, which is used for the margin account and session
  • Collateral deposits and withdrawals
  • The fact that a trade was queued, but not the details
  • Session creation and revocation
The reference orderbook in the terminal comes from external market depth, mainly Coinbase and Binance. It is there to help you read the market. It is not Shadow's own venue liquidity and it does not reveal other traders' positions.

Margin and Leverage

Shadow supports two margin modes and leverage up to 50x.

Cross Margin

Your full margin balance is shared across all cross margin positions. If one position loses, the rest of the balance absorbs it, which can reduce liquidation risk on a single position but exposes more of your account to aggregate losses.

Isolated Margin

A fixed amount of margin is assigned to one position. If that position is liquidated, only that isolated margin is at risk and the rest of your balance stays untouched.

Leverage

Leverage increases both upside and downside relative to your margin. Available range: 1x to 50x.

LeverageRisk LevelLiquidation Sensitivity
1x to 5xLowLarge move required to liquidate
10x to 15xMediumModerate move liquidates
20x to 30xHighSmall adverse move liquidates
40x to 50xVery HighMinimal move liquidates

Order Types

Market Order

A market order executes against the current oracle price. The position is queued for MPC computation and opens once the Arcium callback returns successfully.

Limit Order

A limit order is queued in the browser and triggered when the market price crosses your chosen level. When that happens, the relay submits the order for you.

Limit orders currently run in the browser. That means the tab needs to stay open for them to trigger.

Take Profit / Stop Loss

Each open position can have optional TP and SL rules. These are stored locally and monitored by the client.

  • Take Profit (TP) | closes the position when price reaches your target.
  • Stop Loss (SL) | closes the position when price reaches your protection level.

You can set TP and SL in the trading panel before opening a position, or edit them later from the position row. Use the Save action to keep the rule.

Validation Rules

  • For long positions, TP must be above entry and SL must be below entry.
  • For short positions, TP must be below entry and SL must be above entry.
  • TP and SL must be at least 0.10% away from entry price.

Liquidation

A position is liquidated when its health ratio falls below the maintenance threshold. The health ratio is calculated as:

Health = (Equity / Maintenance Margin) x 100%

  • Maintenance margin: 5% of position value
  • Liquidation threshold: 80% health
  • Liquidation penalty: 5% to the liquidator, with the remainder returned to the trader

In cross margin mode, your full balance acts as equity. In isolated mode, only the position's allocated margin counts.

Liquidation is enforced on chain through Arcium's confidential compute, and the liquidator never sees your plaintext position details.

FAQ

Do I need to keep the browser open?

For market orders, no. Once submitted, the relay handles execution. For limit orders and TP and SL automation, yes. Those flows still run in the browser and need the tab to stay open.

How do I deposit collateral?

Click Manage in the top bar, or Deposit if your balance is zero. You can deposit USDC directly or through a delegated session. For devnet testing, use a devnet USDC faucet so the balance matches the configured mint.

Why does my position show "MPC Processing"?

The trade was submitted successfully and is waiting for the Arcium MPC cluster to compute and return the callback. This usually takes a few seconds on devnet. If it takes longer, the cluster may be delayed, but your collateral remains safe.

Is my data stored anywhere?

Position metadata such as pair, side, and leverage is stored in your browser's localStorage, keyed to your wallet address. No personal data is sent to any server other than the relay, which only receives encrypted trade inputs.

Can I use Shadow on mainnet?

Not yet. Shadow is currently devnet only. Mainnet depends on a fully verified open and close flow, stronger operational confidence, and a full audit.

Privacy Policy

Effective: March 2026

Information We Collect

Shadow does not require account registration and does not collect personally identifiable information. When you connect a wallet, your public key is used only to identify your on chain margin account and trading session. We do not store wallet addresses on any server.

The relay server receives encrypted trade inputs and your session authorization signature. These are used only to submit transactions on your behalf and are not retained after submission.

Cookies and Local Storage

Shadow stores position metadata and session information in your browser's localStorage. This data stays on your device except when specific relay requests require it. No third party tracking cookies are used.

Blockchain Data

Solana transactions are public by nature. Shadow minimizes what is written on chain by keeping position details encrypted and recording only settlement outputs. Collateral deposits and withdrawals still involve public USDC transfers.

Third Party Services

Shadow uses public APIs such as Coinbase and Binance for reference price data. No user data is sent to these services. Arcium processes encrypted trade inputs, and individual nodes do not get access to the plaintext data.

Contact

Questions about privacy can be sent to @emperoar007 on X.

Terms of Use

Effective: March 2026

Acceptance

By accessing Shadow, you agree to these terms. If you do not agree, please do not use the platform.

Prototype Status

Shadow is an experimental prototype deployed on Solana Devnet. All balances are test funds with no real monetary value. Do not send real assets to devnet addresses.

No Financial Advice

Nothing on Shadow is financial, investment, or trading advice. Perpetual futures carry meaningful risk. You are responsible for your own trading decisions.

Prohibited Use

  • Using Shadow to launder funds or bypass financial regulation
  • Trying to exploit, manipulate, or attack the protocol
  • Reverse engineering the encrypted computation system
  • Accessing Shadow from jurisdictions where this type of service is prohibited

Limitation of Liability

Shadow is provided "as is" without warranty. The developers are not liable for loss of funds, data, or opportunity arising from use of the platform, including smart contract bugs, MPC failures, or network disruptions.

Changes

These terms may be updated over time. Continued use after changes means you accept the revised terms.

Cookie Policy

Effective: March 2026

What We Use

Shadow does not use traditional HTTP cookies for tracking or analytics.

We do use browser localStorage for a few practical product features:

KeyPurposeExpires
shadow-themeLight or dark mode preferencePersistent
shadowperp.relay.session.v1Active trading session infoSession expiry
shadowperp:positions:*Position metadata such as pair, side, and leveragePersistent
shadowperp:ui:margin-mode:*Margin mode preference per walletPersistent
shadowperp:automation:*Limit orders and TP or SL rulesPersistent

Third Party Cookies

No third party analytics, advertising, or tracking cookies are used. External APIs may set their own cookies if you visit them directly, but Shadow itself only uses their public endpoints on the server side.

Clearing Your Data

You can clear all Shadow local data through your browser developer tools by clearing localStorage for the Shadow domain, or by using your browser's clear site data option.

Back to homepage