NestDocs
Reference

Mainnet deployments

Mainnet program IDs, protocol accounts, token mints, and collateral-market addresses.

Load addresses from the versioned deployment manifest at /deployments/mainnet.json, verify its cluster and schema, and verify each downloaded IDL's address before constructing a transaction. Do not use addresses copied from screenshots or old transactions.

Programs, tokens, and global accounts

Programs

ProgramMainnet addressPurpose
Nest CoreHxbLPNuQD7KKDVQoSQgY1cLMLrsaoseT65Xoczh7zHQWBorrowing, collateral, nUSD, and PSM accounting
nUSD stakingEdYg6JsyntWpf3WGofNWKzBYnQPEvWFZSzUNim3PLbhBnUSD and snUSD staking
NEST stakingJ1aaoi1XYJH8Erg7VtJECLiRHmHPc1dQDY9j4tYj7ehMNEST cooldowns and funded nUSD rewards
Leveraged vaultsEwwEjYvZ1CU3kVFNobn3nHtn8JVLuymLtaeZ2KF2fAav2SPY and 2QQQ vault accounting

Nest-issued token mints

TokenMainnet mintPurpose
NEST68Nq68CrtLVpyvK5Un7UADiNczaGf39hBbj3diRsYj6DProtocol participation and incentives token
nUSDBKvheJ3skKvXqUbfroAgCf8dFfUKJM4W38raUaygLiUSNest dollar token
snUSD3ff7JAqqEyq7kyeWkxcqNCDjLWMB1Fh85Zq15k7yj4ZDShare token for staked nUSD
2SPY6JstqnYXjvCu6Frao9MHJDVCTqAekLXpydYuuK8rQriXNest 2X S&P 500 share token
2QQQDExogeVKoLrCZ7jh18vQu8V9M3Gzpzy9f8k1foUiMDrLNest 2X QQQ share token

Protocol state and product accounts

AccountMainnet addressPurpose
Protocol PDA9kXrR4medW7vU6QQDYfkuVXmKErXuTKPrMiGbf7H4SrRGlobal Nest Core state
nUSD staking stateDHfVbFFfkVKhr2hDihbTV7KnU37GsYyskk976npyDAKsGlobal nUSD staking state
NEST staking pool3sCE4aL7Nis7dgM4gowRkhUdN8VA2AZYw91jVEtdhb7eGlobal NEST staking state
2SPY vaultDLVJ6NrvE8YJdJ1cNGTdqyiaHbn7m1vmuEApu3aAmw9BNest 2X S&P 500
2QQQ vaultFHEynnxf1a8ddKmgSpov4eZjWC5tzF1kiMZeQjKD2ncYNest 2X QQQ

Protocol token accounts

AccountMainnet addressPurpose
PSM USDC vault9dYA9d2QePsBp8ZjD5E5vXkMKJUDqqYrXdfCLo2MiavLImmediately available PSM USDC
PSM Kamino collateral vaultAC4wmWELCx27CEDC86LZbUvp7WqUUs6TzgWahjpGrFR3Receipt token for deployed PSM reserves
nUSD staking vaultGzCZdqBirZFeNXcy5gK1K49a4SU2RWMVrYuw5ZjHcF5RnUSD backing snUSD shares
Staker revenue vault98QGnW3yYDfnW2ggzj8uZ22YNmnRmXhD1oRCDqR18vsWRevenue allocated to snUSD
Insurance nUSD vaultEGvPwW7sEHChb2raqSaigZZS6kNEfiauZAVR1h1XbYiHProtocol insurance balance
Protocol revenue nUSD vault4Y6wxXkfc4uHbtPeHg78VhVajZnvhw1Z699nGbMfXjJWAccrued protocol revenue
NEST staking vaultEyXPBVWVvjEM72B4qUmKuDhuNzKKrzHFixa4Ze7XTmSiNEST held by active and cooling positions
NEST reward nUSD vault4x4pynrBbM2tzo8iaYGV7yx9i3fUAixCip4WF5jzBRtfFunded rewards for NEST stakers

External settlement token

TokenMainnet mintPurpose
USDCEPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1vExternal settlement and PSM reserve asset; not issued by Nest

Supported collateral markets

Each row is a separate market. Two markets can represent the same underlying asset while using different mints, issuers, decimals, configurations, and vaults. Use symbol as the stable API key and never select a market by display symbol alone.

MarketIssuerMintMarket configCustody vaultDecimalsBorrow LTVLiquidationOracle
SPYx
SPYx
xStocksXsoC…DF2WD1xj…drqm6tL1…XCys870%80%pyth-lazer
QQQx
QQQx
xStocksXs8S…mWHZ5KaX…UFKA7tcP…6ptS860%70%pyth-lazer
AAPLx
AAPLx
xStocksXsbE…JzJp2s5n…po1J7u7F…w71a850%60%pyth-lazer
GOOGLx
GOOGLx
xStocksXsCP…q6aN7CJE…bn651XrA…6SCR850%60%pyth-lazer
METAx
METAx
xStocksXsa6…o5ZuDyfT…jwUK5Tnk…Z2oZ850%60%pyth-lazer
NVDAx
NVDAx
xStocksXsc9…9qEh2U7G…H6CzBgjD…LSyf850%60%pyth-lazer
TSLAx
TSLAx
xStocksXsDo…HzoBC24f…kgXtXuMD…hvPV850%60%pyth-lazer
COINx
COINx
xStocksXs7Z…PxNuE9Cy…WAEN4sVw…Ns3U850%60%pyth-lazer
CRCLx
CRCLx
xStocksXsue…3bd1Giy4…QXrwGFwm…Ai3G850%60%pyth-lazer
SPCXx
SPCXx
xStocksXs3o…qpH8G8we…B7jNzUVg…4Cqw850%60%pyth-lazer
SPCX
SPCXbp
BackpackSPCX…imGb6QUv…Gyvx5xmg…WpaG650%60%pyth-lazer
MU
MU
BackpackMUxE…Gay1J8hc…sMeCFLfD…KXRc640%50%jupiter-signed
SNDK
SNDK
BackpackSNDK…RhfHHXpV…xvcQ5VU7…ofNP640%50%jupiter-signed
DRAM
DRAM
BackpackDRAM…Y4Cw3oPc…Hw8w3b7V…Rpv3640%50%jupiter-signed
SPYon
SPYon
Ondok18W…ondoE4ZH…WZ9qHzhV…uJvS970%80%jupiter-signed
QQQon
QQQon
OndoHrYN…ondoFKDn…oGyWFkrc…3oxr960%70%jupiter-signed
BOT
BOT
BackpackBoTx…6d8T7jKL…YP91BNC7…Gg7C640%50%jupiter-signed
SKHY
SKHY
BackpackSKHY…9EQ386uK…Jgnj3KnB…ms4x640%50%jupiter-signed
HOOD
HOOD
BackpackHooD…3e9A8JG2…7ijMHLvi…Vk9N640%50%jupiter-signed
INTC
INTC
BackpackiNTC…xFaFGbbP…iR5x4Qs9…nheE640%50%jupiter-signed
SOL
SOL
SolanaSo11…1112HGgE…2DJx3BkA…o9Xk950%65%pyth-lazer
JitoSOL
JitoSOL
JitoJ1to…GCPnA4Tj…i7v98vA5…w5iL950%65%pyth-lazer
MSTR
MSTR
BackpackMSTR…U7NzJADC…fJdZ7wWt…SP9Y640%50%jupiter-signed
TTWO
TTWO
BackpackTTWo…FbKoFfXx…EeCC3zWw…86sR640%50%jupiter-signed
SILV
SILV
DominionSiLV…B35LHnSb…aeKW6toV…V97r660%70%jupiter-signed

Pinning a deployment

import { PublicKey } from "@solana/web3.js";
import type { Deployment } from "../nest-client";

// Nest developer documentation hosts the versioned deployment manifest.
const NEST_DOCS_ORIGIN = "https://docs.nestusd.com";

export async function loadNestMainnetDeployment(
  origin = NEST_DOCS_ORIGIN,
) {
  const response = await fetch(`${origin}/deployments/mainnet.json`, {
    cache: "no-store",
  });
  if (!response.ok) throw new Error(`Deployment fetch failed: ${response.status}`);
  const deployment = await response.json() as Deployment;
  if (
    deployment.schema !== "nest-public-deployment-v1"
    || deployment.cluster !== "mainnet-beta"
  ) throw new Error("Unexpected Nest deployment manifest");

  // Parsing every address also rejects malformed or truncated manifests early.
  [
    ...Object.values(deployment.programs),
    ...Object.values(deployment.accounts),
    ...Object.values(deployment.mints),
    ...Object.values(deployment.vaults),
    ...Object.values(deployment.tokenStaking),
    ...deployment.vaultProducts.flatMap((product) => [
      product.vault,
      product.shareMint,
    ]),
    ...deployment.collateral.flatMap((market) => [
      market.mint,
      market.collateralConfig,
      market.collateralVault,
      market.tokenProgram,
    ]),
  ].forEach((address) => new PublicKey(address));
  return deployment;
}

For Nest mainnet, origin is https://docs.nestusd.com. It is configurable so an integration can pin and serve a reviewed copy from its own release. The public API has a different origin, https://api.nestusd.com, and should not be used as the deployment-artifact origin.

For a production integration, pin the exact manifest revision you reviewed or compare its expected program IDs before allowing writes. A new collateral row does not require your app to support it automatically.

On this page