# Devnet mode — interfața SpyON pe Solana Devnet (active fără valoare)

Demo-ul public https://spyon-sxp500-demo.pages.dev rămâne **mock** (browser-only, fără wallet, fără tranzacții). Modul Devnet de mai jos e pentru laborator: semnează tranzacții reale pe **Solana Devnet** cu **TEST BTC / test USDC / SXP** fără valoare. Mainnet e refuzat de configurație (safety lock pe URL-ul RPC).

## Pornire locală

Din `07_REPO_CANONIC`:

```bash
npm ci && npm run build:libs
cat > apps/web/.env.local <<'ENV'
VITE_PROTOCOL_MODE=devnet
VITE_SOLANA_RPC_URL=https://api.devnet.solana.com
VITE_SYNTHETIC_PROGRAM_ID=EeCeb8mxJPVa1VotT6bn5N6upB8zLsv1vZFvgRPsuMHp
VITE_GUARDIAN_URL=http://127.0.0.1:8790
VITE_RELAYER_URL=http://127.0.0.1:8787
# opțional, doar pentru laborator fără extensie de wallet:
VITE_DEVNET_BURNER_WALLET=true
ENV
npm run dev --workspace @open-sp/web      # http://127.0.0.1:5173
```

`npm run build --workspace @open-sp/web` produce `apps/web/dist` (verde pe 11.09.2026 00:06 UTC, vezi DEVNET_EVIDENCE_2026-09-10.md, A7).

## Ce citește interfața on-chain

Program, configurație, oracle, epoca curentă (#id, stare, scadență), pool-ul TEST BTC/USDC, capacitatea disponibilă (vault-ul opus), soldurile wallet-ului conectat (TEST BTC, tUSDC, SXP). Nimic nu e simulat în modul Devnet.

## Ruta cap-coadă din UI

1. **Select Wallet** → Phantom / Solflare (setate pe Devnet) sau **Burner Wallet** (cheie efemeră în browser, doar când `VITE_DEVNET_BURNER_WALLET=true`; se pierde la reîncărcare).
2. Wallet-ul are nevoie de puțin SOL devnet + TEST BTC (`npm run fund:test-user`, vezi PHANTOM_DEVNET_TEST.ro.md).
3. **TEST BTC → SXP**: două semnături — `swap_test_btc_for_usdc` apoi `open_long_position` (fee 0,25 %, mint SXP doar dacă există lichiditate opusă; refuz on-chain altfel).
4. După scadența epocii și `settle_epoch`: **SXP → TEST BTC** — `claim_long` (burn SXP → tUSDC) apoi `swap_test_usdc_for_btc`.
5. **Provide** (lichiditate opusă): `deposit_short_liquidity` în fereastra de funding.

Semnăturile apar în mesajul de confirmare și pe Explorer cu `?cluster=devnet`.

## Limite

- Oracle: observație manuală de test (autoritatea = wallet-ul admin); Pyth/Hermes cere cheie API și o instanță nouă a programului (vezi DEVNET_EVIDENCE_2026-09-10.md, A6).
- Burner Wallet e nesigur prin definiție (cheia stă în memoria paginii) — niciodată pentru active reale; dezactivat implicit și imposibil în modul demo/mainnet.
- Guardian-ul (`npm run dev:guardian` cu `SNAPSHOT_SOURCE=solana SOLANA_NETWORK=devnet`) e read-only, fără semnatar.
