v1

latestOpenAPI 3.1.02026-07-2619047.9 KB

Create Stealth Pool

Build unsigned stealth-pool setup and ER update transactions that map a handle to 1-10 destination owner keys. Requires an Authorization: Bearer <token> header from the /v1/spl/login flow. Once initialized, the handle can be used as the to value of a private /v1/spl/transfer.

post/v1/spl/stealth-pool

Request body

payerstring required
authoritystring required

Authority allowed to manage the pool.

handlestring required

Human-readable handle, up to 255 UTF-8 bytes. Stored as its exact bytes — NOT trimmed, lowercased, or normalized, so John.Doe@… is a different handle than john.doe@….

destinationsstring[] required

1-10 destination owner pubkeys (owners, not token accounts).

splitAcrossKeysboolean

Optional. When true, split payments may resolve independently across the destination keys.

validatorstring

Optional. Validator identity to receive the delegated pool.

Example request

{
  "payer": "3rXKwQ1kpjBd5tdcco32qsvqUh1BnZjcYnS5kYrP7AYE",
  "authority": "3rXKwQ1kpjBd5tdcco32qsvqUh1BnZjcYnS5kYrP7AYE",
  "handle": "john.doe@magicblock.id",
  "destinations": [
    "Bt9oNR5cCtnfuMmXgWELd6q5i974PdEMQDUE55nBC57L"
  ],
  "splitAcrossKeys": false
}

Response

Unsigned setup and ER update transactions

kind'stealthPool' required
version'legacy' | 'v0' required
transactionBase64string required

The ER update transaction.

sendTo'base' | 'ephemeral' required
sendRpcEndpointstring uri
recentBlockhashstring required
lastValidBlockHeightinteger required
instructionCountinteger required
requiredSignersstring[] required
stealthPoolstring required

Derived stealth-pool PDA.