Skip to main content

Ephemeral SPL Token Program

オンチェーンの Ephemeral SPL Token プログラム

プライベート決済サンプル

プライベート決済アプリと API フローのサンプルを見る

概要

Ephemeral SPL Token API は、Solana と MagicBlock ephemeral rollups をまたいで、入金、送金、出金、swap、mint 初期化用の未署名 SPL token トランザクションを構築します。残高と mint 初期化状態の照会、stealth pool、プライベートデータを読み取るための bearer token を発行するウォレットの challenge/login フローも提供します。正式な公開リファレンスは payments.magicblock.app/reference です。

メタ

認証

  • チャレンジ - ウォレットが署名する challenge 文字列を生成する
  • ログイン - 署名済み challenge を bearer token と交換する

SPL

  • SPL Token を入金 - Solana から ephemeral rollup への未署名入金トランザクションを構築する
  • SPL Token を送金 - 未署名の公開またはプライベート SPL 送金を構築する
  • SPL Token を出金 - Solana へ戻す未署名出金トランザクションを構築する
  • Ephemeral ATA の委任を解除 - mint に対するウォレットの eATA を委任解除する未署名トランザクションを構築する
  • Mint を初期化 - mint 用の validator-scoped transfer queue を初期化する未署名トランザクションを構築する
  • Transfer Queue Crank を実行 - mint の transfer queue を検証し、crank を 1 回強制的に試行する
  • 残高 - アドレスの base-chain SPL token 残高を取得する
  • プライベート残高 - アドレスの ephemeral-rollup SPL token 残高を取得する(認証が必要)
  • Mint の初期化状態 - mint に validator-scoped transfer queue が ephemeral RPC 上で存在するか確認する

Stealth Pool

Swap

  • Swap クォート - 2 つの SPL mint 間の swap クォートを取得する
  • Swap - 未署名の swap トランザクションを構築する(公開パススルー、またはスケジュール済み送金付きのプライベート)

MCP

  • MCP - stateless Streamable HTTP MCP endpoint にアクセスする

認証フロー

Private Ephemeral Rollup 内のプライベートデータを読み取るエンドポイントには bearer トークンが必要です:
  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> を渡す

レスポンス形式

トランザクション構築エンドポイントが成功すると、未署名トランザクションのペイロードが返されます:
クライアントの流れ:
  1. API を呼び出す
  2. transactionBase64 をデコードする
  3. 必要に応じてクライアント側でトランザクションを調整する
  4. 必要なウォレットで署名する
  5. sendTo で指定された RPC ("base" または "ephemeral") に送信する