Skip to main content

Quick Access

Check out basic counter example:

GitHub

Anchor Implementation

GitHub

React Implementation


Step-By-Step Guide

The lifecycle of integrating Ephemeral Rollups in your program is as follows:
1

Write your program

Write your Solana program as you normally would.
2

Add delegation and undelegation hooks in your program

Add CPI hooks to delegate, commit and undelegate state accounts through Ephemeral Rollup sessions.
3

Deploy your program on Solana.

Deploy your program directly on Solana using Anchor or Solana CLI.
4

Ready to execute transactions for delegation and real-time speed

Send transactions without modifications on-chain and off-chain that also comply with the SVM RPC specification.

Counter Example

Counter GIF The following software packages may be required, other versions may also be compatible:

Code Snippets

The program implements two main instructions:
  1. initialize: Sets the counter to 0
  2. increment: Increments the counter by 1
The program implements specific instructions for delegating and undelegating the counter:
  1. Delegate: Delegates counter from Base Layer to ER (called on Base Layer)
  2. CommitAndUndelegate: Schedules sync of counter from ER to Base Layer, and undelegates counter on ER (called on ER)
  3. Commit: Schedules sync of counter from ER to Base Layer (called on ER)
  4. Undelegate:
    • Schedules sync and undelegation of counter (called on ER)
    • Undelegation triggered through callback instruction injected through #[ephemeral] (called on Base Layer through validator CPI)
Nothing special here, just a simple Anchor program that increments a counter. The only difference is that we’re adding the ephemeral macro for undelegation and delegate macro to inject some useful logic to interact with the delegation program.⬆️ Back to Top

Advanced Code Snippets

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

Quick Access

Learn more about private ER, Rust Native implementation, and local development:

Private Ephemeral Rollups (PER)

Quickstart

Rust Native

Quickstart

Guide

Local Development

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 privacy-preserving computation.

Verifiable Randomness Function (VRF)

Generate provably fair randomness directly on-chain.