--url https://api.privy.io/v1/wallets/{wallet_id}/rpc \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--header 'privy-app-id: <privy-app-id>' \
--data '{
"method": "transfer",
"network": "MAINNET",
"params": {
"receiver_spark_address": "spark1pgss8z35rpycv4duqdk5u3sclhjnztjunv5yajlwk69tyv5fsvwwe9mgwmxfkx",
"amount_sats": 16
}
}'
{
"method": "transfer",
"data": {
"id": "01983eb7-4008-7b73-b269-c0bd86955a1b",
"sender_identity_public_key": "027bca218b2853d5ff2e9b174370f58107a23df98a759e968c523253c1702dd485",
"receiver_identity_public_key": "038a3418498655bc036d4e4618fde5312e5c9b284ecbeeb68ab23289831cec9768",
"status": "TRANSFER_STATUS_SENDER_KEY_TWEAKED",
"total_value": 16,
"expiry_time": "1970-01-01T00:00:00.000Z",
"leaves": [
{
"leaf": {
"id": "01983e38-b2f8-7649-a910-b2be1424de1d",
"tree_id": "01983e36-e645-7a34-ab95-a6faec210992",
"value": 16,
"parent_node_id": "01983e38-b2e2-7edd-9b6b-a784545aa28c",
"node_tx": "<hex-encoded-tx>",
"refund_tx": "<hex-encoded-refund>",
"vout": 0,
"verifying_public_key": "<pubkey>",
"owner_identity_public_key": "<pubkey>",
"signing_keyshare": {
"owner_identifiers": ["...", "..."],
"threshold": 2,
"public_key": "<pubkey>",
"public_shares": {
"...": "<pubkey>",
"...": "<pubkey>"
},
"updated_time": "2025-07-24T23:14:14.598Z"
},
"status": "TRANSFER_LOCKED",
"network": "MAINNET"
},
"secret_cipher": "<ciphertext>",
"signature": "<hex>",
"intermediate_refund_tx": "<hex>"
}
],
"created_time": "2025-07-24T23:14:14.276Z",
"updated_time": "2025-07-24T23:14:14.618Z",
"type": "TRANSFER",
"transfer_direction": "OUTGOING",
"encoding": "hex"
}
}
Spark BTC
transfer
Transfer satoshis from a Spark wallet to another Spark address.
POST
/
v1
/
wallets
/
{wallet_id}
/
rpc
--url https://api.privy.io/v1/wallets/{wallet_id}/rpc \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--header 'privy-app-id: <privy-app-id>' \
--data '{
"method": "transfer",
"network": "MAINNET",
"params": {
"receiver_spark_address": "spark1pgss8z35rpycv4duqdk5u3sclhjnztjunv5yajlwk69tyv5fsvwwe9mgwmxfkx",
"amount_sats": 16
}
}'
{
"method": "transfer",
"data": {
"id": "01983eb7-4008-7b73-b269-c0bd86955a1b",
"sender_identity_public_key": "027bca218b2853d5ff2e9b174370f58107a23df98a759e968c523253c1702dd485",
"receiver_identity_public_key": "038a3418498655bc036d4e4618fde5312e5c9b284ecbeeb68ab23289831cec9768",
"status": "TRANSFER_STATUS_SENDER_KEY_TWEAKED",
"total_value": 16,
"expiry_time": "1970-01-01T00:00:00.000Z",
"leaves": [
{
"leaf": {
"id": "01983e38-b2f8-7649-a910-b2be1424de1d",
"tree_id": "01983e36-e645-7a34-ab95-a6faec210992",
"value": 16,
"parent_node_id": "01983e38-b2e2-7edd-9b6b-a784545aa28c",
"node_tx": "<hex-encoded-tx>",
"refund_tx": "<hex-encoded-refund>",
"vout": 0,
"verifying_public_key": "<pubkey>",
"owner_identity_public_key": "<pubkey>",
"signing_keyshare": {
"owner_identifiers": ["...", "..."],
"threshold": 2,
"public_key": "<pubkey>",
"public_shares": {
"...": "<pubkey>",
"...": "<pubkey>"
},
"updated_time": "2025-07-24T23:14:14.598Z"
},
"status": "TRANSFER_LOCKED",
"network": "MAINNET"
},
"secret_cipher": "<ciphertext>",
"signature": "<hex>",
"intermediate_refund_tx": "<hex>"
}
],
"created_time": "2025-07-24T23:14:14.276Z",
"updated_time": "2025-07-24T23:14:14.618Z",
"type": "TRANSFER",
"transfer_direction": "OUTGOING",
"encoding": "hex"
}
}
Idempotency on errors: On 4xx or 5xx, Privy caches the response and replays it for the same
key. Generate a new key to retry after a server error. Policy violations are an exception and
allow same-key retries.
--url https://api.privy.io/v1/wallets/{wallet_id}/rpc \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--header 'privy-app-id: <privy-app-id>' \
--data '{
"method": "transfer",
"network": "MAINNET",
"params": {
"receiver_spark_address": "spark1pgss8z35rpycv4duqdk5u3sclhjnztjunv5yajlwk69tyv5fsvwwe9mgwmxfkx",
"amount_sats": 16
}
}'
{
"method": "transfer",
"data": {
"id": "01983eb7-4008-7b73-b269-c0bd86955a1b",
"sender_identity_public_key": "027bca218b2853d5ff2e9b174370f58107a23df98a759e968c523253c1702dd485",
"receiver_identity_public_key": "038a3418498655bc036d4e4618fde5312e5c9b284ecbeeb68ab23289831cec9768",
"status": "TRANSFER_STATUS_SENDER_KEY_TWEAKED",
"total_value": 16,
"expiry_time": "1970-01-01T00:00:00.000Z",
"leaves": [
{
"leaf": {
"id": "01983e38-b2f8-7649-a910-b2be1424de1d",
"tree_id": "01983e36-e645-7a34-ab95-a6faec210992",
"value": 16,
"parent_node_id": "01983e38-b2e2-7edd-9b6b-a784545aa28c",
"node_tx": "<hex-encoded-tx>",
"refund_tx": "<hex-encoded-refund>",
"vout": 0,
"verifying_public_key": "<pubkey>",
"owner_identity_public_key": "<pubkey>",
"signing_keyshare": {
"owner_identifiers": ["...", "..."],
"threshold": 2,
"public_key": "<pubkey>",
"public_shares": {
"...": "<pubkey>",
"...": "<pubkey>"
},
"updated_time": "2025-07-24T23:14:14.598Z"
},
"status": "TRANSFER_LOCKED",
"network": "MAINNET"
},
"secret_cipher": "<ciphertext>",
"signature": "<hex>",
"intermediate_refund_tx": "<hex>"
}
],
"created_time": "2025-07-24T23:14:14.276Z",
"updated_time": "2025-07-24T23:14:14.618Z",
"type": "TRANSFER",
"transfer_direction": "OUTGOING",
"encoding": "hex"
}
}
Headers
string
required
ID of your Privy app.
string
Request authorization signature. If multiple signatures are required, they should be comma
separated.
string
Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the
request must be processed.
Path Parameters
string
required
ID of the wallet to get.
These wallet methods are modeled after the Spark Wallet
SDK. For more
information about this wallet method, check out the Spark Wallet
documentation.
Body
string
required
Available options:
transferstring
required
Available options:
MAINNET, REGTESTobject
required
Returns
enum<string>
required
Available options:
transferobject
required
The returned Transfer object
Hide child attributes
Hide child attributes
string
required
string
required
string
required
string
required
number
required
string
array<object>
required
Each item contains transfer metadata and encrypted leaf information.
Hide child attributes
Hide child attributes
object
required
Hide child attributes
Hide child attributes
string
required
string
required
number
required
string
required
string
required
string
required
number
required
string
required
string
required
object
required
string
required
string
required
string
required
string
required
string
required
string
string
string
string
string
Was this page helpful?
⌘I

