Xome
FeaturesHow it worksFAQDocsTry Xome →Join waitlist

Self-hosting

Solana setup.

Two variables light up the whole crypto layer: a Privy app id for wallets, and an RPC URL for reliable on-chain reads and broadcasts.

1 · Privy (embedded wallets)

  1. 1
    Create a Privy app
    dashboard.privy.io → new app. Copy the App ID into NEXT_PUBLIC_PRIVY_APP_ID. No app secret is needed, signing happens client-side.
  2. 2
    Enable Solana embedded wallets
    In the Privy dashboard enable Embedded wallets → Solana (create on login), and turn on at least one login method (email is easiest).
  3. 3
    Allow your origins
    Add http://localhost:3000 and your production domain to Privy's allowed origins, connect fails from unlisted origins.

2 · RPC

  • Without config, the app uses the public mainnet RPC, fine for trying things, rate-limited in practice.
  • For real use set SOLANA_RPC_URL to a provider like Helius or QuickNode. It's used only server-side by /api/solana/rpc; the key never reaches the client, and the route rejects cross-site callers.

3 · Jupiter

  • Swaps and prices use Jupiter's keyless lite API by default (lite-api.jup.ag) via the allowlisted proxy, nothing to configure.
  • Override with NEXT_PUBLIC_JUPITER_BASE if you have a paid Jupiter tier.
Everything is mainnet and non-custodial: your deployment never holds user keys or funds. Send/swap tools are hard-wired to show an approval sheet on every call and cannot be added to the always-allow list.