Skip to content
Concepts · Desktop UI

RPC server

Publish any session as a Solana-compatible JSON-RPC endpoint without leaving the desktop app. Wire-compatible with @solana/web3.js, Anchor, and wallet adapters.

Start the server

Open the right rail Inspector, switch to the Details tab for the active session, find the RPC endpoint card, hit Start. Reley binds an HTTP listener and surfaces the URL.

endpoint
http://127.0.0.1:8899/session/<id>

Copy the URL with the inline copy button. Stop via the same card when you're done.

Connect a client

@solana/web3.js
import { Connection, Keypair, SystemProgram, Transaction } from '@solana/web3.js'

const connection = new Connection(
  'http://127.0.0.1:8899/session/main',
  'confirmed',
)

const payer = Keypair.generate()
await connection.requestAirdrop(payer.publicKey, 1e9)

const tx = new Transaction().add(
  SystemProgram.transfer({
    fromPubkey: payer.publicKey,
    toPubkey: Keypair.generate().publicKey,
    lamports: 1000,
  }),
)
await connection.sendTransaction(tx, [payer])

Watch traffic

The history dock at the bottom (⌘J) shows every tx the server accepts - same view as txs sent from the Tx Builder. Click a row for the decoded instruction tree, CU per frame, logs, and account diff.

Tx Builder with history dock toggle
History dock surfaces RPC-submitted txs alongside builder runs

Phantom dev mode

Phantom's dev RPC field accepts custom URLs. Point it at your session URL, switch the wallet to Devnet slot, connect any dApp running locally. Signing uses the real Phantom keypair; execution lands in your SVM sandbox.

Implemented methods

  • getAccountInfo, getMultipleAccounts, getProgramAccounts
  • getBalance, getMinimumBalanceForRentExemption
  • getLatestBlockhash, getBlockHeight, getSlot, getEpochInfo
  • sendTransaction, simulateTransaction, getSignatureStatuses
  • requestAirdrop (synthetic, against the sandbox bank)
  • getTokenAccountBalance, getTokenAccountsByOwner
note
WebSocket subscriptions (accountSubscribe, signatureSubscribe) are on the roadmap. The HTTP surface covers the send-and-confirm path used by web3.js, Anchor, and most wallet adapters today.