Create a delegated signing key
Delegate Spark token-transaction signing authority for a card backed by an Embedded Wallet internal account to a Grid-custodied P-256 API key. Grid derives the wallet funding account from the card’s funding sources, generates the keypair server-side, creates a non-root Turnkey user holding the public key, then a policy granting that user signing authority. The private key is custodied by Grid and never returned. Both activities must be authorized by the wallet owner, so creation is a three-leg signed-retry flow:
-
Call
POST /auth/delegated-keyswith no signature headers. Grid generates the delegated keypair and the response is202with apayloadToSign,requestId, andexpiresAt. -
Use the session API keypair of a verified credential on the card’s Embedded Wallet funding account to build an API-key stamp over
payloadToSign, then retry the same request with that full stamp as theGrid-Wallet-Signatureheader and therequestIdechoed back as theRequest-Idheader. The response is a second202with a newpayloadToSign,requestId, andexpiresAt. -
Stamp the new
payloadToSignwith the same session keypair and retry once more with the newRequest-Id. The signed retry returns201with the createdDelegatedKeyinACTIVEstatus.
The same request body must be sent on all three legs. A flow abandoned after the second leg leaves the key in PENDING status: the delegated user exists but holds no policy, so it cannot sign. After activation, Grid uses the custodied key to authorize signing for that card’s Embedded Wallet funding account in place of a session keypair; the platform never handles the key material.
Each card may have at most one non-revoked delegated key (ACTIVE or PENDING) for its Embedded Wallet funding account; revoke the existing key before creating a new one. A delegated key authorizes raw-payload signing for the wallet and cannot be scoped to amounts or recipients by Turnkey. Revoke it with DELETE /auth/delegated-keys/{id} when no longer needed.
Authorizations
API token authentication using format <api token id>:<api client secret>
Headers
Full API-key stamp built over the prior payloadToSign with the session API keypair of a verified credential on the same internal account. Required on the signed retries; ignored on the initial call.
The requestId returned in the prior 202 response, echoed back exactly on the signed retry so the server can correlate it with the issued challenge. Required on the signed retries; must be paired with Grid-Wallet-Signature.
Body
The id of the card that will use this delegated signing key. Grid derives the Embedded Wallet funding source from the card and creates the key for that card's wallet funding account.
"Card:019542f5-b3e7-1d02-0000-000000000010"
Human-readable label for the delegated key.
1 - 256"Card payments key"
Response
Delegated key created and policy granted. The key is ACTIVE and Grid may use it to stamp card-payment quote executions for this card's Embedded Wallet funding account.
A delegated signing key for a card backed by an Embedded Wallet internal account. Returned from POST /auth/delegated-keys (on activation), GET /auth/delegated-keys (list), and GET /auth/delegated-keys/{id}. The keypair is generated and custodied by Grid; the private key is never returned. While ACTIVE, Grid may use the key to authorize Spark token-transaction signing for the card's Embedded Wallet funding account in place of a session keypair. publicKey is informational metadata identifying the credential.
Grid-issued DelegatedKey:<uuid> identifier.
"DelegatedKey:019542f5-b3e7-1d02-0000-000000000021"
The card this key is delegated for.
"Card:019542f5-b3e7-1d02-0000-000000000010"
The Embedded Wallet internal account this key is delegated for, derived from the card's funding sources.
"InternalAccount:019542f5-b3e7-1d02-0000-000000000002"
Compressed P-256 public key (hex) of the delegated API keypair.
"02a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90"
Human-readable label for the delegated key.
"Settlement service key"
Status of a delegated signing key.
PENDING: The delegated user exists but the policy-creation leg never completed. The key cannot sign.ACTIVE: The policy is granted and the key may stamp quote executions.REVOKED: The delegated user has been deleted and the key can no longer sign.
PENDING, ACTIVE, REVOKED "ACTIVE"
When the delegated key was created.
"2026-04-08T15:30:01Z"
When the delegated key was last updated.
"2026-04-08T15:30:42Z"