Skip to main content

⚠️ Important

When using a local ER validator, you need to connect it to your preferred base layer (e.g., mainnet-beta, devnet, or localhost) where the accounts are delegated.

These public validators are supported for development. Make sure to add the specific ER validator account when delegating:

  • Asia (devnet-as.magicblock.app): MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57
  • EU (devnet-eu.magicblock.app): MEUGGrYPxKk17hCr7wpT6s8dtNokZj5U2L57vjYMS8e
  • US (devnet-us.magicblock.app): MUS3hc9TCw4cGC12vHNoYcCGzJG1txjgQLZWVoeNHNd
  • TEE (tee.magicblock.app): FnE6VJT5QNZdedZPnCoLsARgBwoE6DeJNjBs2H1gySXA
  • Local ER (localhost): mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev
  • solana-test-validator (localhost)
  • devnet
1

Set up Solana Test Validator (Localhost) and deploy your upgraded program

  1. Install solana-test-validator:
sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)"
  1. Install the latest MagicBlock Ephemeral Validator:
npm install -g @magicblock-labs/ephemeral-validator@latest
  1. Run solana-test-validator with cloned delegation program and accounts from Devnet:
mb-test-validator --reset
  1. Upgrade and deploy your program to localhost:
  • Rust Native
  • Anchor
cargo build-sbf
solana config set --url localhost
solana program deploy YOUR_PROGRAM_PATH
2

Run MagicBlock ER validator (Localhost)

Run the local ephemeral validator pointing to localhost:
RUST_LOG=info ephemeral-validator \
  --accounts-lifecycle ephemeral \
  --remote-cluster development \
  --remote-url http://127.0.0.1:8899 \
  --remote-ws-url ws://127.0.0.1:8900 \
  --rpc-port 7799
3

Test program instructions and delegation (Localhost)

Run your tests against the local ephemeral validator:
  • Rust Native
  • Anchor
EPHEMERAL_PROVIDER_ENDPOINT=http://localhost:7799 \
EPHEMERAL_WS_ENDPOINT=ws://localhost:7800 \
PROVIDER_ENDPOINT=http://localhost:8899 \
WS_ENDPOINT=ws://localhost:8900 \
yarn test

Quick Access

Explore program and test scripts for both Anchor and Native Rust: