跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.magicblock.gg/llms.txt

Use this file to discover all available pages before exploring further.

Ephemeral SPL Token Program

私密 SPL token 流程的参考程序

私密支付示例

查看私密支付示例应用及其 API 流程

概述

Private Payments API 用于在 Solana 与 MagicBlock ephemeral rollups 之间构建未签名的 SPL token 入金、转账、提现、swap 与 mint 初始化交易。它还提供余额查询、mint 初始化状态查询,以及为读取私密数据签发 bearer token 的钱包 challenge/login 流程。官方公开参考可见 payments.magicblock.app/reference

元信息

  • Health - 检查 API 健康状态与可用性

认证

  • Challenge - 生成需由钱包签名的挑战字符串
  • Login - 用已签名的挑战换取 bearer token

SPL

  • Deposit SPL Tokens - 构建从 Solana 进入 ephemeral rollup 的未签名入金交易
  • Transfer SPL Tokens - 构建未签名的公开或私密 SPL 转账
  • Withdraw SPL Tokens - 构建返回 Solana 的未签名提现交易
  • Initialize Mint - 构建用于初始化某个 mint 的 validator-scoped transfer queue 的未签名交易
  • Balance - 获取某地址在基础链上的 SPL token 余额
  • Private Balance - 获取某地址在 ephemeral rollup 上的 SPL token 余额(需认证)
  • Is Mint Initialized - 检查某个 mint 是否已在 ephemeral RPC 上拥有 validator-scoped transfer queue

Swap

  • Swap Quote - 获取两个 SPL mint 之间的 swap 报价
  • Swap - 构建未签名的 swap 交易(公开直通或带定时转账的私密模式)

MCP

  • MCP - 访问无状态的 Streamable HTTP MCP 端点
┌────────────────────────────────────────────┐
│ 1. Deposit                                │
├────────────────────────────────────────────┤
│ • 构建未签名入金交易                       │
│ • Solana base balance → ephemeral rollup  │
└────────────────────────────────────────────┘

┌────────────────────────────────────────────┐
│ 2. Transfer / Swap                        │
├────────────────────────────────────────────┤
│ • 构建 SPL 转账或 swap                    │
│ • base/ephemeral → base/ephemeral         │
│ • 公开或私密(可延时 + 拆分)              │
└────────────────────────────────────────────┘

┌────────────────────────────────────────────┐
│ 3. Withdraw                               │
├────────────────────────────────────────────┤
│ • 构建未签名提现交易                       │
│ • ephemeral rollup → Solana base balance  │
└────────────────────────────────────────────┘

认证流程

读取 Private Ephemeral Rollup 内私密数据的端点需要 bearer token:
  1. GET /v1/spl/challenge?pubkey=<wallet> 返回 challenge 字符串
  2. 钱包对该 challenge 进行签名
  3. POST /v1/spl/login 提交 { pubkey, challenge, signature } 返回 token
  4. /v1/spl/private-balance (必需) 以及需要连接 Private Ephemeral Rollup 的 /v1/spl/transfer 请求 (可选) 上设置 Authorization: Bearer <token>

响应格式

交易构建端点成功时会返回一个未签名交易载荷:
{
  "kind": "deposit",
  "version": "legacy",
  "transactionBase64": "base64-encoded-transaction",
  "sendTo": "base",
  "recentBlockhash": "blockhash",
  "lastValidBlockHeight": 284512337,
  "instructionCount": 3,
  "requiredSigners": ["3rXKwQ1kpjBd5tdcco32qsvqUh1BnZjcYnS5kYrP7AYE"]
}
客户端流程为:
  1. 调用 API
  2. 解码 transactionBase64
  3. 如有需要,客户端可对交易进行调整
  4. 用所需钱包签名
  5. 提交到 sendTo 指定的 RPC ("base""ephemeral")