> ## Documentation Index
> Fetch the complete documentation index at: https://magicblock-42-supermarioblock-patch-3.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> SPL Private Payments API documentation

<CardGroup cols={2}>
  <Card title="Ephemeral SPL Token Program" icon="coin" href="https://github.com/magicblock-labs/ephemeral-spl-token" iconType="duotone" />
</CardGroup>

## Overview

The SPL Private Payments API builds unsigned SPL token transactions for deposits, transfers, withdrawals, and mint initialization across Solana and MagicBlock ephemeral rollups. It also exposes balance and mint-initialization status queries. The canonical public reference is available at [payments.magicblock.app/reference](https://payments.magicblock.app/reference).

### Meta

* [**Health**](/api-reference/per-api/health) - Check API health and availability

### SPL

* [**Deposit SPL Tokens**](/api-reference/per-api/deposit) - Build an unsigned deposit transaction from Solana into an ephemeral rollup
* [**Transfer SPL Tokens**](/api-reference/per-api/transfer) - Build an unsigned public or private SPL transfer
* [**Withdraw SPL Tokens**](/api-reference/per-api/withdraw) - Build an unsigned withdrawal transaction back to Solana
* [**Initialize Mint**](/api-reference/per-api/initialize-mint) - Build an unsigned transaction that initializes a validator-scoped transfer queue for a mint
* [**Balance**](/api-reference/per-api/balance) - Get the base-chain SPL token balance for an address
* [**Private Balance**](/api-reference/per-api/private-balance) - Get the ephemeral-rollup SPL token balance for an address
* [**Is Mint Initialized**](/api-reference/per-api/is-mint-initialized) - Check whether a mint has a validator-scoped transfer queue on the ephemeral RPC

### MCP

* [**MCP**](/api-reference/per-api/mcp) - Access the stateless Streamable HTTP MCP endpoint

```
┌────────────────────────────────────────────┐
│ 1. Deposit                                │
├────────────────────────────────────────────┤
│ • Build an unsigned deposit transaction   │
│ • Solana base balance → ephemeral rollup  │
└────────────────────────────────────────────┘
                     ↓
┌────────────────────────────────────────────┐
│ 2. Transfer                               │
├────────────────────────────────────────────┤
│ • Build a public or private SPL transfer  │
│ • base/ephemeral → base/ephemeral         │
└────────────────────────────────────────────┘
                     ↓
┌────────────────────────────────────────────┐
│ 3. Withdraw                               │
├────────────────────────────────────────────┤
│ • Build an unsigned withdrawal            │
│ • ephemeral rollup → Solana base balance  │
└────────────────────────────────────────────┘
```

## Response Format

Successful transaction-building endpoints return an unsigned transaction payload:

```json theme={null}
{
  "kind": "deposit",
  "version": "legacy",
  "transactionBase64": "base64-encoded-transaction",
  "sendTo": "base",
  "recentBlockhash": "blockhash",
  "lastValidBlockHeight": 284512337,
  "instructionCount": 3,
  "requiredSigners": ["3rXKwQ1kpjBd5tdcco32qsvqUh1BnZjcYnS5kYrP7AYE"]
}
```
