Skip to main content

Building with an AI coding agent? Install the MagicBlock Dev Skill to give your agent MagicBlock-specific patterns — delegation flows, Magic Actions, cranks, VRF, and more.Hit an error? Ask your coding agent with the skill installed, not the docs assistant. The assistant only sees the docs, so it cannot debug your code.Quick install for Claude Code:
Using Cursor, Codex, Windsurf, Cline, or another agent? See the AI Dev Skill page for all install targets.

Quick Access

Check out example:

GitHub

Private Counter Anchor Implementation

Live Example App

Try the Private Counter
MagicBlock’s Private Ephemeral Rollup enforces compliance based on node-level IP geofencing, OFAC-sanction list and restricted jurisdictions at ingress, before any transaction is accepted or executed. Find out more

Step-By-Step Guide

Build your program, delegate state to the TEE validator, and create an EphemeralPermission account directly on the ER via MagicBlock’s Permission Program ACLseoPoyC3cBqoUtkbjZ4aDrkurZW86v19pXz2XQnp1 and Delegation Program DELeGGvXpWV2fqJUhqcF5ZSYMS4JTLjteaAMARRSaeSh:
1

Write your program

Write your Solana program as you normally.
2

Delegate and create permission

delegate delegates the counter to the TEE validator on the base layer. init_permission then runs on the ER — the delegated PDA signs as PDA and pays its own ephemeral permission rent (pre-funded at initialize time). set_privacy flips the public/private flag on demand. No base-layer permission account to create, delegate, or commit-and-undelegate. See access control details.

These public validators are supported for development. Make sure to add the specific ER validator in your delegation instruction:

Mainnet
  • Asia (as.magicblock.app): MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57
  • EU (eu.magicblock.app): MEUGGrYPxKk17hCr7wpT6s8dtNokZj5U2L57vjYMS8e
  • US (us.magicblock.app): MUS3hc9TCw4cGC12vHNoYcCGzJG1txjgQLZWVoeNHNd
  • TEE (mainnet-tee.magicblock.app): MTEWGuqxUpYZGFJQcp8tLN7x5v9BSeoFHYWQQ3n3xzo
Devnet
  • Asia (devnet-as.magicblock.app): MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57
  • EU (devnet-eu.magicblock.app): MEUGGrYPxKk17hCr7wpT6s8dtNokZj5U2L57vjYMS8e
  • US (devnet-us.magicblock.app): MUS3hc9TCw4cGC12vHNoYcCGzJG1txjgQLZWVoeNHNd
  • TEE (devnet-tee.magicblock.app): MTEWGuqxUpYZGFJQcp8tLN7x5v9BSeoFHYWQQ3n3xzo
Localnet
  • Local ER (localhost:7799): mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev
3

Deploy your program on Solana

Deploy your Solana program using Anchor CLI.
4

Implement authorization in your client

Sign user message to retrieve authorization token from TEE endpoint.
5

Execute transactions and test privacy

Request for authorization token and send confidential transactions.

Private Counter Example

The following software packages may be required, other versions may also be compatible:
The EphemeralPermission flow shown below requires ephemeral-rollups-sdk v0.14+ (introduces CreateEphemeralPermissionCpi / UpdateEphemeralPermissionCpi / CloseEphemeralPermissionCpi). For older SDK and Anchor versions, see legacy examples.

Code Snippets

A simple counter program with initialize and increment instructions, identical in shape to the public counter — privacy is added in the next steps:
⬆️ Back to Top

Advanced Code Snippets

These ER building blocks work the same way inside a Private Ephemeral Rollup.
When resizing a delegated PDA:
  • PDA must have enough lamports to remain rent-exempt for the new account size.
  • If additional lamports are needed, the payer account must be delegated to provide the difference.
  • PDA must be owned by the program, and the transaction must include any signer(s) required for transferring lamports.
  • Use system_instruction::allocate
⬆️ Back to Top

Access Control

Fine-grained Access Control

On-chain Privacy

Privacy Mechanisms and Concepts

Authorization

Authorization Framework

Compliance Framework

Compliance Standards and Guidelines

Solana Explorer

Get insights about your transactions and accounts on Solana:

Solana Explorer

Official Solana Explorer

Solscan

Explore Solana Blockchain

Solana RPC Providers

Send transactions and requests through existing RPC providers:

Solana

Free Public Nodes

Helius

Free Shared Nodes

Triton

Dedicated High-Performance Nodes

Solana Validator Dashboard

Find real-time updates on Solana’s validator infrastructure:

Solana Beach

Get Validator Insights

Validators App

Discover Validator Metrics

Server Status

Subscribe to Solana’s and MagicBlock’s server status:

Solana Status

Subscribe to Solana Server Updates

MagicBlock Status

Subscribe to MagicBlock Server Status

MagicBlock Products

Ephemeral Rollup (ER)

Execute real-time, zero-fee transactions securely on Solana.

Private Ephemeral Rollup (PER)

Protect sensitive data with compliance — built on top of Ephemeral Rollups.

Ephemeral SPL Token

Move SPL tokens at rollup speed — public or private transfers, swaps, and private payments for trading and DeFi apps.

Prediction Markets & Trading

Combine real-time execution, session keys, token custody, price feeds, automation, and settlement.

Solana VRF

Add provably fair onchain randomness to games, raffles, and real-time apps.

Pricing Oracle

Access low-latency onchain price feeds for trading and DeFi.