Documentation Index Fetch the complete documentation index at: https://turnkey-0e7c1f5b-omkar-spark-phase2-docs.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Enum options: ACTIVITY_TYPE_SPARK_PREPARE_TRANSFER
Timestamp (in milliseconds) of the request, used to verify liveness of user requests.
Unique identifier for a given Organization.
The parameters object containing the specific intent data for this activity.
The complete transfer descriptor including the receiver, Spark Operators, and all leaves being transferred.
parameters.transfer.operatorRecipients
The list of Spark Operators that will receive encrypted key tweak shares. Each operator’s Shamir share is ECIES-encrypted to its individual encryption public key.
parameters.transfer.leaves
The list of Spark leaves being transferred. Each entry specifies the old leaf key, the new leaf key, and the pre-aggregated refund signatures that were produced in the preceding SPARK_SIGN_FROST call.
Enable to have your activity generate and return App Proofs, enabling verifiability.
A successful response returns the following fields:
The activity object containing type, intent, and result
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/spark_prepare_transfer \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: <string> (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_SPARK_PREPARE_TRANSFER",
"timestampMs": "<string> (e.g. 1746736509954)",
"organizationId": "<string> (Your Organization ID)",
"parameters": {
"signWith": "<spark-address>",
"transfer": {
"transferId": "<uuid-v7>",
"threshold": 2,
"receiverPublicKey": "<receiver-identity-pubkey-hex>",
"operatorRecipients": [
{ "operatorId": "SO1", "encryptionPublicKey": "<so1-pubkey-hex>" },
{ "operatorId": "SO2", "encryptionPublicKey": "<so2-pubkey-hex>" }
],
"leaves": [
{
"leafId": "<old-leaf-id>",
"oldLeafDerivation": {
"type": "SPARK_KEY_TYPE_SIGNING_HD",
"leafId": "<old-leaf-id>"
},
"newLeafDerivation": {
"type": "SPARK_KEY_TYPE_SIGNING_HD",
"leafId": "<new-leaf-id>"
},
"refundSignature": "<cpfp-aggregated-schnorr-sig-hex>",
"directRefundSignature": "<direct-aggregated-schnorr-sig-hex>",
"directFromCpfpRefundSignature": "<direct-from-cpfp-aggregated-schnorr-sig-hex>"
}
]
}
}
}'
{
"activity" : {
"id" : "<activity-id>" ,
"status" : "ACTIVITY_STATUS_COMPLETED" ,
"type" : "ACTIVITY_TYPE_SPARK_PREPARE_TRANSFER" ,
"organizationId" : "<organization-id>" ,
"timestampMs" : "<timestamp> (e.g. 1746736509954)" ,
"result" : {
"activity" : {
"id" : "<string>" ,
"organizationId" : "<string>" ,
"status" : "<string>" ,
"type" : "<string>" ,
"intent" : {
"prepareSparkTransferIntent" : {
"signWith" : "<spark-address>" ,
"transfer" : "<object>"
}
},
"result" : {
"prepareSparkTransferResult" : {
"operatorPackages" : [
{ "operatorId" : "SO1" , "encryptedPackage" : "<hex>" },
{ "operatorId" : "SO2" , "encryptedPackage" : "<hex>" }
],
"transferUserSignature" : "<ecdsa-der-sig-hex>"
}
},
"votes" : "<array>" ,
"fingerprint" : "<string>" ,
"canApprove" : "<boolean>" ,
"canReject" : "<boolean>" ,
"createdAt" : "<string>" ,
"updatedAt" : "<string>"
}
}
}
}