메인 콘텐츠로 건너뛰기
POST
Transfer SPL Tokens

인증

Authorization
string
header
필수

Token obtained from the /v1/spl/login flow.

본문

application/json
from
string
필수

Sender wallet pubkey.

예시:

"3rXKwQ1kpjBd5tdcco32qsvqUh1BnZjcYnS5kYrP7AYE"

to
string
필수

Recipient wallet pubkey, or an initialized stealth handle (e.g. alice@magicblock.id). When a non-pubkey handle is provided it is resolved via its stealth pool and requires visibility: private, fromBalance: base, toBalance: base.

예시:

"Bt9oNR5cCtnfuMmXgWELd6q5i974PdEMQDUE55nBC57L"

mint
string
필수

SPL mint pubkey.

예시:

"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"

amount
integer
필수

Base-unit amount as an integer JSON value with minimum 1.

필수 범위: x >= 1
예시:

1000000

cluster

Optional. Use mainnet for BASE_RPC_URL and EPHEMERAL_RPC_URL, devnet for BASE_DEVNET_RPC_URL and EPHEMERAL_DEVNET_RPC_URL, or provide a custom http(s) RPC URL to override the base RPC while keeping the configured ephemeral RPC.

사용 가능한 옵션:
mainnet,
devnet
예시:

"mainnet"

visibility
enum<string>

Optional. Defaults to private. Use public for a transparent SPL transfer or private to route through the Private Ephemeral Rollup.

사용 가능한 옵션:
public,
private
fromBalance
enum<string>

Optional. Defaults to base. Where the sender's balance is held. Drives which RPC the API uses for blockhash and where the client should submit.

사용 가능한 옵션:
base,
ephemeral
toBalance
enum<string>

Optional. Defaults to base. Where the recipient should receive the funds.

사용 가능한 옵션:
base,
ephemeral
exactOut
boolean

Optional. When true, treats amount as the exact amount the recipient should receive (relevant when fees are deducted).

validator
string

Optional. When this transfer route needs a validator and none is provided, the API resolves it from the selected ephemeral RPC via getIdentity.

예시:

"MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57"

initIfMissing
boolean

Optional. Initialize the transfer queue if missing.

initAtasIfMissing
boolean

Optional. Initialize associated token accounts if missing.

initVaultIfMissing
boolean

Optional. Initialize the vault if missing. Defaults to false.

memo
string

Optional. Appends a final Memo Program instruction with this UTF-8 message.

예시:

"Order #1042"

minDelayMs
string

Optional. Private transfer only. Defaults to 0. Earliest (ms) the queued transfer may settle.

Pattern: ^\d+$
예시:

"0"

maxDelayMs
string

Optional. Private transfer only. Defaults to 0 when omitted, or to minDelayMs when only minDelayMs is set. Must be >= minDelayMs.

Pattern: ^\d+$
예시:

"0"

clientRefId
string

Optional. Private transfer only. Encrypted client reference ID that can be used to confirm a payment.

Pattern: ^\d+$
예시:

"42"

split
integer

Optional. Private transfer only. Defaults to 1. Number of queue entries to split the transfer across. Must be between 1 and 15 and cannot exceed amount.

필수 범위: x <= 15
예시:

1

gasless
boolean

Optional. When true, the API uses the configured sponsor as transaction fee payer and prepends a relay-fee token transfer to the sponsor ATA.

예시:

true

legacy
boolean

Optional. Defaults to false. When true, skips lookup-table compilation and returns a legacy transaction. Private base -> base transfers may otherwise return a v0 transaction when a useful lookup table is configured.

응답

Unsigned serialized transaction

kind
enum<string>
필수
사용 가능한 옵션:
transfer
version
enum<string>
필수
사용 가능한 옵션:
legacy,
v0
transactionBase64
string
필수
sendTo
enum<string>
필수
사용 가능한 옵션:
base,
ephemeral
recentBlockhash
string
필수
lastValidBlockHeight
integer
필수
instructionCount
integer
필수
필수 범위: x >= 0
requiredSigners
string[]
필수
from
enum<string>

Mirrors the request fromBalance.

사용 가능한 옵션:
base,
ephemeral
validator
string
fees
object

Fees applied to the transfer, in base units.