# Approve activity
Source: https://docs.turnkey.com/api-reference/activities/approve-activity
Approve an activity.
Enum options: `ACTIVITY_TYPE_APPROVE_ACTIVITY`
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.
An artifact verifying a User's action.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The approveActivityIntent object
An artifact verifying a User's action.
The result of the activity
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/approve_activity \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_APPROVE_ACTIVITY",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"fingerprint": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().approveActivity({
fingerprint: " (An artifact verifying a User's action.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_APPROVE_ACTIVITY",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"approveActivityIntent": {
"fingerprint": ""
}
},
"result": "
# Broadcast EVM transaction
Source: https://docs.turnkey.com/api-reference/activities/broadcast-evm-transaction
Submit a transaction intent describing an EVM transaction you would like to broadcast.
Enum options: `ACTIVITY_TYPE_ETH_SEND_TRANSACTION`
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.
A wallet or private key address to sign with. This does not support private key IDs.
Whether to sponsor this transaction via Gas Station.
Enum options: `eip155:1`, `eip155:11155111`, `eip155:8453`, `eip155:84532`, `eip155:137`, `eip155:80002`
Recipient address as a hex string with 0x prefix.
Amount of native asset to send in wei.
Hex-encoded call data for contract interactions.
Transaction nonce, for EIP-1559 and Turnkey Gas Station authorizations.
Maximum amount of gas to use for this transaction, for EIP-1559 transactions.
Maximum total fee per gas unit (base fee + priority fee) in wei. Required for non-sponsored (EIP-1559) transactions. Not used for sponsored transactions.
Maximum priority fee (tip) per gas unit in wei. Required for non-sponsored (EIP-1559) transactions. Not used for sponsored transactions.
The gas station delegate contract nonce. Only used when sponsor=true. Include this if you want maximal security posture.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The ethSendTransactionIntent object
A wallet or private key address to sign with. This does not support private key IDs.
Whether to sponsor this transaction via Gas Station.
CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet).
Enum options: `eip155:1`, `eip155:11155111`, `eip155:8453`, `eip155:84532`, `eip155:137`, `eip155:80002`
Recipient address as a hex string with 0x prefix.
Amount of native asset to send in wei.
Hex-encoded call data for contract interactions.
Transaction nonce, for EIP-1559 and Turnkey Gas Station authorizations.
Maximum amount of gas to use for this transaction, for EIP-1559 transactions.
Maximum total fee per gas unit (base fee + priority fee) in wei. Required for non-sponsored (EIP-1559) transactions. Not used for sponsored transactions.
Maximum priority fee (tip) per gas unit in wei. Required for non-sponsored (EIP-1559) transactions. Not used for sponsored transactions.
The gas station delegate contract nonce. Only used when sponsor=true. Include this if you want maximal security posture.
The result of the activity
The ethSendTransactionResult object
The send\_transaction\_status ID associated with the transaction submission
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/eth_send_transaction \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_ETH_SEND_TRANSACTION",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"from": "",
"sponsor": "",
"caip2": "",
"to": "",
"value": "",
"data": "",
"nonce": "",
"gasLimit": "",
"maxFeePerGas": "",
"maxPriorityFeePerGas": "",
"gasStationNonce": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().ethSendTransaction({
from: " (A wallet or private key address to sign with. This does not support private key IDs.)",
sponsor: true // Whether to sponsor this transaction via Gas Station.,
caip2: "" // CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet).,
to: " (Recipient address as a hex string with 0x prefix.)",
value: " (Amount of native asset to send in wei.)",
data: " (Hex-encoded call data for contract interactions.)",
nonce: " (Transaction nonce, for EIP-1559 and Turnkey Gas Station authorizations.)",
gasLimit: " (Maximum amount of gas to use for this transaction, for EIP-1559 transactions.)",
maxFeePerGas: " (Maximum total fee per gas unit (base fee + priority fee) in wei. Required for non-sponsored (EIP-1559) transactions. Not used for sponsored transactions.)",
maxPriorityFeePerGas: " (Maximum priority fee (tip) per gas unit in wei. Required for non-sponsored (EIP-1559) transactions. Not used for sponsored transactions.)",
gasStationNonce: " (The gas station delegate contract nonce. Only used when sponsor=true. Include this if you want maximal security posture.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_ETH_SEND_TRANSACTION",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"ethSendTransactionIntent": {
"from": "",
"sponsor": "",
"caip2": "",
"to": "",
"value": "",
"data": "",
"nonce": "",
"gasLimit": "",
"maxFeePerGas": "",
"maxPriorityFeePerGas": "",
"gasStationNonce": ""
}
},
"result": {
"ethSendTransactionResult": {
"sendTransactionStatusId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Broadcast SVM transaction
Source: https://docs.turnkey.com/api-reference/activities/broadcast-svm-transaction
Submit a transaction intent describing an SVM transaction you would like to broadcast.
Enum options: `ACTIVITY_TYPE_SOL_SEND_TRANSACTION`
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.
Base64-encoded serialized unsigned Solana transaction
A wallet or private key address to sign with. This does not support private key IDs.
Whether to sponsor this transaction via Gas Station.
Enum options: `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`, `solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG`, `solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY`
user-provided blockhash for replay protection / deadline control. If omitted and sponsor=true, we fetch a fresh blockhash during execution
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The solSendTransactionIntent object
Base64-encoded serialized unsigned Solana transaction
A wallet or private key address to sign with. This does not support private key IDs.
Whether to sponsor this transaction via Gas Station.
CAIP-2 chain ID (e.g., 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' for Solana mainnet).
Enum options: `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`, `solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG`, `solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY`
user-provided blockhash for replay protection / deadline control. If omitted and sponsor=true, we fetch a fresh blockhash during execution
The result of the activity
The solSendTransactionResult object
The send\_transaction\_status ID associated with the transaction submission
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/sol_send_transaction \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_SOL_SEND_TRANSACTION",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"unsignedTransaction": "",
"signWith": "",
"sponsor": "",
"caip2": "",
"recentBlockhash": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().solSendTransaction({
unsignedTransaction: " (Base64-encoded serialized unsigned Solana transaction)",
signWith: " (A wallet or private key address to sign with. This does not support private key IDs.)",
sponsor: true // Whether to sponsor this transaction via Gas Station.,
caip2: "" // CAIP-2 chain ID (e.g., 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' for Solana mainnet).,
recentBlockhash: " (user-provided blockhash for replay protection / deadline control. If omitted and sponsor=true, we fetch a fresh blockhash during execution)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_SOL_SEND_TRANSACTION",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"solSendTransactionIntent": {
"unsignedTransaction": "",
"signWith": "",
"sponsor": "",
"caip2": "",
"recentBlockhash": ""
}
},
"result": {
"solSendTransactionResult": {
"sendTransactionStatusId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Create a Fiat On Ramp Credential
Source: https://docs.turnkey.com/api-reference/activities/create-a-fiat-on-ramp-credential
Create a fiat on ramp provider credential
Enum options: `ACTIVITY_TYPE_CREATE_FIAT_ON_RAMP_CREDENTIAL`
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.
Enum options: `FIAT_ON_RAMP_PROVIDER_COINBASE`, `FIAT_ON_RAMP_PROVIDER_MOONPAY`
Project ID for the on-ramp provider. Some providers, like Coinbase, require this additional identifier
Publishable API key for the on-ramp provider
Secret API key for the on-ramp provider encrypted to our on-ramp encryption public key
Private API key for the on-ramp provider encrypted to our on-ramp encryption public key. Some providers, like Coinbase, require this additional key.
If the on-ramp credential is a sandbox credential
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The createFiatOnRampCredentialIntent object
onrampProvider field
Enum options: `FIAT_ON_RAMP_PROVIDER_COINBASE`, `FIAT_ON_RAMP_PROVIDER_MOONPAY`
Project ID for the on-ramp provider. Some providers, like Coinbase, require this additional identifier
Publishable API key for the on-ramp provider
Secret API key for the on-ramp provider encrypted to our on-ramp encryption public key
Private API key for the on-ramp provider encrypted to our on-ramp encryption public key. Some providers, like Coinbase, require this additional key.
If the on-ramp credential is a sandbox credential
The result of the activity
The createFiatOnRampCredentialResult object
Unique identifier of the Fiat On-Ramp credential that was created
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_fiat_on_ramp_credential \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_FIAT_ON_RAMP_CREDENTIAL",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"onrampProvider": "",
"projectId": "",
"publishableApiKey": "",
"encryptedSecretApiKey": "",
"encryptedPrivateApiKey": "",
"sandboxMode": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createFiatOnRampCredential({
onrampProvider: "" // onrampProvider field,
projectId: " (Project ID for the on-ramp provider. Some providers, like Coinbase, require this additional identifier)",
publishableApiKey: " (Publishable API key for the on-ramp provider)",
encryptedSecretApiKey: " (Secret API key for the on-ramp provider encrypted to our on-ramp encryption public key)",
encryptedPrivateApiKey: " (Private API key for the on-ramp provider encrypted to our on-ramp encryption public key. Some providers, like Coinbase, require this additional key.)",
sandboxMode: true // If the on-ramp credential is a sandbox credential
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_FIAT_ON_RAMP_CREDENTIAL",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createFiatOnRampCredentialIntent": {
"onrampProvider": "",
"projectId": "",
"publishableApiKey": "",
"encryptedSecretApiKey": "",
"encryptedPrivateApiKey": "",
"sandboxMode": ""
}
},
"result": {
"createFiatOnRampCredentialResult": {
"fiatOnRampCredentialId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Create an OAuth 2.0 Credential
Source: https://docs.turnkey.com/api-reference/activities/create-an-oauth-20-credential
Enable authentication for end users with an OAuth 2.0 provider
Enum options: `ACTIVITY_TYPE_CREATE_OAUTH2_CREDENTIAL`
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.
Enum options: `OAUTH2_PROVIDER_X`, `OAUTH2_PROVIDER_DISCORD`
The Client ID issued by the OAuth 2.0 provider
The client secret issued by the OAuth 2.0 provider encrypted to the TLS Fetcher quorum key
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The createOauth2CredentialIntent object
provider field
Enum options: `OAUTH2_PROVIDER_X`, `OAUTH2_PROVIDER_DISCORD`
The Client ID issued by the OAuth 2.0 provider
The client secret issued by the OAuth 2.0 provider encrypted to the TLS Fetcher quorum key
The result of the activity
The createOauth2CredentialResult object
Unique identifier of the OAuth 2.0 credential that was created
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_oauth2_credential \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_OAUTH2_CREDENTIAL",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"provider": "",
"clientId": "",
"encryptedClientSecret": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createOauth2Credential({
provider: "" // provider field,
clientId: " (The Client ID issued by the OAuth 2.0 provider)",
encryptedClientSecret: " (The client secret issued by the OAuth 2.0 provider encrypted to the TLS Fetcher quorum key)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_OAUTH2_CREDENTIAL",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createOauth2CredentialIntent": {
"provider": "",
"clientId": "",
"encryptedClientSecret": ""
}
},
"result": {
"createOauth2CredentialResult": {
"oauth2CredentialId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Create API keys
Source: https://docs.turnkey.com/api-reference/activities/create-api-keys
Add API keys to an existing user.
Enum options: `ACTIVITY_TYPE_CREATE_API_KEYS_V2`
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.
A list of API Keys.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Enum options: `API_KEY_CURVE_P256`, `API_KEY_CURVE_SECP256K1`, `API_KEY_CURVE_ED25519`
Optional window (in seconds) indicating how long the API Key should last.
Unique identifier for a given User.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The createApiKeysIntentV2 object
A list of API Keys.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
curveType field
Enum options: `API_KEY_CURVE_P256`, `API_KEY_CURVE_SECP256K1`, `API_KEY_CURVE_ED25519`
Optional window (in seconds) indicating how long the API Key should last.
Unique identifier for a given User.
The result of the activity
The createApiKeysResult object
A list of API Key IDs.
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_api_keys \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_API_KEYS_V2",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"apiKeys": [
{
"apiKeyName": "",
"publicKey": "",
"curveType": "",
"expirationSeconds": ""
}
],
"userId": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createApiKeys({
apiKeys: [{ // A list of API Keys.,
apiKeyName: " (Human-readable name for an API Key.)",
publicKey: " (The public component of a cryptographic key pair used to sign messages and transactions.)",
curveType: "" // curveType field,
expirationSeconds: " (Optional window (in seconds) indicating how long the API Key should last.)",
}],
userId: " (Unique identifier for a given User.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_API_KEYS_V2",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createApiKeysIntentV2": {
"apiKeys": [
{
"apiKeyName": "",
"publicKey": "",
"curveType": "",
"expirationSeconds": ""
}
],
"userId": ""
}
},
"result": {
"createApiKeysResult": {
"apiKeyIds": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Create authenticators
Source: https://docs.turnkey.com/api-reference/activities/create-authenticators
Create authenticators to authenticate requests to Turnkey.
Enum options: `ACTIVITY_TYPE_CREATE_AUTHENTICATORS_V2`
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.
A list of Authenticators.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
Unique identifier for a given User.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The createAuthenticatorsIntentV2 object
A list of Authenticators.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
Unique identifier for a given User.
The result of the activity
The createAuthenticatorsResult object
A list of Authenticator IDs.
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_authenticators \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_AUTHENTICATORS_V2",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"authenticators": [
{
"authenticatorName": "",
"challenge": "",
"attestation": {
"credentialId": "",
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
]
}
}
],
"userId": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createAuthenticators({
authenticators: [{ // A list of Authenticators.,
authenticatorName: " (Human-readable name for an Authenticator.)",
challenge: " (Challenge presented for authentication purposes.)",
attestation: { // attestation field,
credentialId: " (The cbor encoded then base64 url encoded id of the credential.)",
clientDataJson: " (A base64 url encoded payload containing metadata about the signing context and the challenge.)",
attestationObject: " (A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.)",
transports: "" // The type of authenticator transports.,
},
}],
userId: " (Unique identifier for a given User.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_AUTHENTICATORS_V2",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createAuthenticatorsIntentV2": {
"authenticators": [
{
"authenticatorName": "",
"challenge": "",
"attestation": {
"credentialId": "",
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
]
}
}
],
"userId": ""
}
},
"result": {
"createAuthenticatorsResult": {
"authenticatorIds": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Create invitations
Source: https://docs.turnkey.com/api-reference/activities/create-invitations
Create invitations to join an existing organization.
Enum options: `ACTIVITY_TYPE_CREATE_INVITATIONS`
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.
A list of Invitations.
The name of the intended Invitation recipient.
The email address of the intended Invitation recipient.
A list of tags assigned to the Invitation recipient. This field, if not needed, should be an empty array in your request body.
Array item type: string
item field
Enum options: `ACCESS_TYPE_WEB`, `ACCESS_TYPE_API`, `ACCESS_TYPE_ALL`
Unique identifier for the Sender of an Invitation.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The createInvitationsIntent object
A list of Invitations.
The name of the intended Invitation recipient.
The email address of the intended Invitation recipient.
A list of tags assigned to the Invitation recipient. This field, if not needed, should be an empty array in your request body.
item field
accessType field
Enum options: `ACCESS_TYPE_WEB`, `ACCESS_TYPE_API`, `ACCESS_TYPE_ALL`
Unique identifier for the Sender of an Invitation.
The result of the activity
The createInvitationsResult object
A list of Invitation IDs
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_invitations \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_INVITATIONS",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"invitations": [
{
"receiverUserName": "",
"receiverUserEmail": "",
"receiverUserTags": [
""
],
"accessType": "",
"senderUserId": ""
}
]
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createInvitations({
invitations: [{ // A list of Invitations.,
receiverUserName: " (The name of the intended Invitation recipient.)",
receiverUserEmail: " (The email address of the intended Invitation recipient.)",
receiverUserTags: [""] // A list of tags assigned to the Invitation recipient. This field, if not needed, should be an empty array in your request body.,
accessType: "" // accessType field,
senderUserId: " (Unique identifier for the Sender of an Invitation.)",
}]
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_INVITATIONS",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createInvitationsIntent": {
"invitations": [
{
"receiverUserName": "",
"receiverUserEmail": "",
"receiverUserTags": [
""
],
"accessType": "",
"senderUserId": ""
}
]
}
},
"result": {
"createInvitationsResult": {
"invitationIds": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Create Oauth providers
Source: https://docs.turnkey.com/api-reference/activities/create-oauth-providers
Create Oauth providers for a specified user.
Enum options: `ACTIVITY_TYPE_CREATE_OAUTH_PROVIDERS`
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 ID of the User to add an Oauth provider to
A list of Oauth providers.
Human-readable name to identify a Provider.
Base64 encoded OIDC token
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The createOauthProvidersIntent object
The ID of the User to add an Oauth provider to
A list of Oauth providers.
Human-readable name to identify a Provider.
Base64 encoded OIDC token
The result of the activity
The createOauthProvidersResult object
A list of unique identifiers for Oauth Providers
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_oauth_providers \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_OAUTH_PROVIDERS",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"userId": "",
"oauthProviders": [
{
"providerName": "",
"oidcToken": ""
}
]
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createOauthProviders({
userId: " (The ID of the User to add an Oauth provider to)",
oauthProviders: [{ // A list of Oauth providers.,
providerName: " (Human-readable name to identify a Provider.)",
oidcToken: " (Base64 encoded OIDC token)",
}]
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_OAUTH_PROVIDERS",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createOauthProvidersIntent": {
"userId": "",
"oauthProviders": [
{
"providerName": "",
"oidcToken": ""
}
]
}
},
"result": {
"createOauthProvidersResult": {
"providerIds": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Create policies
Source: https://docs.turnkey.com/api-reference/activities/create-policies
Create new policies.
Enum options: `ACTIVITY_TYPE_CREATE_POLICIES`
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.
An array of policy intents to be created.
Human-readable name for a Policy.
Enum options: `EFFECT_ALLOW`, `EFFECT_DENY`
The condition expression that triggers the Effect
The consensus expression that triggers the Effect
Notes for a Policy.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The createPoliciesIntent object
An array of policy intents to be created.
Human-readable name for a Policy.
effect field
Enum options: `EFFECT_ALLOW`, `EFFECT_DENY`
The condition expression that triggers the Effect
The consensus expression that triggers the Effect
Notes for a Policy.
The result of the activity
The createPoliciesResult object
A list of unique identifiers for the created policies.
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_policies \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_POLICIES",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"policies": [
{
"policyName": "",
"effect": "",
"condition": "",
"consensus": "",
"notes": ""
}
]
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createPolicies({
policies: [{ // An array of policy intents to be created.,
policyName: " (Human-readable name for a Policy.)",
effect: "" // effect field,
condition: " (The condition expression that triggers the Effect)",
consensus: " (The consensus expression that triggers the Effect)",
notes: " (Notes for a Policy.)",
}]
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_POLICIES",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createPoliciesIntent": {
"policies": [
{
"policyName": "",
"effect": "",
"condition": "",
"consensus": "",
"notes": ""
}
]
}
},
"result": {
"createPoliciesResult": {
"policyIds": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Create policy
Source: https://docs.turnkey.com/api-reference/activities/create-policy
Create a new policy.
Enum options: `ACTIVITY_TYPE_CREATE_POLICY_V3`
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.
Human-readable name for a Policy.
Enum options: `EFFECT_ALLOW`, `EFFECT_DENY`
The condition expression that triggers the Effect
The consensus expression that triggers the Effect
Notes for a Policy.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The createPolicyIntentV3 object
Human-readable name for a Policy.
effect field
Enum options: `EFFECT_ALLOW`, `EFFECT_DENY`
The condition expression that triggers the Effect
The consensus expression that triggers the Effect
Notes for a Policy.
The result of the activity
The createPolicyResult object
Unique identifier for a given Policy.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_policy \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_POLICY_V3",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"policyName": "",
"effect": "",
"condition": "",
"consensus": "",
"notes": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createPolicy({
policyName: " (Human-readable name for a Policy.)",
effect: "" // effect field,
condition: " (The condition expression that triggers the Effect)",
consensus: " (The consensus expression that triggers the Effect)",
notes: " (Notes for a Policy.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_POLICY_V3",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createPolicyIntentV3": {
"policyName": "",
"effect": "",
"condition": "",
"consensus": "",
"notes": ""
}
},
"result": {
"createPolicyResult": {
"policyId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Create private key tag
Source: https://docs.turnkey.com/api-reference/activities/create-private-key-tag
Create a private key tag and add it to private keys.
Enum options: `ACTIVITY_TYPE_CREATE_PRIVATE_KEY_TAG`
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.
Human-readable name for a Private Key Tag.
A list of Private Key IDs.
Array item type: string
item field
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The createPrivateKeyTagIntent object
Human-readable name for a Private Key Tag.
A list of Private Key IDs.
item field
The result of the activity
The createPrivateKeyTagResult object
Unique identifier for a given Private Key Tag.
A list of Private Key IDs.
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_private_key_tag \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_PRIVATE_KEY_TAG",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"privateKeyTagName": "",
"privateKeyIds": [
""
]
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createPrivateKeyTag({
privateKeyTagName: " (Human-readable name for a Private Key Tag.)",
privateKeyIds: [""] // A list of Private Key IDs.
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_PRIVATE_KEY_TAG",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createPrivateKeyTagIntent": {
"privateKeyTagName": "",
"privateKeyIds": [
""
]
}
},
"result": {
"createPrivateKeyTagResult": {
"privateKeyTagId": "",
"privateKeyIds": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Create private keys
Source: https://docs.turnkey.com/api-reference/activities/create-private-keys
Create new private keys.
Enum options: `ACTIVITY_TYPE_CREATE_PRIVATE_KEYS_V2`
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.
A list of Private Keys.
Human-readable name for a Private Key.
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
A list of Private Key Tag IDs. This field, if not needed, should be an empty array in your request body.
Array item type: string
item field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The createPrivateKeysIntentV2 object
A list of Private Keys.
Human-readable name for a Private Key.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
A list of Private Key Tag IDs. This field, if not needed, should be an empty array in your request body.
item field
Cryptocurrency-specific formats for a derived address (e.g., Ethereum).
item field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
The result of the activity
The createPrivateKeysResultV2 object
A list of Private Key IDs and addresses.
privateKeyId field
addresses field
format field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
address field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_private_keys \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_PRIVATE_KEYS_V2",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"privateKeys": [
{
"privateKeyName": "",
"curve": "",
"privateKeyTags": [
""
],
"addressFormats": [
""
]
}
]
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createPrivateKeys({
privateKeys: [{ // A list of Private Keys.,
privateKeyName: " (Human-readable name for a Private Key.)",
curve: "" // curve field,
privateKeyTags: [""] // A list of Private Key Tag IDs. This field, if not needed, should be an empty array in your request body.,
addressFormats: "" // Cryptocurrency-specific formats for a derived address (e.g., Ethereum).,
}]
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_PRIVATE_KEYS_V2",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createPrivateKeysIntentV2": {
"privateKeys": [
{
"privateKeyName": "",
"curve": "",
"privateKeyTags": [
""
],
"addressFormats": [
""
]
}
]
}
},
"result": {
"createPrivateKeysResultV2": {
"privateKeys": [
{
"privateKeyId": "",
"addresses": [
{
"format": "",
"address": ""
}
]
}
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Create read only session
Source: https://docs.turnkey.com/api-reference/activities/create-read-only-session
Create a read only session for a user (valid for 1 hour).
Enum options: `ACTIVITY_TYPE_CREATE_READ_ONLY_SESSION`
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.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The createReadOnlySessionIntent object
The result of the activity
The createReadOnlySessionResult object
Unique identifier for a given Organization. If the request is being made by a user and their Sub-Organization ID is unknown, this can be the Parent Organization ID. However, using the Sub-Organization ID is preferred due to performance reasons.
Human-readable name for an Organization.
Unique identifier for a given User.
Human-readable name for a User.
String representing a read only session
UTC timestamp in seconds representing the expiry time for the read only session.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_read_only_session \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_READ_ONLY_SESSION",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createReadOnlySession({});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_READ_ONLY_SESSION",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createReadOnlySessionIntent": {}
},
"result": {
"createReadOnlySessionResult": {
"organizationId": "",
"organizationName": "",
"userId": "",
"username": "",
"session": "",
"sessionExpiry": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Create read write session
Source: https://docs.turnkey.com/api-reference/activities/create-read-write-session
Create a read write session for a user.
Enum options: `ACTIVITY_TYPE_CREATE_READ_WRITE_SESSION_V2`
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.
Client-side public key generated by the user, to which the read write session bundle (credentials) will be encrypted.
Unique identifier for a given User.
Optional human-readable name for an API Key. If none provided, default to Read Write Session - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated ReadWriteSession API keys
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The createReadWriteSessionIntentV2 object
Client-side public key generated by the user, to which the read write session bundle (credentials) will be encrypted.
Unique identifier for a given User.
Optional human-readable name for an API Key. If none provided, default to Read Write Session - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated ReadWriteSession API keys
The result of the activity
The createReadWriteSessionResultV2 object
Unique identifier for a given Organization. If the request is being made by a user and their Sub-Organization ID is unknown, this can be the Parent Organization ID. However, using the Sub-Organization ID is preferred due to performance reasons.
Human-readable name for an Organization.
Unique identifier for a given User.
Human-readable name for a User.
Unique identifier for the created API key.
HPKE encrypted credential bundle
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_read_write_session \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_READ_WRITE_SESSION_V2",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"targetPublicKey": "",
"userId": "",
"apiKeyName": "",
"expirationSeconds": "",
"invalidateExisting": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createReadWriteSession({
targetPublicKey: " (Client-side public key generated by the user, to which the read write session bundle (credentials) will be encrypted.)",
userId: " (Unique identifier for a given User.)",
apiKeyName: " (Optional human-readable name for an API Key. If none provided, default to Read Write Session - )",
expirationSeconds: " (Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.)",
invalidateExisting: true // Invalidate all other previously generated ReadWriteSession API keys
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_READ_WRITE_SESSION_V2",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createReadWriteSessionIntentV2": {
"targetPublicKey": "",
"userId": "",
"apiKeyName": "",
"expirationSeconds": "",
"invalidateExisting": ""
}
},
"result": {
"createReadWriteSessionResultV2": {
"organizationId": "",
"organizationName": "",
"userId": "",
"username": "",
"apiKeyId": "",
"credentialBundle": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Create smart contract interface
Source: https://docs.turnkey.com/api-reference/activities/create-smart-contract-interface
Create an ABI/IDL in JSON.
Enum options: `ACTIVITY_TYPE_CREATE_SMART_CONTRACT_INTERFACE`
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.
Corresponding contract address or program ID
ABI/IDL as a JSON string. Limited to 400kb
Enum options: `SMART_CONTRACT_INTERFACE_TYPE_ETHEREUM`, `SMART_CONTRACT_INTERFACE_TYPE_SOLANA`
Human-readable name for a Smart Contract Interface.
Notes for a Smart Contract Interface.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The createSmartContractInterfaceIntent object
Corresponding contract address or program ID
ABI/IDL as a JSON string. Limited to 400kb
type field
Enum options: `SMART_CONTRACT_INTERFACE_TYPE_ETHEREUM`, `SMART_CONTRACT_INTERFACE_TYPE_SOLANA`
Human-readable name for a Smart Contract Interface.
Notes for a Smart Contract Interface.
The result of the activity
The createSmartContractInterfaceResult object
The ID of the created Smart Contract Interface.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_smart_contract_interface \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_SMART_CONTRACT_INTERFACE",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"smartContractAddress": "",
"smartContractInterface": "",
"type": "",
"label": "",
"notes": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createSmartContractInterface({
smartContractAddress: " (Corresponding contract address or program ID)",
smartContractInterface: " (ABI/IDL as a JSON string. Limited to 400kb)",
type: "" // type field,
label: " (Human-readable name for a Smart Contract Interface.)",
notes: " (Notes for a Smart Contract Interface.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_SMART_CONTRACT_INTERFACE",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createSmartContractInterfaceIntent": {
"smartContractAddress": "",
"smartContractInterface": "",
"type": "",
"label": "",
"notes": ""
}
},
"result": {
"createSmartContractInterfaceResult": {
"smartContractInterfaceId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Create sub-organization
Source: https://docs.turnkey.com/api-reference/activities/create-sub-organization
Create a new sub-organization.
Enum options: `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V7`
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.
Name for this sub-organization
Root users to create within this sub-organization
Human-readable name for a User.
The user's email address.
The user's phone number in E.164 format e.g. +13214567890
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Enum options: `API_KEY_CURVE_P256`, `API_KEY_CURVE_SECP256K1`, `API_KEY_CURVE_ED25519`
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
Human-readable name to identify a Provider.
Base64 encoded OIDC token
The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
wallet field
Human-readable name for a Wallet.
A list of wallet Accounts. This field, if not needed, should be an empty array in your request body.
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24.
Disable email recovery for the sub-organization
Disable email auth for the sub-organization
Disable OTP SMS auth for the sub-organization
Disable OTP email auth for the sub-organization
Signed JWT containing a unique id, expiry, verification type, contact
clientSignature field
The public component of a cryptographic key pair used to create the signature.
Enum options: `CLIENT_SIGNATURE_SCHEME_API_P256`
The message that was signed.
The cryptographic signature over the message.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The createSubOrganizationIntentV7 object
Name for this sub-organization
Root users to create within this sub-organization
Human-readable name for a User.
The user's email address.
The user's phone number in E.164 format e.g. +13214567890
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
curveType field
Enum options: `API_KEY_CURVE_P256`, `API_KEY_CURVE_SECP256K1`, `API_KEY_CURVE_ED25519`
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
Human-readable name to identify a Provider.
Base64 encoded OIDC token
The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
wallet field
Human-readable name for a Wallet.
A list of wallet Accounts. This field, if not needed, should be an empty array in your request body.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
pathFormat field
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
addressFormat field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24.
Disable email recovery for the sub-organization
Disable email auth for the sub-organization
Disable OTP SMS auth for the sub-organization
Disable OTP email auth for the sub-organization
Signed JWT containing a unique id, expiry, verification type, contact
clientSignature field
The public component of a cryptographic key pair used to create the signature.
scheme field
Enum options: `CLIENT_SIGNATURE_SCHEME_API_P256`
The message that was signed.
The cryptographic signature over the message.
The result of the activity
The createSubOrganizationResultV7 object
subOrganizationId field
wallet field
walletId field
A list of account addresses.
item field
rootUserIds field
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_sub_organization \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V7",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"subOrganizationName": "",
"rootUsers": [
{
"userName": "",
"userEmail": "",
"userPhoneNumber": "",
"apiKeys": [
{
"apiKeyName": "",
"publicKey": "",
"curveType": "",
"expirationSeconds": ""
}
],
"authenticators": [
{
"authenticatorName": "",
"challenge": "",
"attestation": {
"credentialId": "",
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
]
}
}
],
"oauthProviders": [
{
"providerName": "",
"oidcToken": ""
}
]
}
],
"rootQuorumThreshold": "",
"wallet": {
"walletName": "",
"accounts": [
{
"curve": "",
"pathFormat": "",
"path": "",
"addressFormat": ""
}
],
"mnemonicLength": ""
},
"disableEmailRecovery": "",
"disableEmailAuth": "",
"disableSmsAuth": "",
"disableOtpEmailAuth": "",
"verificationToken": "",
"clientSignature": {
"publicKey": "",
"scheme": "",
"message": "",
"signature": ""
}
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createSubOrganization({
subOrganizationName: " (Name for this sub-organization)",
rootUsers: [{ // Root users to create within this sub-organization,
userName: " (Human-readable name for a User.)",
userEmail: " (The user's email address.)",
userPhoneNumber: " (The user's phone number in E.164 format e.g. +13214567890)",
apiKeys: [{ // A list of API Key parameters. This field, if not needed, should be an empty array in your request body.,
apiKeyName: " (Human-readable name for an API Key.)",
publicKey: " (The public component of a cryptographic key pair used to sign messages and transactions.)",
curveType: "" // curveType field,
expirationSeconds: " (Optional window (in seconds) indicating how long the API Key should last.)",
}],
authenticators: [{ // A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.,
authenticatorName: " (Human-readable name for an Authenticator.)",
challenge: " (Challenge presented for authentication purposes.)",
attestation: { // attestation field,
credentialId: " (The cbor encoded then base64 url encoded id of the credential.)",
clientDataJson: " (A base64 url encoded payload containing metadata about the signing context and the challenge.)",
attestationObject: " (A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.)",
transports: "" // The type of authenticator transports.,
},
}],
oauthProviders: [{ // A list of Oauth providers. This field, if not needed, should be an empty array in your request body.,
providerName: " (Human-readable name to identify a Provider.)",
oidcToken: " (Base64 encoded OIDC token)",
}],
}],
rootQuorumThreshold: 0 // The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users,
wallet: { // wallet field,
walletName: " (Human-readable name for a Wallet.)",
accounts: [{ // A list of wallet Accounts. This field, if not needed, should be an empty array in your request body.,
curve: "" // curve field,
pathFormat: "" // pathFormat field,
path: " (Path used to generate a wallet Account.)",
addressFormat: "" // addressFormat field,
}],
mnemonicLength: 0 // Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24.,
},
disableEmailRecovery: true // Disable email recovery for the sub-organization,
disableEmailAuth: true // Disable email auth for the sub-organization,
disableSmsAuth: true // Disable OTP SMS auth for the sub-organization,
disableOtpEmailAuth: true // Disable OTP email auth for the sub-organization,
verificationToken: " (Signed JWT containing a unique id, expiry, verification type, contact)",
clientSignature: { // clientSignature field,
publicKey: " (The public component of a cryptographic key pair used to create the signature.)",
scheme: "" // scheme field,
message: " (The message that was signed.)",
signature: " (The cryptographic signature over the message.)",
}
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V7",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createSubOrganizationIntentV7": {
"subOrganizationName": "",
"rootUsers": [
{
"userName": "",
"userEmail": "",
"userPhoneNumber": "",
"apiKeys": [
{
"apiKeyName": "",
"publicKey": "",
"curveType": "",
"expirationSeconds": ""
}
],
"authenticators": [
{
"authenticatorName": "",
"challenge": "",
"attestation": {
"credentialId": "",
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
]
}
}
],
"oauthProviders": [
{
"providerName": "",
"oidcToken": ""
}
]
}
],
"rootQuorumThreshold": "",
"wallet": {
"walletName": "",
"accounts": [
{
"curve": "",
"pathFormat": "",
"path": "",
"addressFormat": ""
}
],
"mnemonicLength": ""
},
"disableEmailRecovery": "",
"disableEmailAuth": "",
"disableSmsAuth": "",
"disableOtpEmailAuth": "",
"verificationToken": "",
"clientSignature": {
"publicKey": "",
"scheme": "",
"message": "",
"signature": ""
}
}
},
"result": {
"createSubOrganizationResultV7": {
"subOrganizationId": "",
"wallet": {
"walletId": "",
"addresses": [
""
]
},
"rootUserIds": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Create user tag
Source: https://docs.turnkey.com/api-reference/activities/create-user-tag
Create a user tag and add it to users.
Enum options: `ACTIVITY_TYPE_CREATE_USER_TAG`
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.
Human-readable name for a User Tag.
A list of User IDs.
Array item type: string
item field
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The createUserTagIntent object
Human-readable name for a User Tag.
A list of User IDs.
item field
The result of the activity
The createUserTagResult object
Unique identifier for a given User Tag.
A list of User IDs.
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_user_tag \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_USER_TAG",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"userTagName": "",
"userIds": [
""
]
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createUserTag({
userTagName: " (Human-readable name for a User Tag.)",
userIds: [""] // A list of User IDs.
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_USER_TAG",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createUserTagIntent": {
"userTagName": "",
"userIds": [
""
]
}
},
"result": {
"createUserTagResult": {
"userTagId": "",
"userIds": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Create users
Source: https://docs.turnkey.com/api-reference/activities/create-users
Create users in an existing organization.
Enum options: `ACTIVITY_TYPE_CREATE_USERS_V3`
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.
A list of Users.
Human-readable name for a User.
The user's email address.
The user's phone number in E.164 format e.g. +13214567890
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Enum options: `API_KEY_CURVE_P256`, `API_KEY_CURVE_SECP256K1`, `API_KEY_CURVE_ED25519`
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
Human-readable name to identify a Provider.
Base64 encoded OIDC token
A list of User Tag IDs. This field, if not needed, should be an empty array in your request body.
Array item type: string
item field
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The createUsersIntentV3 object
A list of Users.
Human-readable name for a User.
The user's email address.
The user's phone number in E.164 format e.g. +13214567890
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
curveType field
Enum options: `API_KEY_CURVE_P256`, `API_KEY_CURVE_SECP256K1`, `API_KEY_CURVE_ED25519`
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
Human-readable name to identify a Provider.
Base64 encoded OIDC token
A list of User Tag IDs. This field, if not needed, should be an empty array in your request body.
item field
The result of the activity
The createUsersResult object
A list of User IDs.
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_users \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_USERS_V3",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"users": [
{
"userName": "",
"userEmail": "",
"userPhoneNumber": "",
"apiKeys": [
{
"apiKeyName": "",
"publicKey": "",
"curveType": "",
"expirationSeconds": ""
}
],
"authenticators": [
{
"authenticatorName": "",
"challenge": "",
"attestation": {
"credentialId": "",
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
]
}
}
],
"oauthProviders": [
{
"providerName": "",
"oidcToken": ""
}
],
"userTags": [
""
]
}
]
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createUsers({
users: [{ // A list of Users.,
userName: " (Human-readable name for a User.)",
userEmail: " (The user's email address.)",
userPhoneNumber: " (The user's phone number in E.164 format e.g. +13214567890)",
apiKeys: [{ // A list of API Key parameters. This field, if not needed, should be an empty array in your request body.,
apiKeyName: " (Human-readable name for an API Key.)",
publicKey: " (The public component of a cryptographic key pair used to sign messages and transactions.)",
curveType: "" // curveType field,
expirationSeconds: " (Optional window (in seconds) indicating how long the API Key should last.)",
}],
authenticators: [{ // A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.,
authenticatorName: " (Human-readable name for an Authenticator.)",
challenge: " (Challenge presented for authentication purposes.)",
attestation: { // attestation field,
credentialId: " (The cbor encoded then base64 url encoded id of the credential.)",
clientDataJson: " (A base64 url encoded payload containing metadata about the signing context and the challenge.)",
attestationObject: " (A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.)",
transports: "" // The type of authenticator transports.,
},
}],
oauthProviders: [{ // A list of Oauth providers. This field, if not needed, should be an empty array in your request body.,
providerName: " (Human-readable name to identify a Provider.)",
oidcToken: " (Base64 encoded OIDC token)",
}],
userTags: [""] // A list of User Tag IDs. This field, if not needed, should be an empty array in your request body.,
}]
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_USERS_V3",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createUsersIntentV3": {
"users": [
{
"userName": "",
"userEmail": "",
"userPhoneNumber": "",
"apiKeys": [
{
"apiKeyName": "",
"publicKey": "",
"curveType": "",
"expirationSeconds": ""
}
],
"authenticators": [
{
"authenticatorName": "",
"challenge": "",
"attestation": {
"credentialId": "",
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
]
}
}
],
"oauthProviders": [
{
"providerName": "",
"oidcToken": ""
}
],
"userTags": [
""
]
}
]
}
},
"result": {
"createUsersResult": {
"userIds": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Create wallet
Source: https://docs.turnkey.com/api-reference/activities/create-wallet
Create a wallet and derive addresses.
Enum options: `ACTIVITY_TYPE_CREATE_WALLET`
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.
Human-readable name for a Wallet.
A list of wallet Accounts. This field, if not needed, should be an empty array in your request body.
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The createWalletIntent object
Human-readable name for a Wallet.
A list of wallet Accounts. This field, if not needed, should be an empty array in your request body.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
pathFormat field
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
addressFormat field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24.
The result of the activity
The createWalletResult object
Unique identifier for a Wallet.
A list of account addresses.
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_wallet \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_WALLET",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"walletName": "",
"accounts": [
{
"curve": "",
"pathFormat": "",
"path": "",
"addressFormat": ""
}
],
"mnemonicLength": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createWallet({
walletName: " (Human-readable name for a Wallet.)",
accounts: [{ // A list of wallet Accounts. This field, if not needed, should be an empty array in your request body.,
curve: "" // curve field,
pathFormat: "" // pathFormat field,
path: " (Path used to generate a wallet Account.)",
addressFormat: "" // addressFormat field,
}],
mnemonicLength: 0 // Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24.
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_WALLET",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createWalletIntent": {
"walletName": "",
"accounts": [
{
"curve": "",
"pathFormat": "",
"path": "",
"addressFormat": ""
}
],
"mnemonicLength": ""
}
},
"result": {
"createWalletResult": {
"walletId": "",
"addresses": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Create wallet accounts
Source: https://docs.turnkey.com/api-reference/activities/create-wallet-accounts
Derive additional addresses using an existing wallet.
Enum options: `ACTIVITY_TYPE_CREATE_WALLET_ACCOUNTS`
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.
Unique identifier for a given Wallet.
A list of wallet Accounts.
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
Indicates if the wallet accounts should be persisted. This is helpful if you'd like to see the addresses of different derivation paths without actually creating the accounts. Defaults to true.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The createWalletAccountsIntent object
Unique identifier for a given Wallet.
A list of wallet Accounts.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
pathFormat field
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
addressFormat field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
Indicates if the wallet accounts should be persisted. This is helpful if you'd like to see the addresses of different derivation paths without actually creating the accounts. Defaults to true.
The result of the activity
The createWalletAccountsResult object
A list of derived addresses.
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_wallet_accounts \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_WALLET_ACCOUNTS",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"walletId": "",
"accounts": [
{
"curve": "",
"pathFormat": "",
"path": "",
"addressFormat": ""
}
],
"persist": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createWalletAccounts({
walletId: " (Unique identifier for a given Wallet.)",
accounts: [{ // A list of wallet Accounts.,
curve: "" // curve field,
pathFormat: "" // pathFormat field,
path: " (Path used to generate a wallet Account.)",
addressFormat: "" // addressFormat field,
}],
persist: true // Indicates if the wallet accounts should be persisted. This is helpful if you'd like to see the addresses of different derivation paths without actually creating the accounts. Defaults to true.
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_WALLET_ACCOUNTS",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createWalletAccountsIntent": {
"walletId": "",
"accounts": [
{
"curve": "",
"pathFormat": "",
"path": "",
"addressFormat": ""
}
],
"persist": ""
}
},
"result": {
"createWalletAccountsResult": {
"addresses": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Delete a Fiat On Ramp Credential
Source: https://docs.turnkey.com/api-reference/activities/delete-a-fiat-on-ramp-credential
Delete a fiat on ramp provider credential
Enum options: `ACTIVITY_TYPE_DELETE_FIAT_ON_RAMP_CREDENTIAL`
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 ID of the fiat on-ramp credential to delete
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The deleteFiatOnRampCredentialIntent object
The ID of the fiat on-ramp credential to delete
The result of the activity
The deleteFiatOnRampCredentialResult object
Unique identifier of the Fiat On-Ramp credential that was deleted
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/delete_fiat_on_ramp_credential \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_DELETE_FIAT_ON_RAMP_CREDENTIAL",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"fiatOnrampCredentialId": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().deleteFiatOnRampCredential({
fiatOnrampCredentialId: " (The ID of the fiat on-ramp credential to delete)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_DELETE_FIAT_ON_RAMP_CREDENTIAL",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"deleteFiatOnRampCredentialIntent": {
"fiatOnrampCredentialId": ""
}
},
"result": {
"deleteFiatOnRampCredentialResult": {
"fiatOnRampCredentialId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Delete an OAuth 2.0 Credential
Source: https://docs.turnkey.com/api-reference/activities/delete-an-oauth-20-credential
Disable authentication for end users with an OAuth 2.0 provider
Enum options: `ACTIVITY_TYPE_DELETE_OAUTH2_CREDENTIAL`
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 ID of the OAuth 2.0 credential to delete
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The deleteOauth2CredentialIntent object
The ID of the OAuth 2.0 credential to delete
The result of the activity
The deleteOauth2CredentialResult object
Unique identifier of the OAuth 2.0 credential that was deleted
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/delete_oauth2_credential \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_DELETE_OAUTH2_CREDENTIAL",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"oauth2CredentialId": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().deleteOauth2Credential({
oauth2CredentialId: " (The ID of the OAuth 2.0 credential to delete)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_DELETE_OAUTH2_CREDENTIAL",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"deleteOauth2CredentialIntent": {
"oauth2CredentialId": ""
}
},
"result": {
"deleteOauth2CredentialResult": {
"oauth2CredentialId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Delete API keys
Source: https://docs.turnkey.com/api-reference/activities/delete-api-keys
Remove api keys from a user.
Enum options: `ACTIVITY_TYPE_DELETE_API_KEYS`
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.
Unique identifier for a given User.
A list of API Key IDs.
Array item type: string
item field
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The deleteApiKeysIntent object
Unique identifier for a given User.
A list of API Key IDs.
item field
The result of the activity
The deleteApiKeysResult object
A list of API Key IDs.
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/delete_api_keys \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_DELETE_API_KEYS",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"userId": "",
"apiKeyIds": [
""
]
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().deleteApiKeys({
userId: " (Unique identifier for a given User.)",
apiKeyIds: [""] // A list of API Key IDs.
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_DELETE_API_KEYS",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"deleteApiKeysIntent": {
"userId": "",
"apiKeyIds": [
""
]
}
},
"result": {
"deleteApiKeysResult": {
"apiKeyIds": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Delete authenticators
Source: https://docs.turnkey.com/api-reference/activities/delete-authenticators
Remove authenticators from a user.
Enum options: `ACTIVITY_TYPE_DELETE_AUTHENTICATORS`
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.
Unique identifier for a given User.
A list of Authenticator IDs.
Array item type: string
item field
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The deleteAuthenticatorsIntent object
Unique identifier for a given User.
A list of Authenticator IDs.
item field
The result of the activity
The deleteAuthenticatorsResult object
Unique identifier for a given Authenticator.
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/delete_authenticators \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_DELETE_AUTHENTICATORS",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"userId": "",
"authenticatorIds": [
""
]
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().deleteAuthenticators({
userId: " (Unique identifier for a given User.)",
authenticatorIds: [""] // A list of Authenticator IDs.
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_DELETE_AUTHENTICATORS",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"deleteAuthenticatorsIntent": {
"userId": "",
"authenticatorIds": [
""
]
}
},
"result": {
"deleteAuthenticatorsResult": {
"authenticatorIds": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Delete invitation
Source: https://docs.turnkey.com/api-reference/activities/delete-invitation
Delete an existing invitation.
Enum options: `ACTIVITY_TYPE_DELETE_INVITATION`
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.
Unique identifier for a given Invitation object.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The deleteInvitationIntent object
Unique identifier for a given Invitation object.
The result of the activity
The deleteInvitationResult object
Unique identifier for a given Invitation.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/delete_invitation \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_DELETE_INVITATION",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"invitationId": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().deleteInvitation({
invitationId: " (Unique identifier for a given Invitation object.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_DELETE_INVITATION",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"deleteInvitationIntent": {
"invitationId": ""
}
},
"result": {
"deleteInvitationResult": {
"invitationId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Delete Oauth providers
Source: https://docs.turnkey.com/api-reference/activities/delete-oauth-providers
Remove Oauth providers for a specified user.
Enum options: `ACTIVITY_TYPE_DELETE_OAUTH_PROVIDERS`
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 ID of the User to remove an Oauth provider from
Unique identifier for a given Provider.
Array item type: string
item field
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The deleteOauthProvidersIntent object
The ID of the User to remove an Oauth provider from
Unique identifier for a given Provider.
item field
The result of the activity
The deleteOauthProvidersResult object
A list of unique identifiers for Oauth Providers
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/delete_oauth_providers \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_DELETE_OAUTH_PROVIDERS",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"userId": "",
"providerIds": [
""
]
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().deleteOauthProviders({
userId: " (The ID of the User to remove an Oauth provider from)",
providerIds: [""] // Unique identifier for a given Provider.
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_DELETE_OAUTH_PROVIDERS",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"deleteOauthProvidersIntent": {
"userId": "",
"providerIds": [
""
]
}
},
"result": {
"deleteOauthProvidersResult": {
"providerIds": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Delete policies
Source: https://docs.turnkey.com/api-reference/activities/delete-policies
Delete existing policies.
Enum options: `ACTIVITY_TYPE_DELETE_POLICIES`
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.
List of unique identifiers for policies within an organization
Array item type: string
item field
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The deletePoliciesIntent object
List of unique identifiers for policies within an organization
item field
The result of the activity
The deletePoliciesResult object
A list of unique identifiers for the deleted policies.
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/delete_policies \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_DELETE_POLICIES",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"policyIds": [
""
]
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().deletePolicies({
policyIds: [""] // List of unique identifiers for policies within an organization
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_DELETE_POLICIES",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"deletePoliciesIntent": {
"policyIds": [
""
]
}
},
"result": {
"deletePoliciesResult": {
"policyIds": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Delete policy
Source: https://docs.turnkey.com/api-reference/activities/delete-policy
Delete an existing policy.
Enum options: `ACTIVITY_TYPE_DELETE_POLICY`
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.
Unique identifier for a given Policy.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The deletePolicyIntent object
Unique identifier for a given Policy.
The result of the activity
The deletePolicyResult object
Unique identifier for a given Policy.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/delete_policy \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_DELETE_POLICY",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"policyId": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().deletePolicy({
policyId: " (Unique identifier for a given Policy.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_DELETE_POLICY",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"deletePolicyIntent": {
"policyId": ""
}
},
"result": {
"deletePolicyResult": {
"policyId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Delete private key tags
Source: https://docs.turnkey.com/api-reference/activities/delete-private-key-tags
Delete private key tags within an organization.
Enum options: `ACTIVITY_TYPE_DELETE_PRIVATE_KEY_TAGS`
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.
A list of Private Key Tag IDs.
Array item type: string
item field
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The deletePrivateKeyTagsIntent object
A list of Private Key Tag IDs.
item field
The result of the activity
The deletePrivateKeyTagsResult object
A list of Private Key Tag IDs.
item field
A list of Private Key IDs.
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/delete_private_key_tags \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_DELETE_PRIVATE_KEY_TAGS",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"privateKeyTagIds": [
""
]
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().deletePrivateKeyTags({
privateKeyTagIds: [""] // A list of Private Key Tag IDs.
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_DELETE_PRIVATE_KEY_TAGS",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"deletePrivateKeyTagsIntent": {
"privateKeyTagIds": [
""
]
}
},
"result": {
"deletePrivateKeyTagsResult": {
"privateKeyTagIds": [
""
],
"privateKeyIds": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Delete private keys
Source: https://docs.turnkey.com/api-reference/activities/delete-private-keys
Delete private keys for an organization.
Enum options: `ACTIVITY_TYPE_DELETE_PRIVATE_KEYS`
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.
List of unique identifiers for private keys within an organization
Array item type: string
item field
Optional parameter for deleting the private keys, even if any have not been previously exported. If they have been exported, this field is ignored.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The deletePrivateKeysIntent object
List of unique identifiers for private keys within an organization
item field
Optional parameter for deleting the private keys, even if any have not been previously exported. If they have been exported, this field is ignored.
The result of the activity
The deletePrivateKeysResult object
A list of private key unique identifiers that were removed
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/delete_private_keys \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_DELETE_PRIVATE_KEYS",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"privateKeyIds": [
""
],
"deleteWithoutExport": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().deletePrivateKeys({
privateKeyIds: [""] // List of unique identifiers for private keys within an organization,
deleteWithoutExport: true // Optional parameter for deleting the private keys, even if any have not been previously exported. If they have been exported, this field is ignored.
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_DELETE_PRIVATE_KEYS",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"deletePrivateKeysIntent": {
"privateKeyIds": [
""
],
"deleteWithoutExport": ""
}
},
"result": {
"deletePrivateKeysResult": {
"privateKeyIds": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Delete smart contract interface
Source: https://docs.turnkey.com/api-reference/activities/delete-smart-contract-interface
Delete a smart contract interface.
Enum options: `ACTIVITY_TYPE_DELETE_SMART_CONTRACT_INTERFACE`
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 ID of a Smart Contract Interface intended for deletion.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The deleteSmartContractInterfaceIntent object
The ID of a Smart Contract Interface intended for deletion.
The result of the activity
The deleteSmartContractInterfaceResult object
The ID of the deleted Smart Contract Interface.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/delete_smart_contract_interface \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_DELETE_SMART_CONTRACT_INTERFACE",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"smartContractInterfaceId": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().deleteSmartContractInterface({
smartContractInterfaceId: " (The ID of a Smart Contract Interface intended for deletion.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_DELETE_SMART_CONTRACT_INTERFACE",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"deleteSmartContractInterfaceIntent": {
"smartContractInterfaceId": ""
}
},
"result": {
"deleteSmartContractInterfaceResult": {
"smartContractInterfaceId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Delete sub-organization
Source: https://docs.turnkey.com/api-reference/activities/delete-sub-organization
Delete a sub-organization.
Enum options: `ACTIVITY_TYPE_DELETE_SUB_ORGANIZATION`
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.
Sub-organization deletion, by default, requires associated wallets and private keys to be exported for security reasons. Set this boolean to true to force sub-organization deletion even if some wallets or private keys within it have not been exported yet. Default: false.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The deleteSubOrganizationIntent object
Sub-organization deletion, by default, requires associated wallets and private keys to be exported for security reasons. Set this boolean to true to force sub-organization deletion even if some wallets or private keys within it have not been exported yet. Default: false.
The result of the activity
The deleteSubOrganizationResult object
Unique identifier of the sub organization that was removed
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/delete_sub_organization \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_DELETE_SUB_ORGANIZATION",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"deleteWithoutExport": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().deleteSubOrganization({
deleteWithoutExport: true // Sub-organization deletion, by default, requires associated wallets and private keys to be exported for security reasons. Set this boolean to true to force sub-organization deletion even if some wallets or private keys within it have not been exported yet. Default: false.
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_DELETE_SUB_ORGANIZATION",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"deleteSubOrganizationIntent": {
"deleteWithoutExport": ""
}
},
"result": {
"deleteSubOrganizationResult": {
"subOrganizationUuid": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Delete user tags
Source: https://docs.turnkey.com/api-reference/activities/delete-user-tags
Delete user tags within an organization.
Enum options: `ACTIVITY_TYPE_DELETE_USER_TAGS`
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.
A list of User Tag IDs.
Array item type: string
item field
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The deleteUserTagsIntent object
A list of User Tag IDs.
item field
The result of the activity
The deleteUserTagsResult object
A list of User Tag IDs.
item field
A list of User IDs.
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/delete_user_tags \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_DELETE_USER_TAGS",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"userTagIds": [
""
]
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().deleteUserTags({
userTagIds: [""] // A list of User Tag IDs.
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_DELETE_USER_TAGS",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"deleteUserTagsIntent": {
"userTagIds": [
""
]
}
},
"result": {
"deleteUserTagsResult": {
"userTagIds": [
""
],
"userIds": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Delete users
Source: https://docs.turnkey.com/api-reference/activities/delete-users
Delete users within an organization.
Enum options: `ACTIVITY_TYPE_DELETE_USERS`
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.
A list of User IDs.
Array item type: string
item field
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The deleteUsersIntent object
A list of User IDs.
item field
The result of the activity
The deleteUsersResult object
A list of User IDs.
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/delete_users \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_DELETE_USERS",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"userIds": [
""
]
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().deleteUsers({
userIds: [""] // A list of User IDs.
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_DELETE_USERS",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"deleteUsersIntent": {
"userIds": [
""
]
}
},
"result": {
"deleteUsersResult": {
"userIds": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Delete wallet accounts
Source: https://docs.turnkey.com/api-reference/activities/delete-wallet-accounts
Delete wallet accounts for an organization.
Enum options: `ACTIVITY_TYPE_DELETE_WALLET_ACCOUNTS`
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.
List of unique identifiers for wallet accounts within an organization
Array item type: string
item field
Optional parameter for deleting the wallet accounts, even if any have not been previously exported. If they have been exported, this field is ignored.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The deleteWalletAccountsIntent object
List of unique identifiers for wallet accounts within an organization
item field
Optional parameter for deleting the wallet accounts, even if any have not been previously exported. If they have been exported, this field is ignored.
The result of the activity
The deleteWalletAccountsResult object
A list of wallet account unique identifiers that were removed
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/delete_wallet_accounts \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_DELETE_WALLET_ACCOUNTS",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"walletAccountIds": [
""
],
"deleteWithoutExport": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().deleteWalletAccounts({
walletAccountIds: [""] // List of unique identifiers for wallet accounts within an organization,
deleteWithoutExport: true // Optional parameter for deleting the wallet accounts, even if any have not been previously exported. If they have been exported, this field is ignored.
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_DELETE_WALLET_ACCOUNTS",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"deleteWalletAccountsIntent": {
"walletAccountIds": [
""
],
"deleteWithoutExport": ""
}
},
"result": {
"deleteWalletAccountsResult": {
"walletAccountIds": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Delete wallets
Source: https://docs.turnkey.com/api-reference/activities/delete-wallets
Delete wallets for an organization.
Enum options: `ACTIVITY_TYPE_DELETE_WALLETS`
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.
List of unique identifiers for wallets within an organization
Array item type: string
item field
Optional parameter for deleting the wallets, even if any have not been previously exported. If they have been exported, this field is ignored.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The deleteWalletsIntent object
List of unique identifiers for wallets within an organization
item field
Optional parameter for deleting the wallets, even if any have not been previously exported. If they have been exported, this field is ignored.
The result of the activity
The deleteWalletsResult object
A list of wallet unique identifiers that were removed
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/delete_wallets \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_DELETE_WALLETS",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"walletIds": [
""
],
"deleteWithoutExport": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().deleteWallets({
walletIds: [""] // List of unique identifiers for wallets within an organization,
deleteWithoutExport: true // Optional parameter for deleting the wallets, even if any have not been previously exported. If they have been exported, this field is ignored.
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_DELETE_WALLETS",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"deleteWalletsIntent": {
"walletIds": [
""
],
"deleteWithoutExport": ""
}
},
"result": {
"deleteWalletsResult": {
"walletIds": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Export private key
Source: https://docs.turnkey.com/api-reference/activities/export-private-key
Export a private key.
Enum options: `ACTIVITY_TYPE_EXPORT_PRIVATE_KEY`
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.
Unique identifier for a given Private Key.
Client-side public key generated by the user, to which the export bundle will be encrypted.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The exportPrivateKeyIntent object
Unique identifier for a given Private Key.
Client-side public key generated by the user, to which the export bundle will be encrypted.
The result of the activity
The exportPrivateKeyResult object
Unique identifier for a given Private Key.
Export bundle containing a private key encrypted to the client's target public key.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/export_private_key \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_EXPORT_PRIVATE_KEY",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"privateKeyId": "",
"targetPublicKey": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().exportPrivateKey({
privateKeyId: " (Unique identifier for a given Private Key.)",
targetPublicKey: " (Client-side public key generated by the user, to which the export bundle will be encrypted.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_EXPORT_PRIVATE_KEY",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"exportPrivateKeyIntent": {
"privateKeyId": "",
"targetPublicKey": ""
}
},
"result": {
"exportPrivateKeyResult": {
"privateKeyId": "",
"exportBundle": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Export wallet
Source: https://docs.turnkey.com/api-reference/activities/export-wallet
Export a wallet.
Enum options: `ACTIVITY_TYPE_EXPORT_WALLET`
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.
Unique identifier for a given Wallet.
Client-side public key generated by the user, to which the export bundle will be encrypted.
Enum options: `MNEMONIC_LANGUAGE_ENGLISH`, `MNEMONIC_LANGUAGE_SIMPLIFIED_CHINESE`, `MNEMONIC_LANGUAGE_TRADITIONAL_CHINESE`, `MNEMONIC_LANGUAGE_CZECH`, `MNEMONIC_LANGUAGE_FRENCH`, `MNEMONIC_LANGUAGE_ITALIAN`, `MNEMONIC_LANGUAGE_JAPANESE`, `MNEMONIC_LANGUAGE_KOREAN`, `MNEMONIC_LANGUAGE_SPANISH`
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The exportWalletIntent object
Unique identifier for a given Wallet.
Client-side public key generated by the user, to which the export bundle will be encrypted.
language field
Enum options: `MNEMONIC_LANGUAGE_ENGLISH`, `MNEMONIC_LANGUAGE_SIMPLIFIED_CHINESE`, `MNEMONIC_LANGUAGE_TRADITIONAL_CHINESE`, `MNEMONIC_LANGUAGE_CZECH`, `MNEMONIC_LANGUAGE_FRENCH`, `MNEMONIC_LANGUAGE_ITALIAN`, `MNEMONIC_LANGUAGE_JAPANESE`, `MNEMONIC_LANGUAGE_KOREAN`, `MNEMONIC_LANGUAGE_SPANISH`
The result of the activity
The exportWalletResult object
Unique identifier for a given Wallet.
Export bundle containing a wallet mnemonic + optional newline passphrase encrypted by the client's target public key.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/export_wallet \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_EXPORT_WALLET",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"walletId": "",
"targetPublicKey": "",
"language": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().exportWallet({
walletId: " (Unique identifier for a given Wallet.)",
targetPublicKey: " (Client-side public key generated by the user, to which the export bundle will be encrypted.)",
language: "" // language field
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_EXPORT_WALLET",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"exportWalletIntent": {
"walletId": "",
"targetPublicKey": "",
"language": ""
}
},
"result": {
"exportWalletResult": {
"walletId": "",
"exportBundle": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Export wallet account
Source: https://docs.turnkey.com/api-reference/activities/export-wallet-account
Export a wallet account.
Enum options: `ACTIVITY_TYPE_EXPORT_WALLET_ACCOUNT`
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.
Address to identify Wallet Account.
Client-side public key generated by the user, to which the export bundle will be encrypted.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The exportWalletAccountIntent object
Address to identify Wallet Account.
Client-side public key generated by the user, to which the export bundle will be encrypted.
The result of the activity
The exportWalletAccountResult object
Address to identify Wallet Account.
Export bundle containing a private key encrypted by the client's target public key.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/export_wallet_account \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_EXPORT_WALLET_ACCOUNT",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"address": "",
"targetPublicKey": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().exportWalletAccount({
address: " (Address to identify Wallet Account.)",
targetPublicKey: " (Client-side public key generated by the user, to which the export bundle will be encrypted.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_EXPORT_WALLET_ACCOUNT",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"exportWalletAccountIntent": {
"address": "",
"targetPublicKey": ""
}
},
"result": {
"exportWalletAccountResult": {
"address": "",
"exportBundle": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Import private key
Source: https://docs.turnkey.com/api-reference/activities/import-private-key
Import a private key.
Enum options: `ACTIVITY_TYPE_IMPORT_PRIVATE_KEY`
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 ID of the User importing a Private Key.
Human-readable name for a Private Key.
Bundle containing a raw private key encrypted to the enclave's target public key.
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The importPrivateKeyIntent object
The ID of the User importing a Private Key.
Human-readable name for a Private Key.
Bundle containing a raw private key encrypted to the enclave's target public key.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
Cryptocurrency-specific formats for a derived address (e.g., Ethereum).
item field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
The result of the activity
The importPrivateKeyResult object
Unique identifier for a Private Key.
A list of addresses.
format field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
address field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/import_private_key \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_IMPORT_PRIVATE_KEY",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"userId": "",
"privateKeyName": "",
"encryptedBundle": "",
"curve": "",
"addressFormats": [
""
]
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().importPrivateKey({
userId: " (The ID of the User importing a Private Key.)",
privateKeyName: " (Human-readable name for a Private Key.)",
encryptedBundle: " (Bundle containing a raw private key encrypted to the enclave's target public key.)",
curve: "" // curve field,
addressFormats: "" // Cryptocurrency-specific formats for a derived address (e.g., Ethereum).
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_IMPORT_PRIVATE_KEY",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"importPrivateKeyIntent": {
"userId": "",
"privateKeyName": "",
"encryptedBundle": "",
"curve": "",
"addressFormats": [
""
]
}
},
"result": {
"importPrivateKeyResult": {
"privateKeyId": "",
"addresses": [
{
"format": "",
"address": ""
}
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Import wallet
Source: https://docs.turnkey.com/api-reference/activities/import-wallet
Import a wallet.
Enum options: `ACTIVITY_TYPE_IMPORT_WALLET`
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 ID of the User importing a Wallet.
Human-readable name for a Wallet.
Bundle containing a wallet mnemonic encrypted to the enclave's target public key.
A list of wallet Accounts.
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The importWalletIntent object
The ID of the User importing a Wallet.
Human-readable name for a Wallet.
Bundle containing a wallet mnemonic encrypted to the enclave's target public key.
A list of wallet Accounts.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
pathFormat field
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
addressFormat field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
The result of the activity
The importWalletResult object
Unique identifier for a Wallet.
A list of account addresses.
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/import_wallet \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_IMPORT_WALLET",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"userId": "",
"walletName": "",
"encryptedBundle": "",
"accounts": [
{
"curve": "",
"pathFormat": "",
"path": "",
"addressFormat": ""
}
]
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().importWallet({
userId: " (The ID of the User importing a Wallet.)",
walletName: " (Human-readable name for a Wallet.)",
encryptedBundle: " (Bundle containing a wallet mnemonic encrypted to the enclave's target public key.)",
accounts: [{ // A list of wallet Accounts.,
curve: "" // curve field,
pathFormat: "" // pathFormat field,
path: " (Path used to generate a wallet Account.)",
addressFormat: "" // addressFormat field,
}]
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_IMPORT_WALLET",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"importWalletIntent": {
"userId": "",
"walletName": "",
"encryptedBundle": "",
"accounts": [
{
"curve": "",
"pathFormat": "",
"path": "",
"addressFormat": ""
}
]
}
},
"result": {
"importWalletResult": {
"walletId": "",
"addresses": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Init email recovery
Source: https://docs.turnkey.com/api-reference/activities/init-email-recovery
Initialize a new email recovery.
Enum options: `ACTIVITY_TYPE_INIT_USER_EMAIL_RECOVERY_V2`
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.
Email of the user starting recovery
Client-side public key generated by the user, to which the recovery bundle will be encrypted.
Expiration window (in seconds) indicating how long the recovery credential is valid for. If not provided, a default of 15 minutes will be used.
emailCustomization field
The name of the application. This field is required and will be used in email notifications if an email template is not provided.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
Optional custom email address from which to send the OTP email
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Optional custom email address to use as reply-to
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The initUserEmailRecoveryIntentV2 object
Email of the user starting recovery
Client-side public key generated by the user, to which the recovery bundle will be encrypted.
Expiration window (in seconds) indicating how long the recovery credential is valid for. If not provided, a default of 15 minutes will be used.
emailCustomization field
The name of the application. This field is required and will be used in email notifications if an email template is not provided.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
Optional custom email address from which to send the OTP email
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Optional custom email address to use as reply-to
The result of the activity
The initUserEmailRecoveryResult object
Unique identifier for the user being recovered.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/init_user_email_recovery \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_INIT_USER_EMAIL_RECOVERY_V2",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"email": "",
"targetPublicKey": "",
"expirationSeconds": "",
"emailCustomization": {
"appName": "",
"logoUrl": "",
"magicLinkTemplate": "",
"templateVariables": "",
"templateId": ""
},
"sendFromEmailAddress": "",
"sendFromEmailSenderName": "",
"replyToEmailAddress": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().initUserEmailRecovery({
email: " (Email of the user starting recovery)",
targetPublicKey: " (Client-side public key generated by the user, to which the recovery bundle will be encrypted.)",
expirationSeconds: " (Expiration window (in seconds) indicating how long the recovery credential is valid for. If not provided, a default of 15 minutes will be used.)",
emailCustomization: { // emailCustomization field,
appName: " (The name of the application. This field is required and will be used in email notifications if an email template is not provided.)",
logoUrl: " (A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.)",
magicLinkTemplate: " (A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.)",
templateVariables: " (JSON object containing key/value pairs to be used with custom templates.)",
templateId: " (Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.)",
},
sendFromEmailAddress: " (Optional custom email address from which to send the OTP email)",
sendFromEmailSenderName: " (Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications')",
replyToEmailAddress: " (Optional custom email address to use as reply-to)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_INIT_USER_EMAIL_RECOVERY_V2",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"initUserEmailRecoveryIntentV2": {
"email": "",
"targetPublicKey": "",
"expirationSeconds": "",
"emailCustomization": {
"appName": "",
"logoUrl": "",
"magicLinkTemplate": "",
"templateVariables": "",
"templateId": ""
},
"sendFromEmailAddress": "",
"sendFromEmailSenderName": "",
"replyToEmailAddress": ""
}
},
"result": {
"initUserEmailRecoveryResult": {
"userId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Init fiat on ramp
Source: https://docs.turnkey.com/api-reference/activities/init-fiat-on-ramp
Initiate a fiat on ramp flow.
Enum options: `ACTIVITY_TYPE_INIT_FIAT_ON_RAMP`
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.
Enum options: `FIAT_ON_RAMP_PROVIDER_COINBASE`, `FIAT_ON_RAMP_PROVIDER_MOONPAY`
Destination wallet address for the buy transaction.
Enum options: `FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_BITCOIN`, `FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_ETHEREUM`, `FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_SOLANA`, `FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_BASE`
Enum options: `FIAT_ON_RAMP_CRYPTO_CURRENCY_BTC`, `FIAT_ON_RAMP_CRYPTO_CURRENCY_ETH`, `FIAT_ON_RAMP_CRYPTO_CURRENCY_SOL`, `FIAT_ON_RAMP_CRYPTO_CURRENCY_USDC`
Enum options: `FIAT_ON_RAMP_CURRENCY_AUD`, `FIAT_ON_RAMP_CURRENCY_BGN`, `FIAT_ON_RAMP_CURRENCY_BRL`, `FIAT_ON_RAMP_CURRENCY_CAD`, `FIAT_ON_RAMP_CURRENCY_CHF`, `FIAT_ON_RAMP_CURRENCY_COP`, `FIAT_ON_RAMP_CURRENCY_CZK`, `FIAT_ON_RAMP_CURRENCY_DKK`, `FIAT_ON_RAMP_CURRENCY_DOP`, `FIAT_ON_RAMP_CURRENCY_EGP`, `FIAT_ON_RAMP_CURRENCY_EUR`, `FIAT_ON_RAMP_CURRENCY_GBP`, `FIAT_ON_RAMP_CURRENCY_HKD`, `FIAT_ON_RAMP_CURRENCY_IDR`, `FIAT_ON_RAMP_CURRENCY_ILS`, `FIAT_ON_RAMP_CURRENCY_JOD`, `FIAT_ON_RAMP_CURRENCY_KES`, `FIAT_ON_RAMP_CURRENCY_KWD`, `FIAT_ON_RAMP_CURRENCY_LKR`, `FIAT_ON_RAMP_CURRENCY_MXN`, `FIAT_ON_RAMP_CURRENCY_NGN`, `FIAT_ON_RAMP_CURRENCY_NOK`, `FIAT_ON_RAMP_CURRENCY_NZD`, `FIAT_ON_RAMP_CURRENCY_OMR`, `FIAT_ON_RAMP_CURRENCY_PEN`, `FIAT_ON_RAMP_CURRENCY_PLN`, `FIAT_ON_RAMP_CURRENCY_RON`, `FIAT_ON_RAMP_CURRENCY_SEK`, `FIAT_ON_RAMP_CURRENCY_THB`, `FIAT_ON_RAMP_CURRENCY_TRY`, `FIAT_ON_RAMP_CURRENCY_TWD`, `FIAT_ON_RAMP_CURRENCY_USD`, `FIAT_ON_RAMP_CURRENCY_VND`, `FIAT_ON_RAMP_CURRENCY_ZAR`
Specifies a preset fiat amount for the transaction, e.g., '100'. Must be greater than '20'. If not provided, the user will be prompted to enter an amount.
Enum options: `FIAT_ON_RAMP_PAYMENT_METHOD_CREDIT_DEBIT_CARD`, `FIAT_ON_RAMP_PAYMENT_METHOD_APPLE_PAY`, `FIAT_ON_RAMP_PAYMENT_METHOD_GBP_BANK_TRANSFER`, `FIAT_ON_RAMP_PAYMENT_METHOD_GBP_OPEN_BANKING_PAYMENT`, `FIAT_ON_RAMP_PAYMENT_METHOD_GOOGLE_PAY`, `FIAT_ON_RAMP_PAYMENT_METHOD_SEPA_BANK_TRANSFER`, `FIAT_ON_RAMP_PAYMENT_METHOD_PIX_INSTANT_PAYMENT`, `FIAT_ON_RAMP_PAYMENT_METHOD_PAYPAL`, `FIAT_ON_RAMP_PAYMENT_METHOD_VENMO`, `FIAT_ON_RAMP_PAYMENT_METHOD_MOONPAY_BALANCE`, `FIAT_ON_RAMP_PAYMENT_METHOD_CRYPTO_ACCOUNT`, `FIAT_ON_RAMP_PAYMENT_METHOD_FIAT_WALLET`, `FIAT_ON_RAMP_PAYMENT_METHOD_ACH_BANK_ACCOUNT`
ISO 3166-1 two-digit country code for Coinbase representing the purchasing user’s country of residence, e.g., US, GB.
ISO 3166-2 two-digit country subdivision code for Coinbase representing the purchasing user’s subdivision of residence within their country, e.g. NY. Required if country\_code=US.
Optional flag to indicate whether to use the sandbox mode to simulate transactions for the on-ramp provider. Default is false.
Optional MoonPay Widget URL to sign when using MoonPay client SDKs with URL Signing enabled.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The initFiatOnRampIntent object
onrampProvider field
Enum options: `FIAT_ON_RAMP_PROVIDER_COINBASE`, `FIAT_ON_RAMP_PROVIDER_MOONPAY`
Destination wallet address for the buy transaction.
network field
Enum options: `FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_BITCOIN`, `FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_ETHEREUM`, `FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_SOLANA`, `FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_BASE`
cryptoCurrencyCode field
Enum options: `FIAT_ON_RAMP_CRYPTO_CURRENCY_BTC`, `FIAT_ON_RAMP_CRYPTO_CURRENCY_ETH`, `FIAT_ON_RAMP_CRYPTO_CURRENCY_SOL`, `FIAT_ON_RAMP_CRYPTO_CURRENCY_USDC`
fiatCurrencyCode field
Enum options: `FIAT_ON_RAMP_CURRENCY_AUD`, `FIAT_ON_RAMP_CURRENCY_BGN`, `FIAT_ON_RAMP_CURRENCY_BRL`, `FIAT_ON_RAMP_CURRENCY_CAD`, `FIAT_ON_RAMP_CURRENCY_CHF`, `FIAT_ON_RAMP_CURRENCY_COP`, `FIAT_ON_RAMP_CURRENCY_CZK`, `FIAT_ON_RAMP_CURRENCY_DKK`, `FIAT_ON_RAMP_CURRENCY_DOP`, `FIAT_ON_RAMP_CURRENCY_EGP`, `FIAT_ON_RAMP_CURRENCY_EUR`, `FIAT_ON_RAMP_CURRENCY_GBP`, `FIAT_ON_RAMP_CURRENCY_HKD`, `FIAT_ON_RAMP_CURRENCY_IDR`, `FIAT_ON_RAMP_CURRENCY_ILS`, `FIAT_ON_RAMP_CURRENCY_JOD`, `FIAT_ON_RAMP_CURRENCY_KES`, `FIAT_ON_RAMP_CURRENCY_KWD`, `FIAT_ON_RAMP_CURRENCY_LKR`, `FIAT_ON_RAMP_CURRENCY_MXN`, `FIAT_ON_RAMP_CURRENCY_NGN`, `FIAT_ON_RAMP_CURRENCY_NOK`, `FIAT_ON_RAMP_CURRENCY_NZD`, `FIAT_ON_RAMP_CURRENCY_OMR`, `FIAT_ON_RAMP_CURRENCY_PEN`, `FIAT_ON_RAMP_CURRENCY_PLN`, `FIAT_ON_RAMP_CURRENCY_RON`, `FIAT_ON_RAMP_CURRENCY_SEK`, `FIAT_ON_RAMP_CURRENCY_THB`, `FIAT_ON_RAMP_CURRENCY_TRY`, `FIAT_ON_RAMP_CURRENCY_TWD`, `FIAT_ON_RAMP_CURRENCY_USD`, `FIAT_ON_RAMP_CURRENCY_VND`, `FIAT_ON_RAMP_CURRENCY_ZAR`
Specifies a preset fiat amount for the transaction, e.g., '100'. Must be greater than '20'. If not provided, the user will be prompted to enter an amount.
paymentMethod field
Enum options: `FIAT_ON_RAMP_PAYMENT_METHOD_CREDIT_DEBIT_CARD`, `FIAT_ON_RAMP_PAYMENT_METHOD_APPLE_PAY`, `FIAT_ON_RAMP_PAYMENT_METHOD_GBP_BANK_TRANSFER`, `FIAT_ON_RAMP_PAYMENT_METHOD_GBP_OPEN_BANKING_PAYMENT`, `FIAT_ON_RAMP_PAYMENT_METHOD_GOOGLE_PAY`, `FIAT_ON_RAMP_PAYMENT_METHOD_SEPA_BANK_TRANSFER`, `FIAT_ON_RAMP_PAYMENT_METHOD_PIX_INSTANT_PAYMENT`, `FIAT_ON_RAMP_PAYMENT_METHOD_PAYPAL`, `FIAT_ON_RAMP_PAYMENT_METHOD_VENMO`, `FIAT_ON_RAMP_PAYMENT_METHOD_MOONPAY_BALANCE`, `FIAT_ON_RAMP_PAYMENT_METHOD_CRYPTO_ACCOUNT`, `FIAT_ON_RAMP_PAYMENT_METHOD_FIAT_WALLET`, `FIAT_ON_RAMP_PAYMENT_METHOD_ACH_BANK_ACCOUNT`
ISO 3166-1 two-digit country code for Coinbase representing the purchasing user’s country of residence, e.g., US, GB.
ISO 3166-2 two-digit country subdivision code for Coinbase representing the purchasing user’s subdivision of residence within their country, e.g. NY. Required if country\_code=US.
Optional flag to indicate whether to use the sandbox mode to simulate transactions for the on-ramp provider. Default is false.
Optional MoonPay Widget URL to sign when using MoonPay client SDKs with URL Signing enabled.
The result of the activity
The initFiatOnRampResult object
Unique URL for a given fiat on-ramp flow.
Unique identifier used to retrieve transaction statuses for a given fiat on-ramp flow.
Optional signature of the MoonPay Widget URL. The signature is generated if the Init Fiat On Ramp intent includes the urlForSignature field. The signature can be used to initialize the MoonPay SDKs when URL signing is enabled for your project.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/init_fiat_on_ramp \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_INIT_FIAT_ON_RAMP",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"onrampProvider": "",
"walletAddress": "",
"network": "",
"cryptoCurrencyCode": "",
"fiatCurrencyCode": "",
"fiatCurrencyAmount": "",
"paymentMethod": "",
"countryCode": "",
"countrySubdivisionCode": "",
"sandboxMode": "",
"urlForSignature": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().initFiatOnRamp({
onrampProvider: "" // onrampProvider field,
walletAddress: " (Destination wallet address for the buy transaction.)",
network: "" // network field,
cryptoCurrencyCode: "" // cryptoCurrencyCode field,
fiatCurrencyCode: "" // fiatCurrencyCode field,
fiatCurrencyAmount: " (Specifies a preset fiat amount for the transaction, e.g., '100'. Must be greater than '20'. If not provided, the user will be prompted to enter an amount.)",
paymentMethod: "" // paymentMethod field,
countryCode: " (ISO 3166-1 two-digit country code for Coinbase representing the purchasing user’s country of residence, e.g., US, GB.)",
countrySubdivisionCode: " (ISO 3166-2 two-digit country subdivision code for Coinbase representing the purchasing user’s subdivision of residence within their country, e.g. NY. Required if country_code=US.)",
sandboxMode: true // Optional flag to indicate whether to use the sandbox mode to simulate transactions for the on-ramp provider. Default is false.,
urlForSignature: " (Optional MoonPay Widget URL to sign when using MoonPay client SDKs with URL Signing enabled.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_INIT_FIAT_ON_RAMP",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"initFiatOnRampIntent": {
"onrampProvider": "",
"walletAddress": "",
"network": "",
"cryptoCurrencyCode": "",
"fiatCurrencyCode": "",
"fiatCurrencyAmount": "",
"paymentMethod": "",
"countryCode": "",
"countrySubdivisionCode": "",
"sandboxMode": "",
"urlForSignature": ""
}
},
"result": {
"initFiatOnRampResult": {
"onRampUrl": "",
"onRampTransactionId": "",
"onRampUrlSignature": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Init generic OTP
Source: https://docs.turnkey.com/api-reference/activities/init-generic-otp
Initiate a generic OTP activity.
Enum options: `ACTIVITY_TYPE_INIT_OTP_V2`
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.
Whether to send OTP via SMS or email. Possible values: OTP\_TYPE\_SMS, OTP\_TYPE\_EMAIL
Email or phone number to send the OTP code to
Optional length of the OTP code. Default = 9
The name of the application. This field is required and will be used in email notifications if an email template is not provided.
emailCustomization field
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
smsCustomization field
Template containing references to .OtpCode i.e Your OTP is \{\{.OtpCode}}
Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
Optional custom email address from which to send the OTP email
Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)
Optional custom email address to use as reply-to
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The initOtpIntentV2 object
Whether to send OTP via SMS or email. Possible values: OTP\_TYPE\_SMS, OTP\_TYPE\_EMAIL
Email or phone number to send the OTP code to
Optional length of the OTP code. Default = 9
The name of the application. This field is required and will be used in email notifications if an email template is not provided.
emailCustomization field
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
smsCustomization field
Template containing references to .OtpCode i.e Your OTP is \{\{.OtpCode}}
Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
Optional custom email address from which to send the OTP email
Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)
Optional custom email address to use as reply-to
The result of the activity
The initOtpResult object
Unique identifier for an OTP authentication
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/init_otp \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_INIT_OTP_V2",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"otpType": "",
"contact": "",
"otpLength": "",
"appName": "",
"emailCustomization": {
"logoUrl": "",
"magicLinkTemplate": "",
"templateVariables": "",
"templateId": ""
},
"smsCustomization": {
"template": ""
},
"userIdentifier": "",
"sendFromEmailAddress": "",
"alphanumeric": "",
"sendFromEmailSenderName": "",
"expirationSeconds": "",
"replyToEmailAddress": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().initOtp({
otpType: " (Whether to send OTP via SMS or email. Possible values: OTP_TYPE_SMS, OTP_TYPE_EMAIL)",
contact: " (Email or phone number to send the OTP code to)",
otpLength: 0 // Optional length of the OTP code. Default = 9,
appName: " (The name of the application. This field is required and will be used in email notifications if an email template is not provided.)",
emailCustomization: { // emailCustomization field,
logoUrl: " (A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.)",
magicLinkTemplate: " (A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.)",
templateVariables: " (JSON object containing key/value pairs to be used with custom templates.)",
templateId: " (Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.)",
},
smsCustomization: { // smsCustomization field,
template: " (Template containing references to .OtpCode i.e Your OTP is {{.OtpCode}})",
},
userIdentifier: " (Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.)",
sendFromEmailAddress: " (Optional custom email address from which to send the OTP email)",
alphanumeric: true // Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true,
sendFromEmailSenderName: " (Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications')",
expirationSeconds: " (Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes))",
replyToEmailAddress: " (Optional custom email address to use as reply-to)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_INIT_OTP_V2",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"initOtpIntentV2": {
"otpType": "",
"contact": "",
"otpLength": "",
"appName": "",
"emailCustomization": {
"logoUrl": "",
"magicLinkTemplate": "",
"templateVariables": "",
"templateId": ""
},
"smsCustomization": {
"template": ""
},
"userIdentifier": "",
"sendFromEmailAddress": "",
"alphanumeric": "",
"sendFromEmailSenderName": "",
"expirationSeconds": "",
"replyToEmailAddress": ""
}
},
"result": {
"initOtpResult": {
"otpId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Init import private key
Source: https://docs.turnkey.com/api-reference/activities/init-import-private-key
Initialize a new private key import.
Enum options: `ACTIVITY_TYPE_INIT_IMPORT_PRIVATE_KEY`
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 ID of the User importing a Private Key.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The initImportPrivateKeyIntent object
The ID of the User importing a Private Key.
The result of the activity
The initImportPrivateKeyResult object
Import bundle containing a public key and signature to use for importing client data.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/init_import_private_key \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_INIT_IMPORT_PRIVATE_KEY",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"userId": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().initImportPrivateKey({
userId: " (The ID of the User importing a Private Key.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_INIT_IMPORT_PRIVATE_KEY",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"initImportPrivateKeyIntent": {
"userId": ""
}
},
"result": {
"initImportPrivateKeyResult": {
"importBundle": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Init import wallet
Source: https://docs.turnkey.com/api-reference/activities/init-import-wallet
Initialize a new wallet import.
Enum options: `ACTIVITY_TYPE_INIT_IMPORT_WALLET`
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 ID of the User importing a Wallet.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The initImportWalletIntent object
The ID of the User importing a Wallet.
The result of the activity
The initImportWalletResult object
Import bundle containing a public key and signature to use for importing client data.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/init_import_wallet \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_INIT_IMPORT_WALLET",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"userId": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().initImportWallet({
userId: " (The ID of the User importing a Wallet.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_INIT_IMPORT_WALLET",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"initImportWalletIntent": {
"userId": ""
}
},
"result": {
"initImportWalletResult": {
"importBundle": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Init OTP auth
Source: https://docs.turnkey.com/api-reference/activities/init-otp-auth
Initiate an OTP auth activity.
Enum options: `ACTIVITY_TYPE_INIT_OTP_AUTH_V3`
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.
Whether to send OTP via SMS or email. Possible values: OTP\_TYPE\_SMS, OTP\_TYPE\_EMAIL
Email or phone number to send the OTP code to
Optional length of the OTP code. Default = 9
The name of the application. This field is required and will be used in email notifications if an email template is not provided.
emailCustomization field
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
smsCustomization field
Template containing references to .OtpCode i.e Your OTP is \{\{.OtpCode}}
Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
Optional custom email address from which to send the OTP email
Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)
Optional custom email address to use as reply-to
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The initOtpAuthIntentV3 object
Whether to send OTP via SMS or email. Possible values: OTP\_TYPE\_SMS, OTP\_TYPE\_EMAIL
Email or phone number to send the OTP code to
Optional length of the OTP code. Default = 9
The name of the application. This field is required and will be used in email notifications if an email template is not provided.
emailCustomization field
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
smsCustomization field
Template containing references to .OtpCode i.e Your OTP is \{\{.OtpCode}}
Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
Optional custom email address from which to send the OTP email
Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)
Optional custom email address to use as reply-to
The result of the activity
The initOtpAuthResultV2 object
Unique identifier for an OTP authentication
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/init_otp_auth \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_INIT_OTP_AUTH_V3",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"otpType": "",
"contact": "",
"otpLength": "",
"appName": "",
"emailCustomization": {
"logoUrl": "",
"magicLinkTemplate": "",
"templateVariables": "",
"templateId": ""
},
"smsCustomization": {
"template": ""
},
"userIdentifier": "",
"sendFromEmailAddress": "",
"alphanumeric": "",
"sendFromEmailSenderName": "",
"expirationSeconds": "",
"replyToEmailAddress": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().initOtpAuth({
otpType: " (Whether to send OTP via SMS or email. Possible values: OTP_TYPE_SMS, OTP_TYPE_EMAIL)",
contact: " (Email or phone number to send the OTP code to)",
otpLength: 0 // Optional length of the OTP code. Default = 9,
appName: " (The name of the application. This field is required and will be used in email notifications if an email template is not provided.)",
emailCustomization: { // emailCustomization field,
logoUrl: " (A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.)",
magicLinkTemplate: " (A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.)",
templateVariables: " (JSON object containing key/value pairs to be used with custom templates.)",
templateId: " (Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.)",
},
smsCustomization: { // smsCustomization field,
template: " (Template containing references to .OtpCode i.e Your OTP is {{.OtpCode}})",
},
userIdentifier: " (Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.)",
sendFromEmailAddress: " (Optional custom email address from which to send the OTP email)",
alphanumeric: true // Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true,
sendFromEmailSenderName: " (Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications')",
expirationSeconds: " (Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes))",
replyToEmailAddress: " (Optional custom email address to use as reply-to)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_INIT_OTP_AUTH_V3",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"initOtpAuthIntentV3": {
"otpType": "",
"contact": "",
"otpLength": "",
"appName": "",
"emailCustomization": {
"logoUrl": "",
"magicLinkTemplate": "",
"templateVariables": "",
"templateId": ""
},
"smsCustomization": {
"template": ""
},
"userIdentifier": "",
"sendFromEmailAddress": "",
"alphanumeric": "",
"sendFromEmailSenderName": "",
"expirationSeconds": "",
"replyToEmailAddress": ""
}
},
"result": {
"initOtpAuthResultV2": {
"otpId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Login with a stamp
Source: https://docs.turnkey.com/api-reference/activities/login-with-a-stamp
Create a session for a user through stamping client side (API key, wallet client, or passkey client).
Enum options: `ACTIVITY_TYPE_STAMP_LOGIN`
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.
Client-side public key generated by the user, which will be conditionally added to org data based on the passkey stamp associated with this request
Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated Login API keys
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The stampLoginIntent object
Client-side public key generated by the user, which will be conditionally added to org data based on the passkey stamp associated with this request
Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated Login API keys
The result of the activity
The stampLoginResult object
Signed JWT containing an expiry, public key, session type, user id, and organization id
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/stamp_login \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_STAMP_LOGIN",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"publicKey": "",
"expirationSeconds": "",
"invalidateExisting": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().stampLogin({
publicKey: " (Client-side public key generated by the user, which will be conditionally added to org data based on the passkey stamp associated with this request)",
expirationSeconds: " (Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.)",
invalidateExisting: true // Invalidate all other previously generated Login API keys
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_STAMP_LOGIN",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"stampLoginIntent": {
"publicKey": "",
"expirationSeconds": "",
"invalidateExisting": ""
}
},
"result": {
"stampLoginResult": {
"session": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Login with Oauth
Source: https://docs.turnkey.com/api-reference/activities/login-with-oauth
Create an Oauth session for a user.
Enum options: `ACTIVITY_TYPE_OAUTH_LOGIN`
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.
Base64 encoded OIDC token
Client-side public key generated by the user, which will be conditionally added to org data based on the validity of the oidc token associated with this request
Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated Login API keys
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The oauthLoginIntent object
Base64 encoded OIDC token
Client-side public key generated by the user, which will be conditionally added to org data based on the validity of the oidc token associated with this request
Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated Login API keys
The result of the activity
The oauthLoginResult object
Signed JWT containing an expiry, public key, session type, user id, and organization id
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/oauth_login \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_OAUTH_LOGIN",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"oidcToken": "",
"publicKey": "",
"expirationSeconds": "",
"invalidateExisting": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().oauthLogin({
oidcToken: " (Base64 encoded OIDC token)",
publicKey: " (Client-side public key generated by the user, which will be conditionally added to org data based on the validity of the oidc token associated with this request)",
expirationSeconds: " (Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.)",
invalidateExisting: true // Invalidate all other previously generated Login API keys
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_OAUTH_LOGIN",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"oauthLoginIntent": {
"oidcToken": "",
"publicKey": "",
"expirationSeconds": "",
"invalidateExisting": ""
}
},
"result": {
"oauthLoginResult": {
"session": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Login with OTP
Source: https://docs.turnkey.com/api-reference/activities/login-with-otp
Create an OTP session for a user.
Enum options: `ACTIVITY_TYPE_OTP_LOGIN`
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.
Signed JWT containing a unique id, expiry, verification type, contact
Client-side public key generated by the user, which will be conditionally added to org data based on the validity of the verification token
Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated Login API keys
clientSignature field
The public component of a cryptographic key pair used to create the signature.
Enum options: `CLIENT_SIGNATURE_SCHEME_API_P256`
The message that was signed.
The cryptographic signature over the message.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The otpLoginIntent object
Signed JWT containing a unique id, expiry, verification type, contact
Client-side public key generated by the user, which will be conditionally added to org data based on the validity of the verification token
Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated Login API keys
clientSignature field
The public component of a cryptographic key pair used to create the signature.
scheme field
Enum options: `CLIENT_SIGNATURE_SCHEME_API_P256`
The message that was signed.
The cryptographic signature over the message.
The result of the activity
The otpLoginResult object
Signed JWT containing an expiry, public key, session type, user id, and organization id
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/otp_login \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_OTP_LOGIN",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"verificationToken": "",
"publicKey": "",
"expirationSeconds": "",
"invalidateExisting": "",
"clientSignature": {
"publicKey": "",
"scheme": "",
"message": "",
"signature": ""
}
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().otpLogin({
verificationToken: " (Signed JWT containing a unique id, expiry, verification type, contact)",
publicKey: " (Client-side public key generated by the user, which will be conditionally added to org data based on the validity of the verification token)",
expirationSeconds: " (Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.)",
invalidateExisting: true // Invalidate all other previously generated Login API keys,
clientSignature: { // clientSignature field,
publicKey: " (The public component of a cryptographic key pair used to create the signature.)",
scheme: "" // scheme field,
message: " (The message that was signed.)",
signature: " (The cryptographic signature over the message.)",
}
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_OTP_LOGIN",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"otpLoginIntent": {
"verificationToken": "",
"publicKey": "",
"expirationSeconds": "",
"invalidateExisting": "",
"clientSignature": {
"publicKey": "",
"scheme": "",
"message": "",
"signature": ""
}
}
},
"result": {
"otpLoginResult": {
"session": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Oauth
Source: https://docs.turnkey.com/api-reference/activities/oauth
Authenticate a user with an OIDC token (Oauth).
Enum options: `ACTIVITY_TYPE_OAUTH`
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.
Base64 encoded OIDC token
Client-side public key generated by the user, to which the oauth bundle (credentials) will be encrypted.
Optional human-readable name for an API Key. If none provided, default to Oauth - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated Oauth API keys
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The oauthIntent object
Base64 encoded OIDC token
Client-side public key generated by the user, to which the oauth bundle (credentials) will be encrypted.
Optional human-readable name for an API Key. If none provided, default to Oauth - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated Oauth API keys
The result of the activity
The oauthResult object
Unique identifier for the authenticating User.
Unique identifier for the created API key.
HPKE encrypted credential bundle
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/oauth \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_OAUTH",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"oidcToken": "",
"targetPublicKey": "",
"apiKeyName": "",
"expirationSeconds": "",
"invalidateExisting": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().oauth({
oidcToken: " (Base64 encoded OIDC token)",
targetPublicKey: " (Client-side public key generated by the user, to which the oauth bundle (credentials) will be encrypted.)",
apiKeyName: " (Optional human-readable name for an API Key. If none provided, default to Oauth - )",
expirationSeconds: " (Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.)",
invalidateExisting: true // Invalidate all other previously generated Oauth API keys
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_OAUTH",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"oauthIntent": {
"oidcToken": "",
"targetPublicKey": "",
"apiKeyName": "",
"expirationSeconds": "",
"invalidateExisting": ""
}
},
"result": {
"oauthResult": {
"userId": "",
"apiKeyId": "",
"credentialBundle": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# OAuth 2.0 authentication
Source: https://docs.turnkey.com/api-reference/activities/oauth-20-authentication
Authenticate a user with an OAuth 2.0 provider and receive an OIDC token to use with the LoginWithOAuth or CreateSubOrganization activities
Enum options: `ACTIVITY_TYPE_OAUTH2_AUTHENTICATE`
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 OAuth 2.0 credential id whose client\_id and client\_secret will be used in the OAuth 2.0 flow
The auth\_code provided by the OAuth 2.0 provider to the end user to be exchanged for a Bearer token in the OAuth 2.0 flow
The URI the user is redirected to after they have authenticated with the OAuth 2.0 provider
The code verifier used by OAuth 2.0 PKCE providers
An optional nonce used by the client to prevent replay/substitution of an ID token
An optional P256 public key to which, if provided, the bearer token will be encrypted and returned via the `encrypted_bearer_token` claim of the OIDC Token
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The oauth2AuthenticateIntent object
The OAuth 2.0 credential id whose client\_id and client\_secret will be used in the OAuth 2.0 flow
The auth\_code provided by the OAuth 2.0 provider to the end user to be exchanged for a Bearer token in the OAuth 2.0 flow
The URI the user is redirected to after they have authenticated with the OAuth 2.0 provider
The code verifier used by OAuth 2.0 PKCE providers
An optional nonce used by the client to prevent replay/substitution of an ID token
An optional P256 public key to which, if provided, the bearer token will be encrypted and returned via the `encrypted_bearer_token` claim of the OIDC Token
The result of the activity
The oauth2AuthenticateResult object
Base64 encoded OIDC token issued by Turnkey to be used with the LoginWithOAuth activity
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/oauth2_authenticate \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_OAUTH2_AUTHENTICATE",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"oauth2CredentialId": "",
"authCode": "",
"redirectUri": "",
"codeVerifier": "",
"nonce": "",
"bearerTokenTargetPublicKey": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().oauth2Authenticate({
oauth2CredentialId: " (The OAuth 2.0 credential id whose client_id and client_secret will be used in the OAuth 2.0 flow)",
authCode: " (The auth_code provided by the OAuth 2.0 provider to the end user to be exchanged for a Bearer token in the OAuth 2.0 flow)",
redirectUri: " (The URI the user is redirected to after they have authenticated with the OAuth 2.0 provider)",
codeVerifier: " (The code verifier used by OAuth 2.0 PKCE providers)",
nonce: " (An optional nonce used by the client to prevent replay/substitution of an ID token)",
bearerTokenTargetPublicKey: " (An optional P256 public key to which, if provided, the bearer token will be encrypted and returned via the `encrypted_bearer_token` claim of the OIDC Token)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_OAUTH2_AUTHENTICATE",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"oauth2AuthenticateIntent": {
"oauth2CredentialId": "",
"authCode": "",
"redirectUri": "",
"codeVerifier": "",
"nonce": "",
"bearerTokenTargetPublicKey": ""
}
},
"result": {
"oauth2AuthenticateResult": {
"oidcToken": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# OTP auth
Source: https://docs.turnkey.com/api-reference/activities/otp-auth
Authenticate a user with an OTP code sent via email or SMS.
Enum options: `ACTIVITY_TYPE_OTP_AUTH`
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.
ID representing the result of an init OTP activity.
OTP sent out to a user's contact (email or SMS)
Client-side public key generated by the user, to which the OTP bundle (credentials) will be encrypted.
Optional human-readable name for an API Key. If none provided, default to OTP Auth - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated OTP Auth API keys
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The otpAuthIntent object
ID representing the result of an init OTP activity.
OTP sent out to a user's contact (email or SMS)
Client-side public key generated by the user, to which the OTP bundle (credentials) will be encrypted.
Optional human-readable name for an API Key. If none provided, default to OTP Auth - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated OTP Auth API keys
The result of the activity
The otpAuthResult object
Unique identifier for the authenticating User.
Unique identifier for the created API key.
HPKE encrypted credential bundle
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/otp_auth \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_OTP_AUTH",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"otpId": "",
"otpCode": "",
"targetPublicKey": "",
"apiKeyName": "",
"expirationSeconds": "",
"invalidateExisting": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().otpAuth({
otpId: " (ID representing the result of an init OTP activity.)",
otpCode: " (OTP sent out to a user's contact (email or SMS))",
targetPublicKey: " (Client-side public key generated by the user, to which the OTP bundle (credentials) will be encrypted.)",
apiKeyName: " (Optional human-readable name for an API Key. If none provided, default to OTP Auth - )",
expirationSeconds: " (Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.)",
invalidateExisting: true // Invalidate all other previously generated OTP Auth API keys
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_OTP_AUTH",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"otpAuthIntent": {
"otpId": "",
"otpCode": "",
"targetPublicKey": "",
"apiKeyName": "",
"expirationSeconds": "",
"invalidateExisting": ""
}
},
"result": {
"otpAuthResult": {
"userId": "",
"apiKeyId": "",
"credentialBundle": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Activities
Source: https://docs.turnkey.com/api-reference/activities/overview
Activities are requests to securely execute a workload in Turnkey.
# What are activities?
Activities (also called [submissions](/developer-reference/api-overview/submissions)) are requests to create, modify, or use resources within Turnkey.
Submission endpoints are always prefixed with `/public/v1/submit`.
* **Policy Enforcement:** Activities are subject to consensus or condition enforcement via the policy engine.
* **Optimistic Execution:** Activities are executed optimistically synchronous—if possible, the request completes synchronously; otherwise, it falls back to asynchronous processing.
* **Activity Status:**
* `COMPLETED`: The activity was successful and the `result` field is populated.
* `FAILED`: The activity failed and the `failure` field contains the reason.
* `CONSENSUS_NEEDED`: More signatures are required to process the request.
* `PENDING`: The request is processing asynchronously.
* **Approval expiration:** Activities do not expire. However, approvals expire 24 hours after the first vote if consensus is not reached, and must be re-submitted while the activity remains in ACTIVITY\_STATUS\_CONSENSUS\_NEEDED.
* **Status Updates:** You can get updates by re-submitting the request (idempotent) or polling `get_activity` with the activity ID.
* **Idempotency:** The API is idempotent—identical requests (same POST body) return the same activity. To generate a new activity, change the `timestampMs` value in your request.
# Perform email auth
Source: https://docs.turnkey.com/api-reference/activities/perform-email-auth
Authenticate a user via email.
Enum options: `ACTIVITY_TYPE_EMAIL_AUTH_V3`
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.
Email of the authenticating user.
Client-side public key generated by the user, to which the email auth bundle (credentials) will be encrypted.
Optional human-readable name for an API Key. If none provided, default to Email Auth - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
emailCustomization field
The name of the application. This field is required and will be used in email notifications if an email template is not provided.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
Invalidate all other previously generated Email Auth API keys
Optional custom email address from which to send the email
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Optional custom email address to use as reply-to
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The emailAuthIntentV3 object
Email of the authenticating user.
Client-side public key generated by the user, to which the email auth bundle (credentials) will be encrypted.
Optional human-readable name for an API Key. If none provided, default to Email Auth - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
emailCustomization field
The name of the application. This field is required and will be used in email notifications if an email template is not provided.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
Invalidate all other previously generated Email Auth API keys
Optional custom email address from which to send the email
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Optional custom email address to use as reply-to
The result of the activity
The emailAuthResult object
Unique identifier for the authenticating User.
Unique identifier for the created API key.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/email_auth \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_EMAIL_AUTH_V3",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"email": "",
"targetPublicKey": "",
"apiKeyName": "",
"expirationSeconds": "",
"emailCustomization": {
"appName": "",
"logoUrl": "",
"magicLinkTemplate": "",
"templateVariables": "",
"templateId": ""
},
"invalidateExisting": "",
"sendFromEmailAddress": "",
"sendFromEmailSenderName": "",
"replyToEmailAddress": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().emailAuth({
email: " (Email of the authenticating user.)",
targetPublicKey: " (Client-side public key generated by the user, to which the email auth bundle (credentials) will be encrypted.)",
apiKeyName: " (Optional human-readable name for an API Key. If none provided, default to Email Auth - )",
expirationSeconds: " (Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.)",
emailCustomization: { // emailCustomization field,
appName: " (The name of the application. This field is required and will be used in email notifications if an email template is not provided.)",
logoUrl: " (A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.)",
magicLinkTemplate: " (A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.)",
templateVariables: " (JSON object containing key/value pairs to be used with custom templates.)",
templateId: " (Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.)",
},
invalidateExisting: true // Invalidate all other previously generated Email Auth API keys,
sendFromEmailAddress: " (Optional custom email address from which to send the email)",
sendFromEmailSenderName: " (Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications')",
replyToEmailAddress: " (Optional custom email address to use as reply-to)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_EMAIL_AUTH_V3",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"emailAuthIntentV3": {
"email": "",
"targetPublicKey": "",
"apiKeyName": "",
"expirationSeconds": "",
"emailCustomization": {
"appName": "",
"logoUrl": "",
"magicLinkTemplate": "",
"templateVariables": "",
"templateId": ""
},
"invalidateExisting": "",
"sendFromEmailAddress": "",
"sendFromEmailSenderName": "",
"replyToEmailAddress": ""
}
},
"result": {
"emailAuthResult": {
"userId": "",
"apiKeyId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Recover a user
Source: https://docs.turnkey.com/api-reference/activities/recover-a-user
Complete the process of recovering a user by adding an authenticator.
Enum options: `ACTIVITY_TYPE_RECOVER_USER`
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.
authenticator field
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
Unique identifier for the user performing recovery.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The recoverUserIntent object
authenticator field
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
Unique identifier for the user performing recovery.
The result of the activity
The recoverUserResult object
ID of the authenticator created.
item field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/recover_user \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_RECOVER_USER",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"authenticator": {
"authenticatorName": "",
"challenge": "",
"attestation": {
"credentialId": "",
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
]
}
},
"userId": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().recoverUser({
authenticator: { // authenticator field,
authenticatorName: " (Human-readable name for an Authenticator.)",
challenge: " (Challenge presented for authentication purposes.)",
attestation: { // attestation field,
credentialId: " (The cbor encoded then base64 url encoded id of the credential.)",
clientDataJson: " (A base64 url encoded payload containing metadata about the signing context and the challenge.)",
attestationObject: " (A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.)",
transports: "" // The type of authenticator transports.,
},
},
userId: " (Unique identifier for the user performing recovery.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_RECOVER_USER",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"recoverUserIntent": {
"authenticator": {
"authenticatorName": "",
"challenge": "",
"attestation": {
"credentialId": "",
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
]
}
},
"userId": ""
}
},
"result": {
"recoverUserResult": {
"authenticatorId": [
""
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Reject activity
Source: https://docs.turnkey.com/api-reference/activities/reject-activity
Reject an activity.
Enum options: `ACTIVITY_TYPE_REJECT_ACTIVITY`
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.
An artifact verifying a User's action.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
ACTIVITY\_STATUS\_REJECTED
The activity type
The intent of the activity
The rejectActivityIntent object
An artifact verifying a User's action.
The result of the activity
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/reject_activity \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_REJECT_ACTIVITY",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"fingerprint": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().rejectActivity({
fingerprint: " (An artifact verifying a User's action.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_REJECT_ACTIVITY",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"rejectActivityIntent": {
"fingerprint": ""
}
},
"result": {},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Remove organization feature
Source: https://docs.turnkey.com/api-reference/activities/remove-organization-feature
Remove an organization feature. This activity must be approved by the current root quorum.
Enum options: `ACTIVITY_TYPE_REMOVE_ORGANIZATION_FEATURE`
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.
Enum options: `FEATURE_NAME_ROOT_USER_EMAIL_RECOVERY`, `FEATURE_NAME_WEBAUTHN_ORIGINS`, `FEATURE_NAME_EMAIL_AUTH`, `FEATURE_NAME_EMAIL_RECOVERY`, `FEATURE_NAME_WEBHOOK`, `FEATURE_NAME_SMS_AUTH`, `FEATURE_NAME_OTP_EMAIL_AUTH`, `FEATURE_NAME_AUTH_PROXY`
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The removeOrganizationFeatureIntent object
name field
Enum options: `FEATURE_NAME_ROOT_USER_EMAIL_RECOVERY`, `FEATURE_NAME_WEBAUTHN_ORIGINS`, `FEATURE_NAME_EMAIL_AUTH`, `FEATURE_NAME_EMAIL_RECOVERY`, `FEATURE_NAME_WEBHOOK`, `FEATURE_NAME_SMS_AUTH`, `FEATURE_NAME_OTP_EMAIL_AUTH`, `FEATURE_NAME_AUTH_PROXY`
The result of the activity
The removeOrganizationFeatureResult object
Resulting list of organization features.
name field
Enum options: `FEATURE_NAME_ROOT_USER_EMAIL_RECOVERY`, `FEATURE_NAME_WEBAUTHN_ORIGINS`, `FEATURE_NAME_EMAIL_AUTH`, `FEATURE_NAME_EMAIL_RECOVERY`, `FEATURE_NAME_WEBHOOK`, `FEATURE_NAME_SMS_AUTH`, `FEATURE_NAME_OTP_EMAIL_AUTH`, `FEATURE_NAME_AUTH_PROXY`
value field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/remove_organization_feature \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_REMOVE_ORGANIZATION_FEATURE",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"name": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().removeOrganizationFeature({
name: "" // name field
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_REMOVE_ORGANIZATION_FEATURE",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"removeOrganizationFeatureIntent": {
"name": ""
}
},
"result": {
"removeOrganizationFeatureResult": {
"features": [
{
"name": "",
"value": ""
}
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Set organization feature
Source: https://docs.turnkey.com/api-reference/activities/set-organization-feature
Set an organization feature. This activity must be approved by the current root quorum.
Enum options: `ACTIVITY_TYPE_SET_ORGANIZATION_FEATURE`
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.
Enum options: `FEATURE_NAME_ROOT_USER_EMAIL_RECOVERY`, `FEATURE_NAME_WEBAUTHN_ORIGINS`, `FEATURE_NAME_EMAIL_AUTH`, `FEATURE_NAME_EMAIL_RECOVERY`, `FEATURE_NAME_WEBHOOK`, `FEATURE_NAME_SMS_AUTH`, `FEATURE_NAME_OTP_EMAIL_AUTH`, `FEATURE_NAME_AUTH_PROXY`
Optional value for the feature. Will override existing values if feature is already set.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The setOrganizationFeatureIntent object
name field
Enum options: `FEATURE_NAME_ROOT_USER_EMAIL_RECOVERY`, `FEATURE_NAME_WEBAUTHN_ORIGINS`, `FEATURE_NAME_EMAIL_AUTH`, `FEATURE_NAME_EMAIL_RECOVERY`, `FEATURE_NAME_WEBHOOK`, `FEATURE_NAME_SMS_AUTH`, `FEATURE_NAME_OTP_EMAIL_AUTH`, `FEATURE_NAME_AUTH_PROXY`
Optional value for the feature. Will override existing values if feature is already set.
The result of the activity
The setOrganizationFeatureResult object
Resulting list of organization features.
name field
Enum options: `FEATURE_NAME_ROOT_USER_EMAIL_RECOVERY`, `FEATURE_NAME_WEBAUTHN_ORIGINS`, `FEATURE_NAME_EMAIL_AUTH`, `FEATURE_NAME_EMAIL_RECOVERY`, `FEATURE_NAME_WEBHOOK`, `FEATURE_NAME_SMS_AUTH`, `FEATURE_NAME_OTP_EMAIL_AUTH`, `FEATURE_NAME_AUTH_PROXY`
value field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/set_organization_feature \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_SET_ORGANIZATION_FEATURE",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"name": "",
"value": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().setOrganizationFeature({
name: "" // name field,
value: " (Optional value for the feature. Will override existing values if feature is already set.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_SET_ORGANIZATION_FEATURE",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"setOrganizationFeatureIntent": {
"name": "",
"value": ""
}
},
"result": {
"setOrganizationFeatureResult": {
"features": [
{
"name": "",
"value": ""
}
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Sign raw payload
Source: https://docs.turnkey.com/api-reference/activities/sign-raw-payload
Sign a raw payload.
Enum options: `ACTIVITY_TYPE_SIGN_RAW_PAYLOAD_V2`
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.
A Wallet account address, Private Key address, or Private Key identifier.
Raw unsigned payload to be signed.
Enum options: `PAYLOAD_ENCODING_HEXADECIMAL`, `PAYLOAD_ENCODING_TEXT_UTF8`, `PAYLOAD_ENCODING_EIP712`, `PAYLOAD_ENCODING_EIP7702_AUTHORIZATION`
Enum options: `HASH_FUNCTION_NO_OP`, `HASH_FUNCTION_SHA256`, `HASH_FUNCTION_KECCAK256`, `HASH_FUNCTION_NOT_APPLICABLE`
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The signRawPayloadIntentV2 object
A Wallet account address, Private Key address, or Private Key identifier.
Raw unsigned payload to be signed.
encoding field
Enum options: `PAYLOAD_ENCODING_HEXADECIMAL`, `PAYLOAD_ENCODING_TEXT_UTF8`, `PAYLOAD_ENCODING_EIP712`, `PAYLOAD_ENCODING_EIP7702_AUTHORIZATION`
hashFunction field
Enum options: `HASH_FUNCTION_NO_OP`, `HASH_FUNCTION_SHA256`, `HASH_FUNCTION_KECCAK256`, `HASH_FUNCTION_NOT_APPLICABLE`
The result of the activity
The signRawPayloadResult object
Component of an ECSDA signature.
Component of an ECSDA signature.
Component of an ECSDA signature.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/sign_raw_payload \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_SIGN_RAW_PAYLOAD_V2",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"signWith": "",
"payload": "",
"encoding": "",
"hashFunction": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().signRawPayload({
signWith: " (A Wallet account address, Private Key address, or Private Key identifier.)",
payload: " (Raw unsigned payload to be signed.)",
encoding: "" // encoding field,
hashFunction: "" // hashFunction field
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_SIGN_RAW_PAYLOAD_V2",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"signRawPayloadIntentV2": {
"signWith": "",
"payload": "",
"encoding": "",
"hashFunction": ""
}
},
"result": {
"signRawPayloadResult": {
"r": "",
"s": "",
"v": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Sign raw payloads
Source: https://docs.turnkey.com/api-reference/activities/sign-raw-payloads
Sign multiple raw payloads with the same signing parameters.
Enum options: `ACTIVITY_TYPE_SIGN_RAW_PAYLOADS`
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.
A Wallet account address, Private Key address, or Private Key identifier.
An array of raw unsigned payloads to be signed.
Array item type: string
item field
Enum options: `PAYLOAD_ENCODING_HEXADECIMAL`, `PAYLOAD_ENCODING_TEXT_UTF8`, `PAYLOAD_ENCODING_EIP712`, `PAYLOAD_ENCODING_EIP7702_AUTHORIZATION`
Enum options: `HASH_FUNCTION_NO_OP`, `HASH_FUNCTION_SHA256`, `HASH_FUNCTION_KECCAK256`, `HASH_FUNCTION_NOT_APPLICABLE`
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The signRawPayloadsIntent object
A Wallet account address, Private Key address, or Private Key identifier.
An array of raw unsigned payloads to be signed.
item field
encoding field
Enum options: `PAYLOAD_ENCODING_HEXADECIMAL`, `PAYLOAD_ENCODING_TEXT_UTF8`, `PAYLOAD_ENCODING_EIP712`, `PAYLOAD_ENCODING_EIP7702_AUTHORIZATION`
hashFunction field
Enum options: `HASH_FUNCTION_NO_OP`, `HASH_FUNCTION_SHA256`, `HASH_FUNCTION_KECCAK256`, `HASH_FUNCTION_NOT_APPLICABLE`
The result of the activity
The signRawPayloadsResult object
signatures field
Component of an ECSDA signature.
Component of an ECSDA signature.
Component of an ECSDA signature.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/sign_raw_payloads \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_SIGN_RAW_PAYLOADS",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"signWith": "",
"payloads": [
""
],
"encoding": "",
"hashFunction": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().signRawPayloads({
signWith: " (A Wallet account address, Private Key address, or Private Key identifier.)",
payloads: [""] // An array of raw unsigned payloads to be signed.,
encoding: "" // encoding field,
hashFunction: "" // hashFunction field
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_SIGN_RAW_PAYLOADS",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"signRawPayloadsIntent": {
"signWith": "",
"payloads": [
""
],
"encoding": "",
"hashFunction": ""
}
},
"result": {
"signRawPayloadsResult": {
"signatures": [
{
"r": "",
"s": "",
"v": ""
}
]
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Sign transaction
Source: https://docs.turnkey.com/api-reference/activities/sign-transaction
Sign a transaction.
Enum options: `ACTIVITY_TYPE_SIGN_TRANSACTION_V2`
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.
A Wallet account address, Private Key address, or Private Key identifier.
Raw unsigned transaction to be signed
Enum options: `TRANSACTION_TYPE_ETHEREUM`, `TRANSACTION_TYPE_SOLANA`, `TRANSACTION_TYPE_TRON`, `TRANSACTION_TYPE_BITCOIN`, `TRANSACTION_TYPE_TEMPO`
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The signTransactionIntentV2 object
A Wallet account address, Private Key address, or Private Key identifier.
Raw unsigned transaction to be signed
type field
Enum options: `TRANSACTION_TYPE_ETHEREUM`, `TRANSACTION_TYPE_SOLANA`, `TRANSACTION_TYPE_TRON`, `TRANSACTION_TYPE_BITCOIN`, `TRANSACTION_TYPE_TEMPO`
The result of the activity
The signTransactionResult object
signedTransaction field
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/sign_transaction \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_SIGN_TRANSACTION_V2",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"signWith": "",
"unsignedTransaction": "",
"type": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().signTransaction({
signWith: " (A Wallet account address, Private Key address, or Private Key identifier.)",
unsignedTransaction: " (Raw unsigned transaction to be signed)",
type: "" // type field
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_SIGN_TRANSACTION_V2",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"signTransactionIntentV2": {
"signWith": "",
"unsignedTransaction": "",
"type": ""
}
},
"result": {
"signTransactionResult": {
"signedTransaction": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Update a Fiat On Ramp Credential
Source: https://docs.turnkey.com/api-reference/activities/update-a-fiat-on-ramp-credential
Update a fiat on ramp provider credential
Enum options: `ACTIVITY_TYPE_UPDATE_FIAT_ON_RAMP_CREDENTIAL`
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 ID of the fiat on-ramp credential to update
Enum options: `FIAT_ON_RAMP_PROVIDER_COINBASE`, `FIAT_ON_RAMP_PROVIDER_MOONPAY`
Project ID for the on-ramp provider. Some providers, like Coinbase, require this additional identifier.
Publishable API key for the on-ramp provider
Secret API key for the on-ramp provider encrypted to our on-ramp encryption public key
Private API key for the on-ramp provider encrypted to our on-ramp encryption public key. Some providers, like Coinbase, require this additional key.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The updateFiatOnRampCredentialIntent object
The ID of the fiat on-ramp credential to update
onrampProvider field
Enum options: `FIAT_ON_RAMP_PROVIDER_COINBASE`, `FIAT_ON_RAMP_PROVIDER_MOONPAY`
Project ID for the on-ramp provider. Some providers, like Coinbase, require this additional identifier.
Publishable API key for the on-ramp provider
Secret API key for the on-ramp provider encrypted to our on-ramp encryption public key
Private API key for the on-ramp provider encrypted to our on-ramp encryption public key. Some providers, like Coinbase, require this additional key.
The result of the activity
The updateFiatOnRampCredentialResult object
Unique identifier of the Fiat On-Ramp credential that was updated
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/update_fiat_on_ramp_credential \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_UPDATE_FIAT_ON_RAMP_CREDENTIAL",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"fiatOnrampCredentialId": "",
"onrampProvider": "",
"projectId": "",
"publishableApiKey": "",
"encryptedSecretApiKey": "",
"encryptedPrivateApiKey": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().updateFiatOnRampCredential({
fiatOnrampCredentialId: " (The ID of the fiat on-ramp credential to update)",
onrampProvider: "" // onrampProvider field,
projectId: " (Project ID for the on-ramp provider. Some providers, like Coinbase, require this additional identifier.)",
publishableApiKey: " (Publishable API key for the on-ramp provider)",
encryptedSecretApiKey: " (Secret API key for the on-ramp provider encrypted to our on-ramp encryption public key)",
encryptedPrivateApiKey: " (Private API key for the on-ramp provider encrypted to our on-ramp encryption public key. Some providers, like Coinbase, require this additional key.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_UPDATE_FIAT_ON_RAMP_CREDENTIAL",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"updateFiatOnRampCredentialIntent": {
"fiatOnrampCredentialId": "",
"onrampProvider": "",
"projectId": "",
"publishableApiKey": "",
"encryptedSecretApiKey": "",
"encryptedPrivateApiKey": ""
}
},
"result": {
"updateFiatOnRampCredentialResult": {
"fiatOnRampCredentialId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Update an OAuth 2.0 Credential
Source: https://docs.turnkey.com/api-reference/activities/update-an-oauth-20-credential
Update an OAuth 2.0 provider credential
Enum options: `ACTIVITY_TYPE_UPDATE_OAUTH2_CREDENTIAL`
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 ID of the OAuth 2.0 credential to update
Enum options: `OAUTH2_PROVIDER_X`, `OAUTH2_PROVIDER_DISCORD`
The Client ID issued by the OAuth 2.0 provider
The client secret issued by the OAuth 2.0 provider encrypted to the TLS Fetcher quorum key
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The updateOauth2CredentialIntent object
The ID of the OAuth 2.0 credential to update
provider field
Enum options: `OAUTH2_PROVIDER_X`, `OAUTH2_PROVIDER_DISCORD`
The Client ID issued by the OAuth 2.0 provider
The client secret issued by the OAuth 2.0 provider encrypted to the TLS Fetcher quorum key
The result of the activity
The updateOauth2CredentialResult object
Unique identifier of the OAuth 2.0 credential that was updated
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/update_oauth2_credential \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_UPDATE_OAUTH2_CREDENTIAL",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"oauth2CredentialId": "",
"provider": "",
"clientId": "",
"encryptedClientSecret": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().updateOauth2Credential({
oauth2CredentialId: " (The ID of the OAuth 2.0 credential to update)",
provider: "" // provider field,
clientId: " (The Client ID issued by the OAuth 2.0 provider)",
encryptedClientSecret: " (The client secret issued by the OAuth 2.0 provider encrypted to the TLS Fetcher quorum key)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_UPDATE_OAUTH2_CREDENTIAL",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"updateOauth2CredentialIntent": {
"oauth2CredentialId": "",
"provider": "",
"clientId": "",
"encryptedClientSecret": ""
}
},
"result": {
"updateOauth2CredentialResult": {
"oauth2CredentialId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Update policy
Source: https://docs.turnkey.com/api-reference/activities/update-policy
Update an existing policy.
Enum options: `ACTIVITY_TYPE_UPDATE_POLICY_V2`
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.
Unique identifier for a given Policy.
Human-readable name for a Policy.
Enum options: `EFFECT_ALLOW`, `EFFECT_DENY`
The condition expression that triggers the Effect (optional).
The consensus expression that triggers the Effect (optional).
Accompanying notes for a Policy (optional).
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The updatePolicyIntentV2 object
Unique identifier for a given Policy.
Human-readable name for a Policy.
policyEffect field
Enum options: `EFFECT_ALLOW`, `EFFECT_DENY`
The condition expression that triggers the Effect (optional).
The consensus expression that triggers the Effect (optional).
Accompanying notes for a Policy (optional).
The result of the activity
The updatePolicyResultV2 object
Unique identifier for a given Policy.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/update_policy \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_UPDATE_POLICY_V2",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"policyId": "",
"policyName": "",
"policyEffect": "",
"policyCondition": "",
"policyConsensus": "",
"policyNotes": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().updatePolicy({
policyId: " (Unique identifier for a given Policy.)",
policyName: " (Human-readable name for a Policy.)",
policyEffect: "" // policyEffect field,
policyCondition: " (The condition expression that triggers the Effect (optional).)",
policyConsensus: " (The consensus expression that triggers the Effect (optional).)",
policyNotes: " (Accompanying notes for a Policy (optional).)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_UPDATE_POLICY_V2",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"updatePolicyIntentV2": {
"policyId": "",
"policyName": "",
"policyEffect": "",
"policyCondition": "",
"policyConsensus": "",
"policyNotes": ""
}
},
"result": {
"updatePolicyResultV2": {
"policyId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Update private key tag
Source: https://docs.turnkey.com/api-reference/activities/update-private-key-tag
Update human-readable name or associated private keys. Note that this activity is atomic: all of the updates will succeed at once, or all of them will fail.
Enum options: `ACTIVITY_TYPE_UPDATE_PRIVATE_KEY_TAG`
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.
Unique identifier for a given Private Key Tag.
The new, human-readable name for the tag with the given ID.
A list of Private Keys IDs to add this tag to.
Array item type: string
item field
A list of Private Key IDs to remove this tag from.
Array item type: string
item field
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The updatePrivateKeyTagIntent object
Unique identifier for a given Private Key Tag.
The new, human-readable name for the tag with the given ID.
A list of Private Keys IDs to add this tag to.
item field
A list of Private Key IDs to remove this tag from.
item field
The result of the activity
The updatePrivateKeyTagResult object
Unique identifier for a given Private Key Tag.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/update_private_key_tag \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_UPDATE_PRIVATE_KEY_TAG",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"privateKeyTagId": "",
"newPrivateKeyTagName": "",
"addPrivateKeyIds": [
""
],
"removePrivateKeyIds": [
""
]
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().updatePrivateKeyTag({
privateKeyTagId: " (Unique identifier for a given Private Key Tag.)",
newPrivateKeyTagName: " (The new, human-readable name for the tag with the given ID.)",
addPrivateKeyIds: [""] // A list of Private Keys IDs to add this tag to.,
removePrivateKeyIds: [""] // A list of Private Key IDs to remove this tag from.
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_UPDATE_PRIVATE_KEY_TAG",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"updatePrivateKeyTagIntent": {
"privateKeyTagId": "",
"newPrivateKeyTagName": "",
"addPrivateKeyIds": [
""
],
"removePrivateKeyIds": [
""
]
}
},
"result": {
"updatePrivateKeyTagResult": {
"privateKeyTagId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Update root quorum
Source: https://docs.turnkey.com/api-reference/activities/update-root-quorum
Set the threshold and members of the root quorum. This activity must be approved by the current root quorum.
Enum options: `ACTIVITY_TYPE_UPDATE_ROOT_QUORUM`
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 threshold of unique approvals to reach quorum.
The unique identifiers of users who comprise the quorum set.
Array item type: string
item field
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The updateRootQuorumIntent object
The threshold of unique approvals to reach quorum.
The unique identifiers of users who comprise the quorum set.
item field
The result of the activity
The updateRootQuorumResult object
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/update_root_quorum \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_UPDATE_ROOT_QUORUM",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"threshold": "",
"userIds": [
""
]
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().updateRootQuorum({
threshold: 0 // The threshold of unique approvals to reach quorum.,
userIds: [""] // The unique identifiers of users who comprise the quorum set.
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_UPDATE_ROOT_QUORUM",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"updateRootQuorumIntent": {
"threshold": "",
"userIds": [
""
]
}
},
"result": {
"updateRootQuorumResult": {}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Update user
Source: https://docs.turnkey.com/api-reference/activities/update-user
Update a user in an existing organization.
Enum options: `ACTIVITY_TYPE_UPDATE_USER`
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.
Unique identifier for a given User.
Human-readable name for a User.
The user's email address.
An updated list of User Tags to apply to this User. This field, if not needed, should be an empty array in your request body.
Array item type: string
item field
The user's phone number in E.164 format e.g. +13214567890
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The updateUserIntent object
Unique identifier for a given User.
Human-readable name for a User.
The user's email address.
An updated list of User Tags to apply to this User. This field, if not needed, should be an empty array in your request body.
item field
The user's phone number in E.164 format e.g. +13214567890
The result of the activity
The updateUserResult object
A User ID.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/update_user \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_UPDATE_USER",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"userId": "",
"userName": "",
"userEmail": "",
"userTagIds": [
""
],
"userPhoneNumber": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().updateUser({
userId: " (Unique identifier for a given User.)",
userName: " (Human-readable name for a User.)",
userEmail: " (The user's email address.)",
userTagIds: [""] // An updated list of User Tags to apply to this User. This field, if not needed, should be an empty array in your request body.,
userPhoneNumber: " (The user's phone number in E.164 format e.g. +13214567890)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_UPDATE_USER",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"updateUserIntent": {
"userId": "",
"userName": "",
"userEmail": "",
"userTagIds": [
""
],
"userPhoneNumber": ""
}
},
"result": {
"updateUserResult": {
"userId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Update user tag
Source: https://docs.turnkey.com/api-reference/activities/update-user-tag
Update human-readable name or associated users. Note that this activity is atomic: all of the updates will succeed at once, or all of them will fail.
Enum options: `ACTIVITY_TYPE_UPDATE_USER_TAG`
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.
Unique identifier for a given User Tag.
The new, human-readable name for the tag with the given ID.
A list of User IDs to add this tag to.
Array item type: string
item field
A list of User IDs to remove this tag from.
Array item type: string
item field
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The updateUserTagIntent object
Unique identifier for a given User Tag.
The new, human-readable name for the tag with the given ID.
A list of User IDs to add this tag to.
item field
A list of User IDs to remove this tag from.
item field
The result of the activity
The updateUserTagResult object
Unique identifier for a given User Tag.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/update_user_tag \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_UPDATE_USER_TAG",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"userTagId": "",
"newUserTagName": "",
"addUserIds": [
""
],
"removeUserIds": [
""
]
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().updateUserTag({
userTagId: " (Unique identifier for a given User Tag.)",
newUserTagName: " (The new, human-readable name for the tag with the given ID.)",
addUserIds: [""] // A list of User IDs to add this tag to.,
removeUserIds: [""] // A list of User IDs to remove this tag from.
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_UPDATE_USER_TAG",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"updateUserTagIntent": {
"userTagId": "",
"newUserTagName": "",
"addUserIds": [
""
],
"removeUserIds": [
""
]
}
},
"result": {
"updateUserTagResult": {
"userTagId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Update user's email
Source: https://docs.turnkey.com/api-reference/activities/update-users-email
Update a user's email in an existing organization.
Enum options: `ACTIVITY_TYPE_UPDATE_USER_EMAIL`
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.
Unique identifier for a given User.
The user's email address. Setting this to an empty string will remove the user's email.
Signed JWT containing a unique id, expiry, verification type, contact
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The updateUserEmailIntent object
Unique identifier for a given User.
The user's email address. Setting this to an empty string will remove the user's email.
Signed JWT containing a unique id, expiry, verification type, contact
The result of the activity
The updateUserEmailResult object
Unique identifier of the User whose email was updated.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/update_user_email \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_UPDATE_USER_EMAIL",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"userId": "",
"userEmail": "",
"verificationToken": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().updateUserEmail({
userId: " (Unique identifier for a given User.)",
userEmail: " (The user's email address. Setting this to an empty string will remove the user's email.)",
verificationToken: " (Signed JWT containing a unique id, expiry, verification type, contact)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_UPDATE_USER_EMAIL",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"updateUserEmailIntent": {
"userId": "",
"userEmail": "",
"verificationToken": ""
}
},
"result": {
"updateUserEmailResult": {
"userId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Update user's name
Source: https://docs.turnkey.com/api-reference/activities/update-users-name
Update a user's name in an existing organization.
Enum options: `ACTIVITY_TYPE_UPDATE_USER_NAME`
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.
Unique identifier for a given User.
Human-readable name for a User.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The updateUserNameIntent object
Unique identifier for a given User.
Human-readable name for a User.
The result of the activity
The updateUserNameResult object
Unique identifier of the User whose name was updated.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/update_user_name \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_UPDATE_USER_NAME",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"userId": "",
"userName": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().updateUserName({
userId: " (Unique identifier for a given User.)",
userName: " (Human-readable name for a User.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_UPDATE_USER_NAME",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"updateUserNameIntent": {
"userId": "",
"userName": ""
}
},
"result": {
"updateUserNameResult": {
"userId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Update user's phone number
Source: https://docs.turnkey.com/api-reference/activities/update-users-phone-number
Update a user's phone number in an existing organization.
Enum options: `ACTIVITY_TYPE_UPDATE_USER_PHONE_NUMBER`
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.
Unique identifier for a given User.
The user's phone number in E.164 format e.g. +13214567890. Setting this to an empty string will remove the user's phone number.
Signed JWT containing a unique id, expiry, verification type, contact
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The updateUserPhoneNumberIntent object
Unique identifier for a given User.
The user's phone number in E.164 format e.g. +13214567890. Setting this to an empty string will remove the user's phone number.
Signed JWT containing a unique id, expiry, verification type, contact
The result of the activity
The updateUserPhoneNumberResult object
Unique identifier of the User whose phone number was updated.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/update_user_phone_number \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_UPDATE_USER_PHONE_NUMBER",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"userId": "",
"userPhoneNumber": "",
"verificationToken": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().updateUserPhoneNumber({
userId: " (Unique identifier for a given User.)",
userPhoneNumber: " (The user's phone number in E.164 format e.g. +13214567890. Setting this to an empty string will remove the user's phone number.)",
verificationToken: " (Signed JWT containing a unique id, expiry, verification type, contact)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_UPDATE_USER_PHONE_NUMBER",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"updateUserPhoneNumberIntent": {
"userId": "",
"userPhoneNumber": "",
"verificationToken": ""
}
},
"result": {
"updateUserPhoneNumberResult": {
"userId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Update wallet
Source: https://docs.turnkey.com/api-reference/activities/update-wallet
Update a wallet for an organization.
Enum options: `ACTIVITY_TYPE_UPDATE_WALLET`
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.
Unique identifier for a given Wallet.
Human-readable name for a Wallet.
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The updateWalletIntent object
Unique identifier for a given Wallet.
Human-readable name for a Wallet.
The result of the activity
The updateWalletResult object
A Wallet ID.
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/update_wallet \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_UPDATE_WALLET",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"walletId": "",
"walletName": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().updateWallet({
walletId: " (Unique identifier for a given Wallet.)",
walletName: " (Human-readable name for a Wallet.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_UPDATE_WALLET",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"updateWalletIntent": {
"walletId": "",
"walletName": ""
}
},
"result": {
"updateWalletResult": {
"walletId": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# Verify generic OTP
Source: https://docs.turnkey.com/api-reference/activities/verify-generic-otp
Verify a generic OTP.
Enum options: `ACTIVITY_TYPE_VERIFY_OTP`
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.
ID representing the result of an init OTP activity.
OTP sent out to a user's contact (email or SMS)
Expiration window (in seconds) indicating how long the verification token is valid for. If not provided, a default of 1 hour will be used. Maximum value is 86400 seconds (24 hours)
Client-side public key generated by the user, which will be added to the JWT response and verified in subsequent requests via a client proof signature
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
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The activity status
The activity type
The intent of the activity
The verifyOtpIntent object
ID representing the result of an init OTP activity.
OTP sent out to a user's contact (email or SMS)
Expiration window (in seconds) indicating how long the verification token is valid for. If not provided, a default of 1 hour will be used. Maximum value is 86400 seconds (24 hours)
Client-side public key generated by the user, which will be added to the JWT response and verified in subsequent requests via a client proof signature
The result of the activity
The verifyOtpResult object
Signed JWT containing a unique id, expiry, verification type, contact. Verification status of a user is updated when the token is consumed (in OTP\_LOGIN requests)
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User's action.
Whether the activity can be approved.
Whether the activity can be rejected.
The creation timestamp.
The last update timestamp.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/verify_otp \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_VERIFY_OTP",
"timestampMs": " (e.g. 1746736509954)",
"organizationId": " (Your Organization ID)",
"parameters": {
"otpId": "",
"otpCode": "",
"expirationSeconds": "",
"publicKey": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().verifyOtp({
otpId: " (ID representing the result of an init OTP activity.)",
otpCode: " (OTP sent out to a user's contact (email or SMS))",
expirationSeconds: " (Expiration window (in seconds) indicating how long the verification token is valid for. If not provided, a default of 1 hour will be used. Maximum value is 86400 seconds (24 hours))",
publicKey: " (Client-side public key generated by the user, which will be added to the JWT response and verified in subsequent requests via a client proof signature)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_VERIFY_OTP",
"organizationId": "",
"timestampMs": " (e.g. 1746736509954)",
"result": {
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"verifyOtpIntent": {
"otpId": "",
"otpCode": "",
"expirationSeconds": "",
"publicKey": ""
}
},
"result": {
"verifyOtpResult": {
"verificationToken": ""
}
},
"votes": "",
"fingerprint": "",
"canApprove": "",
"canReject": "",
"createdAt": "",
"updatedAt": ""
}
}
}
}
```
# API reference
Source: https://docs.turnkey.com/api-reference/overview
Review our [API Introduction](/developer-reference/api-overview/intro) to get started.
# Get a specific boot proof
Source: https://docs.turnkey.com/api-reference/queries/get-a-specific-boot-proof
Get the boot proof for a given ephemeral key.
Unique identifier for a given Organization.
Hex encoded ephemeral public key.
A successful response returns the following fields:
bootProof field
The hex encoded Ephemeral Public Key.
The DER encoded COSE Sign1 struct Attestation doc.
The borsch serialized base64 encoded Manifest.
The borsch serialized base64 encoded Manifest Envelope.
The label under which the enclave app was deployed.
Name of the enclave app
Owner of the app i.e. 'tkhq'
createdAt field
seconds field
nanos field
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_boot_proof \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"ephemeralKey": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getBootProof({
organizationId: " (Unique identifier for a given Organization.)",
ephemeralKey: " (Hex encoded ephemeral public key.)"
});
```
```json 200 theme={"system"}
{
"bootProof": {
"ephemeralPublicKeyHex": "",
"awsAttestationDocB64": "",
"qosManifestB64": "",
"qosManifestEnvelopeB64": "",
"deploymentLabel": "",
"enclaveApp": "",
"owner": "",
"createdAt": {
"seconds": "",
"nanos": ""
}
}
}
```
# Get activity
Source: https://docs.turnkey.com/api-reference/queries/get-activity
Get details about an activity.
Unique identifier for a given organization.
Unique identifier for a given activity object.
A successful response returns the following fields:
activity field
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
status field
Enum options: `ACTIVITY_STATUS_CREATED`, `ACTIVITY_STATUS_PENDING`, `ACTIVITY_STATUS_COMPLETED`, `ACTIVITY_STATUS_FAILED`, `ACTIVITY_STATUS_CONSENSUS_NEEDED`, `ACTIVITY_STATUS_REJECTED`
type field
Enum options: `ACTIVITY_TYPE_CREATE_API_KEYS`, `ACTIVITY_TYPE_CREATE_USERS`, `ACTIVITY_TYPE_CREATE_PRIVATE_KEYS`, `ACTIVITY_TYPE_SIGN_RAW_PAYLOAD`, `ACTIVITY_TYPE_CREATE_INVITATIONS`, `ACTIVITY_TYPE_ACCEPT_INVITATION`, `ACTIVITY_TYPE_CREATE_POLICY`, `ACTIVITY_TYPE_DISABLE_PRIVATE_KEY`, `ACTIVITY_TYPE_DELETE_USERS`, `ACTIVITY_TYPE_DELETE_API_KEYS`, `ACTIVITY_TYPE_DELETE_INVITATION`, `ACTIVITY_TYPE_DELETE_ORGANIZATION`, `ACTIVITY_TYPE_DELETE_POLICY`, `ACTIVITY_TYPE_CREATE_USER_TAG`, `ACTIVITY_TYPE_DELETE_USER_TAGS`, `ACTIVITY_TYPE_CREATE_ORGANIZATION`, `ACTIVITY_TYPE_SIGN_TRANSACTION`, `ACTIVITY_TYPE_APPROVE_ACTIVITY`, `ACTIVITY_TYPE_REJECT_ACTIVITY`, `ACTIVITY_TYPE_DELETE_AUTHENTICATORS`, `ACTIVITY_TYPE_CREATE_AUTHENTICATORS`, `ACTIVITY_TYPE_CREATE_PRIVATE_KEY_TAG`, `ACTIVITY_TYPE_DELETE_PRIVATE_KEY_TAGS`, `ACTIVITY_TYPE_SET_PAYMENT_METHOD`, `ACTIVITY_TYPE_ACTIVATE_BILLING_TIER`, `ACTIVITY_TYPE_DELETE_PAYMENT_METHOD`, `ACTIVITY_TYPE_CREATE_POLICY_V2`, `ACTIVITY_TYPE_CREATE_POLICY_V3`, `ACTIVITY_TYPE_CREATE_API_ONLY_USERS`, `ACTIVITY_TYPE_UPDATE_ROOT_QUORUM`, `ACTIVITY_TYPE_UPDATE_USER_TAG`, `ACTIVITY_TYPE_UPDATE_PRIVATE_KEY_TAG`, `ACTIVITY_TYPE_CREATE_AUTHENTICATORS_V2`, `ACTIVITY_TYPE_CREATE_ORGANIZATION_V2`, `ACTIVITY_TYPE_CREATE_USERS_V2`, `ACTIVITY_TYPE_ACCEPT_INVITATION_V2`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V2`, `ACTIVITY_TYPE_UPDATE_ALLOWED_ORIGINS`, `ACTIVITY_TYPE_CREATE_PRIVATE_KEYS_V2`, `ACTIVITY_TYPE_UPDATE_USER`, `ACTIVITY_TYPE_UPDATE_POLICY`, `ACTIVITY_TYPE_SET_PAYMENT_METHOD_V2`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V3`, `ACTIVITY_TYPE_CREATE_WALLET`, `ACTIVITY_TYPE_CREATE_WALLET_ACCOUNTS`, `ACTIVITY_TYPE_INIT_USER_EMAIL_RECOVERY`, `ACTIVITY_TYPE_RECOVER_USER`, `ACTIVITY_TYPE_SET_ORGANIZATION_FEATURE`, `ACTIVITY_TYPE_REMOVE_ORGANIZATION_FEATURE`, `ACTIVITY_TYPE_SIGN_RAW_PAYLOAD_V2`, `ACTIVITY_TYPE_SIGN_TRANSACTION_V2`, `ACTIVITY_TYPE_EXPORT_PRIVATE_KEY`, `ACTIVITY_TYPE_EXPORT_WALLET`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V4`, `ACTIVITY_TYPE_EMAIL_AUTH`, `ACTIVITY_TYPE_EXPORT_WALLET_ACCOUNT`, `ACTIVITY_TYPE_INIT_IMPORT_WALLET`, `ACTIVITY_TYPE_IMPORT_WALLET`, `ACTIVITY_TYPE_INIT_IMPORT_PRIVATE_KEY`, `ACTIVITY_TYPE_IMPORT_PRIVATE_KEY`, `ACTIVITY_TYPE_CREATE_POLICIES`, `ACTIVITY_TYPE_SIGN_RAW_PAYLOADS`, `ACTIVITY_TYPE_CREATE_READ_ONLY_SESSION`, `ACTIVITY_TYPE_CREATE_OAUTH_PROVIDERS`, `ACTIVITY_TYPE_DELETE_OAUTH_PROVIDERS`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V5`, `ACTIVITY_TYPE_OAUTH`, `ACTIVITY_TYPE_CREATE_API_KEYS_V2`, `ACTIVITY_TYPE_CREATE_READ_WRITE_SESSION`, `ACTIVITY_TYPE_EMAIL_AUTH_V2`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V6`, `ACTIVITY_TYPE_DELETE_PRIVATE_KEYS`, `ACTIVITY_TYPE_DELETE_WALLETS`, `ACTIVITY_TYPE_CREATE_READ_WRITE_SESSION_V2`, `ACTIVITY_TYPE_DELETE_SUB_ORGANIZATION`, `ACTIVITY_TYPE_INIT_OTP_AUTH`, `ACTIVITY_TYPE_OTP_AUTH`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V7`, `ACTIVITY_TYPE_UPDATE_WALLET`, `ACTIVITY_TYPE_UPDATE_POLICY_V2`, `ACTIVITY_TYPE_CREATE_USERS_V3`, `ACTIVITY_TYPE_INIT_OTP_AUTH_V2`, `ACTIVITY_TYPE_INIT_OTP`, `ACTIVITY_TYPE_VERIFY_OTP`, `ACTIVITY_TYPE_OTP_LOGIN`, `ACTIVITY_TYPE_STAMP_LOGIN`, `ACTIVITY_TYPE_OAUTH_LOGIN`, `ACTIVITY_TYPE_UPDATE_USER_NAME`, `ACTIVITY_TYPE_UPDATE_USER_EMAIL`, `ACTIVITY_TYPE_UPDATE_USER_PHONE_NUMBER`, `ACTIVITY_TYPE_INIT_FIAT_ON_RAMP`, `ACTIVITY_TYPE_CREATE_SMART_CONTRACT_INTERFACE`, `ACTIVITY_TYPE_DELETE_SMART_CONTRACT_INTERFACE`, `ACTIVITY_TYPE_ENABLE_AUTH_PROXY`, `ACTIVITY_TYPE_DISABLE_AUTH_PROXY`, `ACTIVITY_TYPE_UPDATE_AUTH_PROXY_CONFIG`, `ACTIVITY_TYPE_CREATE_OAUTH2_CREDENTIAL`, `ACTIVITY_TYPE_UPDATE_OAUTH2_CREDENTIAL`, `ACTIVITY_TYPE_DELETE_OAUTH2_CREDENTIAL`, `ACTIVITY_TYPE_OAUTH2_AUTHENTICATE`, `ACTIVITY_TYPE_DELETE_WALLET_ACCOUNTS`, `ACTIVITY_TYPE_DELETE_POLICIES`, `ACTIVITY_TYPE_ETH_SEND_RAW_TRANSACTION`, `ACTIVITY_TYPE_ETH_SEND_TRANSACTION`, `ACTIVITY_TYPE_CREATE_FIAT_ON_RAMP_CREDENTIAL`, `ACTIVITY_TYPE_UPDATE_FIAT_ON_RAMP_CREDENTIAL`, `ACTIVITY_TYPE_DELETE_FIAT_ON_RAMP_CREDENTIAL`, `ACTIVITY_TYPE_EMAIL_AUTH_V3`, `ACTIVITY_TYPE_INIT_USER_EMAIL_RECOVERY_V2`, `ACTIVITY_TYPE_INIT_OTP_AUTH_V3`, `ACTIVITY_TYPE_INIT_OTP_V2`, `ACTIVITY_TYPE_UPSERT_GAS_USAGE_CONFIG`, `ACTIVITY_TYPE_CREATE_TVC_APP`, `ACTIVITY_TYPE_CREATE_TVC_DEPLOYMENT`, `ACTIVITY_TYPE_CREATE_TVC_MANIFEST_APPROVALS`, `ACTIVITY_TYPE_SOL_SEND_TRANSACTION`
intent field
createOrganizationIntent field
Human-readable name for an Organization.
The root user's email address.
rootAuthenticator field
Human-readable name for an Authenticator.
Unique identifier for a given User.
attestation field
id field
type field
Enum options: `public-key`
rawId field
authenticatorAttachment field
Enum options: `cross-platform`, `platform`
response field
clientDataJson field
attestationObject field
transports field
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
authenticatorAttachment field
Enum options: `cross-platform`, `platform`
clientExtensionResults field
appid field
appidExclude field
credProps field
rk field
Challenge presented for authentication purposes.
Unique identifier for the root user object.
createAuthenticatorsIntent field
A list of Authenticators.
Human-readable name for an Authenticator.
Unique identifier for a given User.
attestation field
id field
type field
Enum options: `public-key`
rawId field
authenticatorAttachment field
Enum options: `cross-platform`, `platform`
response field
clientDataJson field
attestationObject field
transports field
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
authenticatorAttachment field
Enum options: `cross-platform`, `platform`
clientExtensionResults field
appid field
appidExclude field
credProps field
rk field
Challenge presented for authentication purposes.
Unique identifier for a given User.
createUsersIntent field
A list of Users.
Human-readable name for a User.
The user's email address.
accessType field
Enum options: `ACCESS_TYPE_WEB`, `ACCESS_TYPE_API`, `ACCESS_TYPE_ALL`
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Unique identifier for a given User.
attestation field
id field
type field
Enum options: `public-key`
rawId field
authenticatorAttachment field
Enum options: `cross-platform`, `platform`
response field
clientDataJson field
attestationObject field
transports field
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
authenticatorAttachment field
Enum options: `cross-platform`, `platform`
clientExtensionResults field
appid field
appidExclude field
credProps field
rk field
Challenge presented for authentication purposes.
A list of User Tag IDs. This field, if not needed, should be an empty array in your request body.
item field
createPrivateKeysIntent field
A list of Private Keys.
Human-readable name for a Private Key.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
A list of Private Key Tag IDs. This field, if not needed, should be an empty array in your request body.
item field
Cryptocurrency-specific formats for a derived address (e.g., Ethereum).
item field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
signRawPayloadIntent field
Unique identifier for a given Private Key.
Raw unsigned payload to be signed.
encoding field
Enum options: `PAYLOAD_ENCODING_HEXADECIMAL`, `PAYLOAD_ENCODING_TEXT_UTF8`, `PAYLOAD_ENCODING_EIP712`, `PAYLOAD_ENCODING_EIP7702_AUTHORIZATION`
hashFunction field
Enum options: `HASH_FUNCTION_NO_OP`, `HASH_FUNCTION_SHA256`, `HASH_FUNCTION_KECCAK256`, `HASH_FUNCTION_NOT_APPLICABLE`
createInvitationsIntent field
A list of Invitations.
The name of the intended Invitation recipient.
The email address of the intended Invitation recipient.
A list of tags assigned to the Invitation recipient. This field, if not needed, should be an empty array in your request body.
item field
accessType field
Enum options: `ACCESS_TYPE_WEB`, `ACCESS_TYPE_API`, `ACCESS_TYPE_ALL`
Unique identifier for the Sender of an Invitation.
acceptInvitationIntent field
Unique identifier for a given Invitation object.
Unique identifier for a given User.
authenticator field
Human-readable name for an Authenticator.
Unique identifier for a given User.
attestation field
id field
type field
Enum options: `public-key`
rawId field
authenticatorAttachment field
Enum options: `cross-platform`, `platform`
response field
clientDataJson field
attestationObject field
transports field
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
authenticatorAttachment field
Enum options: `cross-platform`, `platform`
clientExtensionResults field
appid field
appidExclude field
credProps field
rk field
Challenge presented for authentication purposes.
createPolicyIntent field
Human-readable name for a Policy.
A list of simple functions each including a subject, target and boolean. See Policy Engine Language section for additional details.
subject field
operator field
Enum options: `OPERATOR_EQUAL`, `OPERATOR_MORE_THAN`, `OPERATOR_MORE_THAN_OR_EQUAL`, `OPERATOR_LESS_THAN`, `OPERATOR_LESS_THAN_OR_EQUAL`, `OPERATOR_CONTAINS`, `OPERATOR_NOT_EQUAL`, `OPERATOR_IN`, `OPERATOR_NOT_IN`, `OPERATOR_CONTAINS_ONE`, `OPERATOR_CONTAINS_ALL`
target field
effect field
Enum options: `EFFECT_ALLOW`, `EFFECT_DENY`
notes field
disablePrivateKeyIntent field
Unique identifier for a given Private Key.
deleteUsersIntent field
A list of User IDs.
item field
deleteAuthenticatorsIntent field
Unique identifier for a given User.
A list of Authenticator IDs.
item field
deleteInvitationIntent field
Unique identifier for a given Invitation object.
deleteOrganizationIntent field
Unique identifier for a given Organization.
deletePolicyIntent field
Unique identifier for a given Policy.
createUserTagIntent field
Human-readable name for a User Tag.
A list of User IDs.
item field
deleteUserTagsIntent field
A list of User Tag IDs.
item field
signTransactionIntent field
Unique identifier for a given Private Key.
Raw unsigned transaction to be signed by a particular Private Key.
type field
Enum options: `TRANSACTION_TYPE_ETHEREUM`, `TRANSACTION_TYPE_SOLANA`, `TRANSACTION_TYPE_TRON`, `TRANSACTION_TYPE_BITCOIN`, `TRANSACTION_TYPE_TEMPO`
createApiKeysIntent field
A list of API Keys.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Optional window (in seconds) indicating how long the API Key should last.
Unique identifier for a given User.
deleteApiKeysIntent field
Unique identifier for a given User.
A list of API Key IDs.
item field
approveActivityIntent field
An artifact verifying a User's action.
rejectActivityIntent field
An artifact verifying a User's action.
createPrivateKeyTagIntent field
Human-readable name for a Private Key Tag.
A list of Private Key IDs.
item field
deletePrivateKeyTagsIntent field
A list of Private Key Tag IDs.
item field
createPolicyIntentV2 field
Human-readable name for a Policy.
A list of simple functions each including a subject, target and boolean. See Policy Engine Language section for additional details.
subject field
operator field
Enum options: `OPERATOR_EQUAL`, `OPERATOR_MORE_THAN`, `OPERATOR_MORE_THAN_OR_EQUAL`, `OPERATOR_LESS_THAN`, `OPERATOR_LESS_THAN_OR_EQUAL`, `OPERATOR_CONTAINS`, `OPERATOR_NOT_EQUAL`, `OPERATOR_IN`, `OPERATOR_NOT_IN`, `OPERATOR_CONTAINS_ONE`, `OPERATOR_CONTAINS_ALL`
targets field
item field
effect field
Enum options: `EFFECT_ALLOW`, `EFFECT_DENY`
notes field
setPaymentMethodIntent field
The account number of the customer's credit card.
The verification digits of the customer's credit card.
The month that the credit card expires.
The year that the credit card expires.
The email that will receive invoices for the credit card.
The name associated with the credit card.
activateBillingTierIntent field
The product that the customer wants to subscribe to.
deletePaymentMethodIntent field
The payment method that the customer wants to remove.
createPolicyIntentV3 field
Human-readable name for a Policy.
effect field
Enum options: `EFFECT_ALLOW`, `EFFECT_DENY`
The condition expression that triggers the Effect
The consensus expression that triggers the Effect
Notes for a Policy.
createApiOnlyUsersIntent field
A list of API-only Users to create.
The name of the new API-only User.
The email address for this API-only User (optional).
A list of tags assigned to the new API-only User. This field, if not needed, should be an empty array in your request body.
item field
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Optional window (in seconds) indicating how long the API Key should last.
updateRootQuorumIntent field
The threshold of unique approvals to reach quorum.
The unique identifiers of users who comprise the quorum set.
item field
updateUserTagIntent field
Unique identifier for a given User Tag.
The new, human-readable name for the tag with the given ID.
A list of User IDs to add this tag to.
item field
A list of User IDs to remove this tag from.
item field
updatePrivateKeyTagIntent field
Unique identifier for a given Private Key Tag.
The new, human-readable name for the tag with the given ID.
A list of Private Keys IDs to add this tag to.
item field
A list of Private Key IDs to remove this tag from.
item field
createAuthenticatorsIntentV2 field
A list of Authenticators.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
Unique identifier for a given User.
acceptInvitationIntentV2 field
Unique identifier for a given Invitation object.
Unique identifier for a given User.
authenticator field
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
createOrganizationIntentV2 field
Human-readable name for an Organization.
The root user's email address.
rootAuthenticator field
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
Unique identifier for the root user object.
createUsersIntentV2 field
A list of Users.
Human-readable name for a User.
The user's email address.
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
A list of User Tag IDs. This field, if not needed, should be an empty array in your request body.
item field
createSubOrganizationIntent field
Name for this sub-organization
rootAuthenticator field
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
createSubOrganizationIntentV2 field
Name for this sub-organization
Root users to create within this sub-organization
Human-readable name for a User.
The user's email address.
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
updateAllowedOriginsIntent field
Additional origins requests are allowed from besides Turnkey origins
item field
createPrivateKeysIntentV2 field
A list of Private Keys.
Human-readable name for a Private Key.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
A list of Private Key Tag IDs. This field, if not needed, should be an empty array in your request body.
item field
Cryptocurrency-specific formats for a derived address (e.g., Ethereum).
item field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
updateUserIntent field
Unique identifier for a given User.
Human-readable name for a User.
The user's email address.
An updated list of User Tags to apply to this User. This field, if not needed, should be an empty array in your request body.
item field
The user's phone number in E.164 format e.g. +13214567890
updatePolicyIntent field
Unique identifier for a given Policy.
Human-readable name for a Policy.
policyEffect field
Enum options: `EFFECT_ALLOW`, `EFFECT_DENY`
The condition expression that triggers the Effect (optional).
The consensus expression that triggers the Effect (optional).
Accompanying notes for a Policy (optional).
setPaymentMethodIntentV2 field
The id of the payment method that was created clientside.
The email that will receive invoices for the credit card.
The name associated with the credit card.
createSubOrganizationIntentV3 field
Name for this sub-organization
Root users to create within this sub-organization
Human-readable name for a User.
The user's email address.
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
A list of Private Keys.
Human-readable name for a Private Key.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
A list of Private Key Tag IDs. This field, if not needed, should be an empty array in your request body.
item field
Cryptocurrency-specific formats for a derived address (e.g., Ethereum).
item field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
createWalletIntent field
Human-readable name for a Wallet.
A list of wallet Accounts. This field, if not needed, should be an empty array in your request body.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
pathFormat field
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
addressFormat field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24.
createWalletAccountsIntent field
Unique identifier for a given Wallet.
A list of wallet Accounts.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
pathFormat field
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
addressFormat field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
Indicates if the wallet accounts should be persisted. This is helpful if you'd like to see the addresses of different derivation paths without actually creating the accounts. Defaults to true.
initUserEmailRecoveryIntent field
Email of the user starting recovery
Client-side public key generated by the user, to which the recovery bundle will be encrypted.
Expiration window (in seconds) indicating how long the recovery credential is valid for. If not provided, a default of 15 minutes will be used.
emailCustomization field
The name of the application.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
Optional custom email address from which to send the OTP email
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Optional custom email address to use as reply-to
recoverUserIntent field
authenticator field
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
Unique identifier for the user performing recovery.
setOrganizationFeatureIntent field
name field
Enum options: `FEATURE_NAME_ROOT_USER_EMAIL_RECOVERY`, `FEATURE_NAME_WEBAUTHN_ORIGINS`, `FEATURE_NAME_EMAIL_AUTH`, `FEATURE_NAME_EMAIL_RECOVERY`, `FEATURE_NAME_WEBHOOK`, `FEATURE_NAME_SMS_AUTH`, `FEATURE_NAME_OTP_EMAIL_AUTH`, `FEATURE_NAME_AUTH_PROXY`
Optional value for the feature. Will override existing values if feature is already set.
removeOrganizationFeatureIntent field
name field
Enum options: `FEATURE_NAME_ROOT_USER_EMAIL_RECOVERY`, `FEATURE_NAME_WEBAUTHN_ORIGINS`, `FEATURE_NAME_EMAIL_AUTH`, `FEATURE_NAME_EMAIL_RECOVERY`, `FEATURE_NAME_WEBHOOK`, `FEATURE_NAME_SMS_AUTH`, `FEATURE_NAME_OTP_EMAIL_AUTH`, `FEATURE_NAME_AUTH_PROXY`
signRawPayloadIntentV2 field
A Wallet account address, Private Key address, or Private Key identifier.
Raw unsigned payload to be signed.
encoding field
Enum options: `PAYLOAD_ENCODING_HEXADECIMAL`, `PAYLOAD_ENCODING_TEXT_UTF8`, `PAYLOAD_ENCODING_EIP712`, `PAYLOAD_ENCODING_EIP7702_AUTHORIZATION`
hashFunction field
Enum options: `HASH_FUNCTION_NO_OP`, `HASH_FUNCTION_SHA256`, `HASH_FUNCTION_KECCAK256`, `HASH_FUNCTION_NOT_APPLICABLE`
signTransactionIntentV2 field
A Wallet account address, Private Key address, or Private Key identifier.
Raw unsigned transaction to be signed
type field
Enum options: `TRANSACTION_TYPE_ETHEREUM`, `TRANSACTION_TYPE_SOLANA`, `TRANSACTION_TYPE_TRON`, `TRANSACTION_TYPE_BITCOIN`, `TRANSACTION_TYPE_TEMPO`
exportPrivateKeyIntent field
Unique identifier for a given Private Key.
Client-side public key generated by the user, to which the export bundle will be encrypted.
exportWalletIntent field
Unique identifier for a given Wallet.
Client-side public key generated by the user, to which the export bundle will be encrypted.
language field
Enum options: `MNEMONIC_LANGUAGE_ENGLISH`, `MNEMONIC_LANGUAGE_SIMPLIFIED_CHINESE`, `MNEMONIC_LANGUAGE_TRADITIONAL_CHINESE`, `MNEMONIC_LANGUAGE_CZECH`, `MNEMONIC_LANGUAGE_FRENCH`, `MNEMONIC_LANGUAGE_ITALIAN`, `MNEMONIC_LANGUAGE_JAPANESE`, `MNEMONIC_LANGUAGE_KOREAN`, `MNEMONIC_LANGUAGE_SPANISH`
createSubOrganizationIntentV4 field
Name for this sub-organization
Root users to create within this sub-organization
Human-readable name for a User.
The user's email address.
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
wallet field
Human-readable name for a Wallet.
A list of wallet Accounts. This field, if not needed, should be an empty array in your request body.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
pathFormat field
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
addressFormat field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24.
Disable email recovery for the sub-organization
Disable email auth for the sub-organization
emailAuthIntent field
Email of the authenticating user.
Client-side public key generated by the user, to which the email auth bundle (credentials) will be encrypted.
Optional human-readable name for an API Key. If none provided, default to Email Auth - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
emailCustomization field
The name of the application.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
Invalidate all other previously generated Email Auth API keys
Optional custom email address from which to send the email
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Optional custom email address to use as reply-to
exportWalletAccountIntent field
Address to identify Wallet Account.
Client-side public key generated by the user, to which the export bundle will be encrypted.
initImportWalletIntent field
The ID of the User importing a Wallet.
importWalletIntent field
The ID of the User importing a Wallet.
Human-readable name for a Wallet.
Bundle containing a wallet mnemonic encrypted to the enclave's target public key.
A list of wallet Accounts.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
pathFormat field
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
addressFormat field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
initImportPrivateKeyIntent field
The ID of the User importing a Private Key.
importPrivateKeyIntent field
The ID of the User importing a Private Key.
Human-readable name for a Private Key.
Bundle containing a raw private key encrypted to the enclave's target public key.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
Cryptocurrency-specific formats for a derived address (e.g., Ethereum).
item field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
createPoliciesIntent field
An array of policy intents to be created.
Human-readable name for a Policy.
effect field
Enum options: `EFFECT_ALLOW`, `EFFECT_DENY`
The condition expression that triggers the Effect
The consensus expression that triggers the Effect
Notes for a Policy.
signRawPayloadsIntent field
A Wallet account address, Private Key address, or Private Key identifier.
An array of raw unsigned payloads to be signed.
item field
encoding field
Enum options: `PAYLOAD_ENCODING_HEXADECIMAL`, `PAYLOAD_ENCODING_TEXT_UTF8`, `PAYLOAD_ENCODING_EIP712`, `PAYLOAD_ENCODING_EIP7702_AUTHORIZATION`
hashFunction field
Enum options: `HASH_FUNCTION_NO_OP`, `HASH_FUNCTION_SHA256`, `HASH_FUNCTION_KECCAK256`, `HASH_FUNCTION_NOT_APPLICABLE`
createReadOnlySessionIntent field
createOauthProvidersIntent field
The ID of the User to add an Oauth provider to
A list of Oauth providers.
Human-readable name to identify a Provider.
Base64 encoded OIDC token
deleteOauthProvidersIntent field
The ID of the User to remove an Oauth provider from
Unique identifier for a given Provider.
item field
createSubOrganizationIntentV5 field
Name for this sub-organization
Root users to create within this sub-organization
Human-readable name for a User.
The user's email address.
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
Human-readable name to identify a Provider.
Base64 encoded OIDC token
The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
wallet field
Human-readable name for a Wallet.
A list of wallet Accounts. This field, if not needed, should be an empty array in your request body.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
pathFormat field
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
addressFormat field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24.
Disable email recovery for the sub-organization
Disable email auth for the sub-organization
oauthIntent field
Base64 encoded OIDC token
Client-side public key generated by the user, to which the oauth bundle (credentials) will be encrypted.
Optional human-readable name for an API Key. If none provided, default to Oauth - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated Oauth API keys
createApiKeysIntentV2 field
A list of API Keys.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
curveType field
Enum options: `API_KEY_CURVE_P256`, `API_KEY_CURVE_SECP256K1`, `API_KEY_CURVE_ED25519`
Optional window (in seconds) indicating how long the API Key should last.
Unique identifier for a given User.
createReadWriteSessionIntent field
Client-side public key generated by the user, to which the read write session bundle (credentials) will be encrypted.
Email of the user to create a read write session for
Optional human-readable name for an API Key. If none provided, default to Read Write Session - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
emailAuthIntentV2 field
Email of the authenticating user.
Client-side public key generated by the user, to which the email auth bundle (credentials) will be encrypted.
Optional human-readable name for an API Key. If none provided, default to Email Auth - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
emailCustomization field
The name of the application.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
Invalidate all other previously generated Email Auth API keys
Optional custom email address from which to send the email
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Optional custom email address to use as reply-to
createSubOrganizationIntentV6 field
Name for this sub-organization
Root users to create within this sub-organization
Human-readable name for a User.
The user's email address.
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
curveType field
Enum options: `API_KEY_CURVE_P256`, `API_KEY_CURVE_SECP256K1`, `API_KEY_CURVE_ED25519`
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
Human-readable name to identify a Provider.
Base64 encoded OIDC token
The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
wallet field
Human-readable name for a Wallet.
A list of wallet Accounts. This field, if not needed, should be an empty array in your request body.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
pathFormat field
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
addressFormat field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24.
Disable email recovery for the sub-organization
Disable email auth for the sub-organization
deletePrivateKeysIntent field
List of unique identifiers for private keys within an organization
item field
Optional parameter for deleting the private keys, even if any have not been previously exported. If they have been exported, this field is ignored.
deleteWalletsIntent field
List of unique identifiers for wallets within an organization
item field
Optional parameter for deleting the wallets, even if any have not been previously exported. If they have been exported, this field is ignored.
createReadWriteSessionIntentV2 field
Client-side public key generated by the user, to which the read write session bundle (credentials) will be encrypted.
Unique identifier for a given User.
Optional human-readable name for an API Key. If none provided, default to Read Write Session - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated ReadWriteSession API keys
deleteSubOrganizationIntent field
Sub-organization deletion, by default, requires associated wallets and private keys to be exported for security reasons. Set this boolean to true to force sub-organization deletion even if some wallets or private keys within it have not been exported yet. Default: false.
initOtpAuthIntent field
Enum to specifiy whether to send OTP via SMS or email
Email or phone number to send the OTP code to
emailCustomization field
The name of the application.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
smsCustomization field
Template containing references to .OtpCode i.e Your OTP is \{\{.OtpCode}}
Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
Optional custom email address from which to send the OTP email
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Optional custom email address to use as reply-to
otpAuthIntent field
ID representing the result of an init OTP activity.
OTP sent out to a user's contact (email or SMS)
Client-side public key generated by the user, to which the OTP bundle (credentials) will be encrypted.
Optional human-readable name for an API Key. If none provided, default to OTP Auth - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated OTP Auth API keys
createSubOrganizationIntentV7 field
Name for this sub-organization
Root users to create within this sub-organization
Human-readable name for a User.
The user's email address.
The user's phone number in E.164 format e.g. +13214567890
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
curveType field
Enum options: `API_KEY_CURVE_P256`, `API_KEY_CURVE_SECP256K1`, `API_KEY_CURVE_ED25519`
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
Human-readable name to identify a Provider.
Base64 encoded OIDC token
The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
wallet field
Human-readable name for a Wallet.
A list of wallet Accounts. This field, if not needed, should be an empty array in your request body.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
pathFormat field
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
addressFormat field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24.
Disable email recovery for the sub-organization
Disable email auth for the sub-organization
Disable OTP SMS auth for the sub-organization
Disable OTP email auth for the sub-organization
Signed JWT containing a unique id, expiry, verification type, contact
clientSignature field
The public component of a cryptographic key pair used to create the signature.
scheme field
Enum options: `CLIENT_SIGNATURE_SCHEME_API_P256`
The message that was signed.
The cryptographic signature over the message.
updateWalletIntent field
Unique identifier for a given Wallet.
Human-readable name for a Wallet.
updatePolicyIntentV2 field
Unique identifier for a given Policy.
Human-readable name for a Policy.
policyEffect field
Enum options: `EFFECT_ALLOW`, `EFFECT_DENY`
The condition expression that triggers the Effect (optional).
The consensus expression that triggers the Effect (optional).
Accompanying notes for a Policy (optional).
createUsersIntentV3 field
A list of Users.
Human-readable name for a User.
The user's email address.
The user's phone number in E.164 format e.g. +13214567890
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
curveType field
Enum options: `API_KEY_CURVE_P256`, `API_KEY_CURVE_SECP256K1`, `API_KEY_CURVE_ED25519`
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
Human-readable name to identify a Provider.
Base64 encoded OIDC token
A list of User Tag IDs. This field, if not needed, should be an empty array in your request body.
item field
initOtpAuthIntentV2 field
Enum to specifiy whether to send OTP via SMS or email
Email or phone number to send the OTP code to
Optional length of the OTP code. Default = 9
emailCustomization field
The name of the application.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
smsCustomization field
Template containing references to .OtpCode i.e Your OTP is \{\{.OtpCode}}
Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
Optional custom email address from which to send the OTP email
Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Optional custom email address to use as reply-to
initOtpIntent field
Whether to send OTP via SMS or email. Possible values: OTP\_TYPE\_SMS, OTP\_TYPE\_EMAIL
Email or phone number to send the OTP code to
Optional length of the OTP code. Default = 9
emailCustomization field
The name of the application.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
smsCustomization field
Template containing references to .OtpCode i.e Your OTP is \{\{.OtpCode}}
Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
Optional custom email address from which to send the OTP email
Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)
Optional custom email address to use as reply-to
verifyOtpIntent field
ID representing the result of an init OTP activity.
OTP sent out to a user's contact (email or SMS)
Expiration window (in seconds) indicating how long the verification token is valid for. If not provided, a default of 1 hour will be used. Maximum value is 86400 seconds (24 hours)
Client-side public key generated by the user, which will be added to the JWT response and verified in subsequent requests via a client proof signature
otpLoginIntent field
Signed JWT containing a unique id, expiry, verification type, contact
Client-side public key generated by the user, which will be conditionally added to org data based on the validity of the verification token
Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated Login API keys
clientSignature field
The public component of a cryptographic key pair used to create the signature.
scheme field
Enum options: `CLIENT_SIGNATURE_SCHEME_API_P256`
The message that was signed.
The cryptographic signature over the message.
stampLoginIntent field
Client-side public key generated by the user, which will be conditionally added to org data based on the passkey stamp associated with this request
Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated Login API keys
oauthLoginIntent field
Base64 encoded OIDC token
Client-side public key generated by the user, which will be conditionally added to org data based on the validity of the oidc token associated with this request
Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated Login API keys
updateUserNameIntent field
Unique identifier for a given User.
Human-readable name for a User.
updateUserEmailIntent field
Unique identifier for a given User.
The user's email address. Setting this to an empty string will remove the user's email.
Signed JWT containing a unique id, expiry, verification type, contact
updateUserPhoneNumberIntent field
Unique identifier for a given User.
The user's phone number in E.164 format e.g. +13214567890. Setting this to an empty string will remove the user's phone number.
Signed JWT containing a unique id, expiry, verification type, contact
initFiatOnRampIntent field
onrampProvider field
Enum options: `FIAT_ON_RAMP_PROVIDER_COINBASE`, `FIAT_ON_RAMP_PROVIDER_MOONPAY`
Destination wallet address for the buy transaction.
network field
Enum options: `FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_BITCOIN`, `FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_ETHEREUM`, `FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_SOLANA`, `FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_BASE`
cryptoCurrencyCode field
Enum options: `FIAT_ON_RAMP_CRYPTO_CURRENCY_BTC`, `FIAT_ON_RAMP_CRYPTO_CURRENCY_ETH`, `FIAT_ON_RAMP_CRYPTO_CURRENCY_SOL`, `FIAT_ON_RAMP_CRYPTO_CURRENCY_USDC`
fiatCurrencyCode field
Enum options: `FIAT_ON_RAMP_CURRENCY_AUD`, `FIAT_ON_RAMP_CURRENCY_BGN`, `FIAT_ON_RAMP_CURRENCY_BRL`, `FIAT_ON_RAMP_CURRENCY_CAD`, `FIAT_ON_RAMP_CURRENCY_CHF`, `FIAT_ON_RAMP_CURRENCY_COP`, `FIAT_ON_RAMP_CURRENCY_CZK`, `FIAT_ON_RAMP_CURRENCY_DKK`, `FIAT_ON_RAMP_CURRENCY_DOP`, `FIAT_ON_RAMP_CURRENCY_EGP`, `FIAT_ON_RAMP_CURRENCY_EUR`, `FIAT_ON_RAMP_CURRENCY_GBP`, `FIAT_ON_RAMP_CURRENCY_HKD`, `FIAT_ON_RAMP_CURRENCY_IDR`, `FIAT_ON_RAMP_CURRENCY_ILS`, `FIAT_ON_RAMP_CURRENCY_JOD`, `FIAT_ON_RAMP_CURRENCY_KES`, `FIAT_ON_RAMP_CURRENCY_KWD`, `FIAT_ON_RAMP_CURRENCY_LKR`, `FIAT_ON_RAMP_CURRENCY_MXN`, `FIAT_ON_RAMP_CURRENCY_NGN`, `FIAT_ON_RAMP_CURRENCY_NOK`, `FIAT_ON_RAMP_CURRENCY_NZD`, `FIAT_ON_RAMP_CURRENCY_OMR`, `FIAT_ON_RAMP_CURRENCY_PEN`, `FIAT_ON_RAMP_CURRENCY_PLN`, `FIAT_ON_RAMP_CURRENCY_RON`, `FIAT_ON_RAMP_CURRENCY_SEK`, `FIAT_ON_RAMP_CURRENCY_THB`, `FIAT_ON_RAMP_CURRENCY_TRY`, `FIAT_ON_RAMP_CURRENCY_TWD`, `FIAT_ON_RAMP_CURRENCY_USD`, `FIAT_ON_RAMP_CURRENCY_VND`, `FIAT_ON_RAMP_CURRENCY_ZAR`
Specifies a preset fiat amount for the transaction, e.g., '100'. Must be greater than '20'. If not provided, the user will be prompted to enter an amount.
paymentMethod field
Enum options: `FIAT_ON_RAMP_PAYMENT_METHOD_CREDIT_DEBIT_CARD`, `FIAT_ON_RAMP_PAYMENT_METHOD_APPLE_PAY`, `FIAT_ON_RAMP_PAYMENT_METHOD_GBP_BANK_TRANSFER`, `FIAT_ON_RAMP_PAYMENT_METHOD_GBP_OPEN_BANKING_PAYMENT`, `FIAT_ON_RAMP_PAYMENT_METHOD_GOOGLE_PAY`, `FIAT_ON_RAMP_PAYMENT_METHOD_SEPA_BANK_TRANSFER`, `FIAT_ON_RAMP_PAYMENT_METHOD_PIX_INSTANT_PAYMENT`, `FIAT_ON_RAMP_PAYMENT_METHOD_PAYPAL`, `FIAT_ON_RAMP_PAYMENT_METHOD_VENMO`, `FIAT_ON_RAMP_PAYMENT_METHOD_MOONPAY_BALANCE`, `FIAT_ON_RAMP_PAYMENT_METHOD_CRYPTO_ACCOUNT`, `FIAT_ON_RAMP_PAYMENT_METHOD_FIAT_WALLET`, `FIAT_ON_RAMP_PAYMENT_METHOD_ACH_BANK_ACCOUNT`
ISO 3166-1 two-digit country code for Coinbase representing the purchasing user’s country of residence, e.g., US, GB.
ISO 3166-2 two-digit country subdivision code for Coinbase representing the purchasing user’s subdivision of residence within their country, e.g. NY. Required if country\_code=US.
Optional flag to indicate whether to use the sandbox mode to simulate transactions for the on-ramp provider. Default is false.
Optional MoonPay Widget URL to sign when using MoonPay client SDKs with URL Signing enabled.
createSmartContractInterfaceIntent field
Corresponding contract address or program ID
ABI/IDL as a JSON string. Limited to 400kb
type field
Enum options: `SMART_CONTRACT_INTERFACE_TYPE_ETHEREUM`, `SMART_CONTRACT_INTERFACE_TYPE_SOLANA`
Human-readable name for a Smart Contract Interface.
Notes for a Smart Contract Interface.
deleteSmartContractInterfaceIntent field
The ID of a Smart Contract Interface intended for deletion.
enableAuthProxyIntent field
disableAuthProxyIntent field
updateAuthProxyConfigIntent field
Updated list of allowed origins for CORS.
item field
Updated list of allowed proxy authentication methods.
item field
Custom 'from' address for auth-related emails.
Custom reply-to address for auth-related emails.
Template ID for email-auth messages.
Template ID for OTP SMS messages.
emailCustomizationParams field
The name of the application.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
smsCustomizationParams field
Template containing references to .OtpCode i.e Your OTP is \{\{.OtpCode}}
walletKitSettings field
List of enabled social login providers (e.g., 'apple', 'google', 'facebook')
item field
Mapping of social login providers to their Oauth client IDs.
Oauth redirect URL to be used for social login flows.
OTP code lifetime in seconds.
Verification-token lifetime in seconds.
Session lifetime in seconds.
Enable alphanumeric OTP codes.
Desired OTP code length (6–9).
Custom 'from' email sender for auth-related emails.
Verification token required for get account with PII (email/phone number). Default false.
createOauth2CredentialIntent field
provider field
Enum options: `OAUTH2_PROVIDER_X`, `OAUTH2_PROVIDER_DISCORD`
The Client ID issued by the OAuth 2.0 provider
The client secret issued by the OAuth 2.0 provider encrypted to the TLS Fetcher quorum key
updateOauth2CredentialIntent field
The ID of the OAuth 2.0 credential to update
provider field
Enum options: `OAUTH2_PROVIDER_X`, `OAUTH2_PROVIDER_DISCORD`
The Client ID issued by the OAuth 2.0 provider
The client secret issued by the OAuth 2.0 provider encrypted to the TLS Fetcher quorum key
deleteOauth2CredentialIntent field
The ID of the OAuth 2.0 credential to delete
oauth2AuthenticateIntent field
The OAuth 2.0 credential id whose client\_id and client\_secret will be used in the OAuth 2.0 flow
The auth\_code provided by the OAuth 2.0 provider to the end user to be exchanged for a Bearer token in the OAuth 2.0 flow
The URI the user is redirected to after they have authenticated with the OAuth 2.0 provider
The code verifier used by OAuth 2.0 PKCE providers
An optional nonce used by the client to prevent replay/substitution of an ID token
An optional P256 public key to which, if provided, the bearer token will be encrypted and returned via the `encrypted_bearer_token` claim of the OIDC Token
deleteWalletAccountsIntent field
List of unique identifiers for wallet accounts within an organization
item field
Optional parameter for deleting the wallet accounts, even if any have not been previously exported. If they have been exported, this field is ignored.
deletePoliciesIntent field
List of unique identifiers for policies within an organization
item field
ethSendRawTransactionIntent field
The raw, signed transaction to be sent.
CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet).
Enum options: `eip155:1`, `eip155:11155111`, `eip155:8453`, `eip155:84532`
ethSendTransactionIntent field
A wallet or private key address to sign with. This does not support private key IDs.
Whether to sponsor this transaction via Gas Station.
CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet).
Enum options: `eip155:1`, `eip155:11155111`, `eip155:8453`, `eip155:84532`, `eip155:137`, `eip155:80002`
Recipient address as a hex string with 0x prefix.
Amount of native asset to send in wei.
Hex-encoded call data for contract interactions.
Transaction nonce, for EIP-1559 and Turnkey Gas Station authorizations.
Maximum amount of gas to use for this transaction, for EIP-1559 transactions.
Maximum total fee per gas unit (base fee + priority fee) in wei. Required for non-sponsored (EIP-1559) transactions. Not used for sponsored transactions.
Maximum priority fee (tip) per gas unit in wei. Required for non-sponsored (EIP-1559) transactions. Not used for sponsored transactions.
The gas station delegate contract nonce. Only used when sponsor=true. Include this if you want maximal security posture.
createFiatOnRampCredentialIntent field
onrampProvider field
Enum options: `FIAT_ON_RAMP_PROVIDER_COINBASE`, `FIAT_ON_RAMP_PROVIDER_MOONPAY`
Project ID for the on-ramp provider. Some providers, like Coinbase, require this additional identifier
Publishable API key for the on-ramp provider
Secret API key for the on-ramp provider encrypted to our on-ramp encryption public key
Private API key for the on-ramp provider encrypted to our on-ramp encryption public key. Some providers, like Coinbase, require this additional key.
If the on-ramp credential is a sandbox credential
updateFiatOnRampCredentialIntent field
The ID of the fiat on-ramp credential to update
onrampProvider field
Enum options: `FIAT_ON_RAMP_PROVIDER_COINBASE`, `FIAT_ON_RAMP_PROVIDER_MOONPAY`
Project ID for the on-ramp provider. Some providers, like Coinbase, require this additional identifier.
Publishable API key for the on-ramp provider
Secret API key for the on-ramp provider encrypted to our on-ramp encryption public key
Private API key for the on-ramp provider encrypted to our on-ramp encryption public key. Some providers, like Coinbase, require this additional key.
deleteFiatOnRampCredentialIntent field
The ID of the fiat on-ramp credential to delete
emailAuthIntentV3 field
Email of the authenticating user.
Client-side public key generated by the user, to which the email auth bundle (credentials) will be encrypted.
Optional human-readable name for an API Key. If none provided, default to Email Auth - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
emailCustomization field
The name of the application. This field is required and will be used in email notifications if an email template is not provided.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
Invalidate all other previously generated Email Auth API keys
Optional custom email address from which to send the email
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Optional custom email address to use as reply-to
initUserEmailRecoveryIntentV2 field
Email of the user starting recovery
Client-side public key generated by the user, to which the recovery bundle will be encrypted.
Expiration window (in seconds) indicating how long the recovery credential is valid for. If not provided, a default of 15 minutes will be used.
emailCustomization field
The name of the application. This field is required and will be used in email notifications if an email template is not provided.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
Optional custom email address from which to send the OTP email
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Optional custom email address to use as reply-to
initOtpIntentV2 field
Whether to send OTP via SMS or email. Possible values: OTP\_TYPE\_SMS, OTP\_TYPE\_EMAIL
Email or phone number to send the OTP code to
Optional length of the OTP code. Default = 9
The name of the application. This field is required and will be used in email notifications if an email template is not provided.
emailCustomization field
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
smsCustomization field
Template containing references to .OtpCode i.e Your OTP is \{\{.OtpCode}}
Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
Optional custom email address from which to send the OTP email
Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)
Optional custom email address to use as reply-to
initOtpAuthIntentV3 field
Whether to send OTP via SMS or email. Possible values: OTP\_TYPE\_SMS, OTP\_TYPE\_EMAIL
Email or phone number to send the OTP code to
Optional length of the OTP code. Default = 9
The name of the application. This field is required and will be used in email notifications if an email template is not provided.
emailCustomization field
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
smsCustomization field
Template containing references to .OtpCode i.e Your OTP is \{\{.OtpCode}}
Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
Optional custom email address from which to send the OTP email
Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)
Optional custom email address to use as reply-to
upsertGasUsageConfigIntent field
Gas sponsorship USD limit for the billing organization window.
Gas sponsorship USD limit for sub-organizations under the billing organization.
Rolling sponsorship window duration, expressed in minutes.
Whether gas sponsorship is enabled for the organization.
createTvcAppIntent field
The name of the new TVC application
Quorum public key to use for this application
Unique identifier for an existing TVC operator set to use as the Manifest Set for this TVC application. If left empty, a new Manifest Set configuration is required
manifestSetParams field
Short description for this new operator set
Operators to create as part of this new operator set
The name for this new operator
Public key for this operator
Existing operators to use as part of this new operator set
item field
The threshold of operators needed to reach consensus in this new Operator Set
Unique identifier for an existing TVC operator set to use as the Share Set for this TVC application. If left empty, a new Share Set configuration is required
shareSetParams field
Short description for this new operator set
Operators to create as part of this new operator set
The name for this new operator
Public key for this operator
Existing operators to use as part of this new operator set
item field
The threshold of operators needed to reach consensus in this new Operator Set
Enables external connectivity for this TVC app. Default if not provided: false.
createTvcDeploymentIntent field
The unique identifier of the to-be-deployed TVC application
The QuorumOS version to use to deploy this application
URL of the container containing the pivot binary
Location of the binary in the pivot container
Arguments to pass to the pivot binary at startup. Encoded as a list of strings, for example \["--foo", "bar"]
item field
Digest of the pivot binary in the pivot container. This value will be inserted in the QOS manifest to ensure application integrity.
URL of the container containing the host binary
Location of the binary inside the host container
Arguments to pass to the host binary at startup. Encoded as a list of strings, for example \["--foo", "bar"]
item field
Optional nonce to ensure uniqueness of the deployment manifest. If not provided, it defaults to the current Unix timestamp in seconds.
Optional encrypted pull secret to authorize Turnkey to pull the pivot container image. If your image is public, leave this empty.
Optional encrypted pull secret to authorize Turnkey to pull the host container image. If your image is public, leave this empty.
createTvcManifestApprovalsIntent field
Unique identifier of the TVC deployment to approve
List of manifest approvals
Unique identifier of the operator providing this approval
Signature from the operator approving the manifest
solSendTransactionIntent field
Base64-encoded serialized unsigned Solana transaction
A wallet or private key address to sign with. This does not support private key IDs.
Whether to sponsor this transaction via Gas Station.
CAIP-2 chain ID (e.g., 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' for Solana mainnet).
Enum options: `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`, `solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG`, `solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY`
user-provided blockhash for replay protection / deadline control. If omitted and sponsor=true, we fetch a fresh blockhash during execution
result field
createOrganizationResult field
Unique identifier for a given Organization.
createAuthenticatorsResult field
A list of Authenticator IDs.
item field
createUsersResult field
A list of User IDs.
item field
createPrivateKeysResult field
A list of Private Key IDs.
item field
createInvitationsResult field
A list of Invitation IDs
item field
acceptInvitationResult field
Unique identifier for a given Invitation.
Unique identifier for a given User.
signRawPayloadResult field
Component of an ECSDA signature.
Component of an ECSDA signature.
Component of an ECSDA signature.
createPolicyResult field
Unique identifier for a given Policy.
disablePrivateKeyResult field
Unique identifier for a given Private Key.
deleteUsersResult field
A list of User IDs.
item field
deleteAuthenticatorsResult field
Unique identifier for a given Authenticator.
item field
deleteInvitationResult field
Unique identifier for a given Invitation.
deleteOrganizationResult field
Unique identifier for a given Organization.
deletePolicyResult field
Unique identifier for a given Policy.
createUserTagResult field
Unique identifier for a given User Tag.
A list of User IDs.
item field
deleteUserTagsResult field
A list of User Tag IDs.
item field
A list of User IDs.
item field
signTransactionResult field
signedTransaction field
deleteApiKeysResult field
A list of API Key IDs.
item field
createApiKeysResult field
A list of API Key IDs.
item field
createPrivateKeyTagResult field
Unique identifier for a given Private Key Tag.
A list of Private Key IDs.
item field
deletePrivateKeyTagsResult field
A list of Private Key Tag IDs.
item field
A list of Private Key IDs.
item field
setPaymentMethodResult field
The last four digits of the credit card added.
The name associated with the payment method.
The email address associated with the payment method.
activateBillingTierResult field
The id of the product being subscribed to.
deletePaymentMethodResult field
The payment method that was removed.
createApiOnlyUsersResult field
A list of API-only User IDs.
item field
updateRootQuorumResult field
updateUserTagResult field
Unique identifier for a given User Tag.
updatePrivateKeyTagResult field
Unique identifier for a given Private Key Tag.
createSubOrganizationResult field
subOrganizationId field
rootUserIds field
item field
updateAllowedOriginsResult field
createPrivateKeysResultV2 field
A list of Private Key IDs and addresses.
privateKeyId field
addresses field
format field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
address field
updateUserResult field
A User ID.
updatePolicyResult field
Unique identifier for a given Policy.
createSubOrganizationResultV3 field
subOrganizationId field
A list of Private Key IDs and addresses.
privateKeyId field
addresses field
format field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
address field
rootUserIds field
item field
createWalletResult field
Unique identifier for a Wallet.
A list of account addresses.
item field
createWalletAccountsResult field
A list of derived addresses.
item field
initUserEmailRecoveryResult field
Unique identifier for the user being recovered.
recoverUserResult field
ID of the authenticator created.
item field
setOrganizationFeatureResult field
Resulting list of organization features.
name field
Enum options: `FEATURE_NAME_ROOT_USER_EMAIL_RECOVERY`, `FEATURE_NAME_WEBAUTHN_ORIGINS`, `FEATURE_NAME_EMAIL_AUTH`, `FEATURE_NAME_EMAIL_RECOVERY`, `FEATURE_NAME_WEBHOOK`, `FEATURE_NAME_SMS_AUTH`, `FEATURE_NAME_OTP_EMAIL_AUTH`, `FEATURE_NAME_AUTH_PROXY`
value field
removeOrganizationFeatureResult field
Resulting list of organization features.
name field
Enum options: `FEATURE_NAME_ROOT_USER_EMAIL_RECOVERY`, `FEATURE_NAME_WEBAUTHN_ORIGINS`, `FEATURE_NAME_EMAIL_AUTH`, `FEATURE_NAME_EMAIL_RECOVERY`, `FEATURE_NAME_WEBHOOK`, `FEATURE_NAME_SMS_AUTH`, `FEATURE_NAME_OTP_EMAIL_AUTH`, `FEATURE_NAME_AUTH_PROXY`
value field
exportPrivateKeyResult field
Unique identifier for a given Private Key.
Export bundle containing a private key encrypted to the client's target public key.
exportWalletResult field
Unique identifier for a given Wallet.
Export bundle containing a wallet mnemonic + optional newline passphrase encrypted by the client's target public key.
createSubOrganizationResultV4 field
subOrganizationId field
wallet field
walletId field
A list of account addresses.
item field
rootUserIds field
item field
emailAuthResult field
Unique identifier for the authenticating User.
Unique identifier for the created API key.
exportWalletAccountResult field
Address to identify Wallet Account.
Export bundle containing a private key encrypted by the client's target public key.
initImportWalletResult field
Import bundle containing a public key and signature to use for importing client data.
importWalletResult field
Unique identifier for a Wallet.
A list of account addresses.
item field
initImportPrivateKeyResult field
Import bundle containing a public key and signature to use for importing client data.
importPrivateKeyResult field
Unique identifier for a Private Key.
A list of addresses.
format field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
address field
createPoliciesResult field
A list of unique identifiers for the created policies.
item field
signRawPayloadsResult field
signatures field
Component of an ECSDA signature.
Component of an ECSDA signature.
Component of an ECSDA signature.
createReadOnlySessionResult field
Unique identifier for a given Organization. If the request is being made by a user and their Sub-Organization ID is unknown, this can be the Parent Organization ID. However, using the Sub-Organization ID is preferred due to performance reasons.
Human-readable name for an Organization.
Unique identifier for a given User.
Human-readable name for a User.
String representing a read only session
UTC timestamp in seconds representing the expiry time for the read only session.
createOauthProvidersResult field
A list of unique identifiers for Oauth Providers
item field
deleteOauthProvidersResult field
A list of unique identifiers for Oauth Providers
item field
createSubOrganizationResultV5 field
subOrganizationId field
wallet field
walletId field
A list of account addresses.
item field
rootUserIds field
item field
oauthResult field
Unique identifier for the authenticating User.
Unique identifier for the created API key.
HPKE encrypted credential bundle
createReadWriteSessionResult field
Unique identifier for a given Organization. If the request is being made by a user and their Sub-Organization ID is unknown, this can be the Parent Organization ID. However, using the Sub-Organization ID is preferred due to performance reasons.
Human-readable name for an Organization.
Unique identifier for a given User.
Human-readable name for a User.
Unique identifier for the created API key.
HPKE encrypted credential bundle
createSubOrganizationResultV6 field
subOrganizationId field
wallet field
walletId field
A list of account addresses.
item field
rootUserIds field
item field
deletePrivateKeysResult field
A list of private key unique identifiers that were removed
item field
deleteWalletsResult field
A list of wallet unique identifiers that were removed
item field
createReadWriteSessionResultV2 field
Unique identifier for a given Organization. If the request is being made by a user and their Sub-Organization ID is unknown, this can be the Parent Organization ID. However, using the Sub-Organization ID is preferred due to performance reasons.
Human-readable name for an Organization.
Unique identifier for a given User.
Human-readable name for a User.
Unique identifier for the created API key.
HPKE encrypted credential bundle
deleteSubOrganizationResult field
Unique identifier of the sub organization that was removed
initOtpAuthResult field
Unique identifier for an OTP authentication
otpAuthResult field
Unique identifier for the authenticating User.
Unique identifier for the created API key.
HPKE encrypted credential bundle
createSubOrganizationResultV7 field
subOrganizationId field
wallet field
walletId field
A list of account addresses.
item field
rootUserIds field
item field
updateWalletResult field
A Wallet ID.
updatePolicyResultV2 field
Unique identifier for a given Policy.
initOtpAuthResultV2 field
Unique identifier for an OTP authentication
initOtpResult field
Unique identifier for an OTP authentication
verifyOtpResult field
Signed JWT containing a unique id, expiry, verification type, contact. Verification status of a user is updated when the token is consumed (in OTP\_LOGIN requests)
otpLoginResult field
Signed JWT containing an expiry, public key, session type, user id, and organization id
stampLoginResult field
Signed JWT containing an expiry, public key, session type, user id, and organization id
oauthLoginResult field
Signed JWT containing an expiry, public key, session type, user id, and organization id
updateUserNameResult field
Unique identifier of the User whose name was updated.
updateUserEmailResult field
Unique identifier of the User whose email was updated.
updateUserPhoneNumberResult field
Unique identifier of the User whose phone number was updated.
initFiatOnRampResult field
Unique URL for a given fiat on-ramp flow.
Unique identifier used to retrieve transaction statuses for a given fiat on-ramp flow.
Optional signature of the MoonPay Widget URL. The signature is generated if the Init Fiat On Ramp intent includes the urlForSignature field. The signature can be used to initialize the MoonPay SDKs when URL signing is enabled for your project.
createSmartContractInterfaceResult field
The ID of the created Smart Contract Interface.
deleteSmartContractInterfaceResult field
The ID of the deleted Smart Contract Interface.
enableAuthProxyResult field
A User ID with permission to initiate authentication.
disableAuthProxyResult field
updateAuthProxyConfigResult field
Unique identifier for a given User. (representing the turnkey signer user id)
createOauth2CredentialResult field
Unique identifier of the OAuth 2.0 credential that was created
updateOauth2CredentialResult field
Unique identifier of the OAuth 2.0 credential that was updated
deleteOauth2CredentialResult field
Unique identifier of the OAuth 2.0 credential that was deleted
oauth2AuthenticateResult field
Base64 encoded OIDC token issued by Turnkey to be used with the LoginWithOAuth activity
deleteWalletAccountsResult field
A list of wallet account unique identifiers that were removed
item field
deletePoliciesResult field
A list of unique identifiers for the deleted policies.
item field
ethSendRawTransactionResult field
The transaction hash of the sent transaction
createFiatOnRampCredentialResult field
Unique identifier of the Fiat On-Ramp credential that was created
updateFiatOnRampCredentialResult field
Unique identifier of the Fiat On-Ramp credential that was updated
deleteFiatOnRampCredentialResult field
Unique identifier of the Fiat On-Ramp credential that was deleted
ethSendTransactionResult field
The send\_transaction\_status ID associated with the transaction submission
upsertGasUsageConfigResult field
Unique identifier for the gas usage configuration that was created or updated.
createTvcAppResult field
The unique identifier for the TVC application
The unique identifier for the TVC manifest set
The unique identifier(s) of the manifest set operators
item field
The required number of approvals for the manifest set
createTvcDeploymentResult field
The unique identifier for the TVC deployment
The unique identifier for the TVC manifest
createTvcManifestApprovalsResult field
The unique identifier(s) for the manifest approvals
item field
solSendTransactionResult field
The send\_transaction\_status ID associated with the transaction submission
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
Unique identifier for a given Vote object.
Unique identifier for a given User.
user field
Unique identifier for a given User.
Human-readable name for a User.
The user's email address.
The user's phone number in E.164 format e.g. +13214567890
A list of Authenticator parameters.
Types of transports that may be used by an Authenticator (e.g., USB, NFC, BLE).
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
attestationType field
Identifier indicating the type of the Security Key.
Unique identifier for a WebAuthn credential.
The type of Authenticator device.
credential field
The public component of a cryptographic key pair used to sign messages and transactions.
type field
Enum options: `CREDENTIAL_TYPE_WEBAUTHN_AUTHENTICATOR`, `CREDENTIAL_TYPE_API_KEY_P256`, `CREDENTIAL_TYPE_RECOVER_USER_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_SECP256K1`, `CREDENTIAL_TYPE_EMAIL_AUTH_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_ED25519`, `CREDENTIAL_TYPE_OTP_AUTH_KEY_P256`, `CREDENTIAL_TYPE_READ_WRITE_SESSION_KEY_P256`, `CREDENTIAL_TYPE_OAUTH_KEY_P256`, `CREDENTIAL_TYPE_LOGIN`
Unique identifier for a given Authenticator.
Human-readable name for an Authenticator.
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
credential field
The public component of a cryptographic key pair used to sign messages and transactions.
type field
Enum options: `CREDENTIAL_TYPE_WEBAUTHN_AUTHENTICATOR`, `CREDENTIAL_TYPE_API_KEY_P256`, `CREDENTIAL_TYPE_RECOVER_USER_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_SECP256K1`, `CREDENTIAL_TYPE_EMAIL_AUTH_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_ED25519`, `CREDENTIAL_TYPE_OTP_AUTH_KEY_P256`, `CREDENTIAL_TYPE_READ_WRITE_SESSION_KEY_P256`, `CREDENTIAL_TYPE_OAUTH_KEY_P256`, `CREDENTIAL_TYPE_LOGIN`
Unique identifier for a given API Key.
Human-readable name for an API Key.
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
Optional window (in seconds) indicating how long the API Key should last.
A list of User Tag IDs.
item field
A list of Oauth Providers.
Unique identifier for an OAuth Provider
Human-readable name to identify a Provider.
The issuer of the token, typically a URL indicating the authentication server, e.g [https://accounts.google.com](https://accounts.google.com)
Expected audience ('aud' attribute of the signed token) which represents the app ID
Expected subject ('sub' attribute of the signed token) which represents the user ID
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
Unique identifier for a given Activity object.
selection field
Enum options: `VOTE_SELECTION_APPROVED`, `VOTE_SELECTION_REJECTED`
The raw message being signed within a Vote.
The public component of a cryptographic key pair used to sign messages and transactions.
The signature applied to a particular vote.
Method used to produce a signature.
createdAt field
seconds field
nanos field
A list of App Proofs generated by enclaves during activity execution, providing verifiable attestations of performed operations.
scheme field
Enum options: `SIGNATURE_SCHEME_EPHEMERAL_KEY_P256`
Ephemeral public key.
JSON serialized AppProofPayload.
Signature over hashed proof\_payload.
An artifact verifying a User's action.
canApprove field
canReject field
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
failure field
code field
message field
details field
@type field
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_activity \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"activityId": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getActivity({
organizationId: " (Unique identifier for a given organization.)",
activityId: " (Unique identifier for a given activity object.)"
});
```
```json 200 theme={"system"}
{
"activity": {
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createOrganizationIntent": {
"organizationName": "",
"rootEmail": "",
"rootAuthenticator": {
"authenticatorName": "",
"userId": "",
"attestation": {
"id": "",
"type": "",
"rawId": "",
"authenticatorAttachment": "",
"response": {
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
],
"authenticatorAttachment": ""
},
"clientExtensionResults": {
"appid": "",
"appidExclude": "",
"credProps": {
"rk": ""
}
}
},
"challenge": ""
},
"rootUserId": ""
}
},
"result": {
"createOrganizationResult": {
"organizationId": ""
},
"createAuthenticatorsResult": {
"authenticatorIds": [
""
]
},
"createUsersResult": {
"userIds": [
""
]
},
"createPrivateKeysResult": {
"privateKeyIds": [
""
]
},
"createInvitationsResult": {
"invitationIds": [
""
]
},
"acceptInvitationResult": {
"invitationId": "",
"userId": ""
},
"signRawPayloadResult": {
"r": "",
"s": "",
"v": ""
},
"createPolicyResult": {
"policyId": ""
},
"disablePrivateKeyResult": {
"privateKeyId": ""
},
"deleteUsersResult": {
"userIds": [
""
]
},
"deleteAuthenticatorsResult": {
"authenticatorIds": [
""
]
},
"deleteInvitationResult": {
"invitationId": ""
},
"deleteOrganizationResult": {
"organizationId": ""
},
"deletePolicyResult": {
"policyId": ""
},
"createUserTagResult": {
"userTagId": "",
"userIds": [
""
]
},
"deleteUserTagsResult": {
"userTagIds": [
""
],
"userIds": [
""
]
},
"signTransactionResult": {
"signedTransaction": ""
},
"deleteApiKeysResult": {
"apiKeyIds": [
""
]
},
"createApiKeysResult": {
"apiKeyIds": [
""
]
},
"createPrivateKeyTagResult": {
"privateKeyTagId": "",
"privateKeyIds": [
""
]
},
"deletePrivateKeyTagsResult": {
"privateKeyTagIds": [
""
],
"privateKeyIds": [
""
]
},
"setPaymentMethodResult": {
"lastFour": "",
"cardHolderName": "",
"cardHolderEmail": ""
},
"activateBillingTierResult": {
"productId": ""
},
"deletePaymentMethodResult": {
"paymentMethodId": ""
},
"createApiOnlyUsersResult": {
"userIds": [
""
]
},
"updateRootQuorumResult": "
# Get API key
Source: https://docs.turnkey.com/api-reference/queries/get-api-key
Get details about an API key.
Unique identifier for a given organization.
Unique identifier for a given API key.
A successful response returns the following fields:
apiKey field
credential field
The public component of a cryptographic key pair used to sign messages and transactions.
type field
Enum options: `CREDENTIAL_TYPE_WEBAUTHN_AUTHENTICATOR`, `CREDENTIAL_TYPE_API_KEY_P256`, `CREDENTIAL_TYPE_RECOVER_USER_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_SECP256K1`, `CREDENTIAL_TYPE_EMAIL_AUTH_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_ED25519`, `CREDENTIAL_TYPE_OTP_AUTH_KEY_P256`, `CREDENTIAL_TYPE_READ_WRITE_SESSION_KEY_P256`, `CREDENTIAL_TYPE_OAUTH_KEY_P256`, `CREDENTIAL_TYPE_LOGIN`
Unique identifier for a given API Key.
Human-readable name for an API Key.
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
Optional window (in seconds) indicating how long the API Key should last.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_api_key \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"apiKeyId": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getApiKey({
organizationId: " (Unique identifier for a given organization.)",
apiKeyId: " (Unique identifier for a given API key.)"
});
```
```json 200 theme={"system"}
{
"apiKey": {
"credential": {
"publicKey": "",
"type": ""
},
"apiKeyId": "",
"apiKeyName": "",
"createdAt": {
"seconds": "",
"nanos": ""
},
"updatedAt": {
"seconds": "",
"nanos": ""
},
"expirationSeconds": ""
}
}
```
# Get API keys
Source: https://docs.turnkey.com/api-reference/queries/get-api-keys
Get details about API keys for a user.
Unique identifier for a given organization.
Unique identifier for a given user.
A successful response returns the following fields:
A list of API keys.
credential field
The public component of a cryptographic key pair used to sign messages and transactions.
type field
Enum options: `CREDENTIAL_TYPE_WEBAUTHN_AUTHENTICATOR`, `CREDENTIAL_TYPE_API_KEY_P256`, `CREDENTIAL_TYPE_RECOVER_USER_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_SECP256K1`, `CREDENTIAL_TYPE_EMAIL_AUTH_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_ED25519`, `CREDENTIAL_TYPE_OTP_AUTH_KEY_P256`, `CREDENTIAL_TYPE_READ_WRITE_SESSION_KEY_P256`, `CREDENTIAL_TYPE_OAUTH_KEY_P256`, `CREDENTIAL_TYPE_LOGIN`
Unique identifier for a given API Key.
Human-readable name for an API Key.
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
Optional window (in seconds) indicating how long the API Key should last.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_api_keys \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"userId": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getApiKeys({
organizationId: " (Unique identifier for a given organization.)",
userId: " (Unique identifier for a given user.)"
});
```
```json 200 theme={"system"}
{
"apiKeys": [
{
"credential": {
"publicKey": "",
"type": ""
},
"apiKeyId": "",
"apiKeyName": "",
"createdAt": {
"seconds": "",
"nanos": ""
},
"updatedAt": {
"seconds": "",
"nanos": ""
},
"expirationSeconds": ""
}
]
}
```
# Get authenticator
Source: https://docs.turnkey.com/api-reference/queries/get-authenticator
Get details about an authenticator.
Unique identifier for a given organization.
Unique identifier for a given authenticator.
A successful response returns the following fields:
authenticator field
Types of transports that may be used by an Authenticator (e.g., USB, NFC, BLE).
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
attestationType field
Identifier indicating the type of the Security Key.
Unique identifier for a WebAuthn credential.
The type of Authenticator device.
credential field
The public component of a cryptographic key pair used to sign messages and transactions.
type field
Enum options: `CREDENTIAL_TYPE_WEBAUTHN_AUTHENTICATOR`, `CREDENTIAL_TYPE_API_KEY_P256`, `CREDENTIAL_TYPE_RECOVER_USER_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_SECP256K1`, `CREDENTIAL_TYPE_EMAIL_AUTH_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_ED25519`, `CREDENTIAL_TYPE_OTP_AUTH_KEY_P256`, `CREDENTIAL_TYPE_READ_WRITE_SESSION_KEY_P256`, `CREDENTIAL_TYPE_OAUTH_KEY_P256`, `CREDENTIAL_TYPE_LOGIN`
Unique identifier for a given Authenticator.
Human-readable name for an Authenticator.
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_authenticator \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"authenticatorId": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getAuthenticator({
organizationId: " (Unique identifier for a given organization.)",
authenticatorId: " (Unique identifier for a given authenticator.)"
});
```
```json 200 theme={"system"}
{
"authenticator": {
"transports": [
""
],
"attestationType": "",
"aaguid": "",
"credentialId": "",
"model": "",
"credential": {
"publicKey": "",
"type": ""
},
"authenticatorId": "",
"authenticatorName": "",
"createdAt": {
"seconds": "",
"nanos": ""
},
"updatedAt": {
"seconds": "",
"nanos": ""
}
}
}
```
# Get authenticators
Source: https://docs.turnkey.com/api-reference/queries/get-authenticators
Get details about authenticators for a user.
Unique identifier for a given organization.
Unique identifier for a given user.
A successful response returns the following fields:
A list of authenticators.
Types of transports that may be used by an Authenticator (e.g., USB, NFC, BLE).
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
attestationType field
Identifier indicating the type of the Security Key.
Unique identifier for a WebAuthn credential.
The type of Authenticator device.
credential field
The public component of a cryptographic key pair used to sign messages and transactions.
type field
Enum options: `CREDENTIAL_TYPE_WEBAUTHN_AUTHENTICATOR`, `CREDENTIAL_TYPE_API_KEY_P256`, `CREDENTIAL_TYPE_RECOVER_USER_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_SECP256K1`, `CREDENTIAL_TYPE_EMAIL_AUTH_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_ED25519`, `CREDENTIAL_TYPE_OTP_AUTH_KEY_P256`, `CREDENTIAL_TYPE_READ_WRITE_SESSION_KEY_P256`, `CREDENTIAL_TYPE_OAUTH_KEY_P256`, `CREDENTIAL_TYPE_LOGIN`
Unique identifier for a given Authenticator.
Human-readable name for an Authenticator.
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_authenticators \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"userId": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getAuthenticators({
organizationId: " (Unique identifier for a given organization.)",
userId: " (Unique identifier for a given user.)"
});
```
```json 200 theme={"system"}
{
"authenticators": [
{
"transports": [
""
],
"attestationType": "",
"aaguid": "",
"credentialId": "",
"model": "",
"credential": {
"publicKey": "",
"type": ""
},
"authenticatorId": "",
"authenticatorName": "",
"createdAt": {
"seconds": "",
"nanos": ""
},
"updatedAt": {
"seconds": "",
"nanos": ""
}
}
]
}
```
# Get balances of supported assets for wallet account address
Source: https://docs.turnkey.com/api-reference/queries/get-balances-of-supported-assets-for-wallet-account-address
Get non-zero balances of supported assets for a single wallet account address on the specified network.
Unique identifier for a given organization.
Address corresponding to a wallet account.
The network identifier in CAIP-2 format (e.g., 'eip155:1' for Ethereum mainnet).
A successful response returns the following fields:
List of asset balances
The caip-19 asset identifier
The asset symbol
The balance in atomic units
The number of decimals this asset uses
display field
USD value for display purposes only. Do not do any arithmetic or calculations with these, as the results could be imprecise.
Normalized crypto value for display purposes only. Do not do any arithmetic or calculations with these, as the results could be imprecise.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_wallet_address_balances \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"address": "",
"caip2": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getWalletAddressBalances({
organizationId: " (Unique identifier for a given organization.)",
address: " (Address corresponding to a wallet account.)",
caip2: " (The network identifier in CAIP-2 format (e.g., 'eip155:1' for Ethereum mainnet).)"
});
```
```json 200 theme={"system"}
{
"balances": [
{
"caip19": "",
"symbol": "",
"balance": "",
"decimals": "",
"display": {
"usd": "",
"crypto": ""
}
}
]
}
```
# Get configs
Source: https://docs.turnkey.com/api-reference/queries/get-configs
Get quorum settings and features for an organization.
Unique identifier for a given organization.
A successful response returns the following fields:
configs field
features field
name field
Enum options: `FEATURE_NAME_ROOT_USER_EMAIL_RECOVERY`, `FEATURE_NAME_WEBAUTHN_ORIGINS`, `FEATURE_NAME_EMAIL_AUTH`, `FEATURE_NAME_EMAIL_RECOVERY`, `FEATURE_NAME_WEBHOOK`, `FEATURE_NAME_SMS_AUTH`, `FEATURE_NAME_OTP_EMAIL_AUTH`, `FEATURE_NAME_AUTH_PROXY`
value field
quorum field
Count of unique approvals required to meet quorum.
Unique identifiers of quorum set members.
item field
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_organization_configs \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getOrganizationConfigs({
organizationId: " (Unique identifier for a given organization.)"
});
```
```json 200 theme={"system"}
{
"configs": {
"features": [
{
"name": "",
"value": ""
}
],
"quorum": {
"threshold": "",
"userIds": [
""
]
}
}
}
```
# Get gas usage
Source: https://docs.turnkey.com/api-reference/queries/get-gas-usage
Get gas usage and gas limits for either the parent organization or a sub-organization.
Unique identifier for a given Organization.
A successful response returns the following fields:
The window duration (in minutes) for the organization or sub-organization.The window limit (in USD) for the organization or sub-organization.The total gas usage (in USD) of all sponsored transactions processed over the last `window_duration_minutes`
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_gas_usage \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getGasUsage({
organizationId: " (Unique identifier for a given Organization.)"
});
```
```json 200 theme={"system"}
{
"windowDurationMinutes": "",
"windowLimitUsd": "",
"usageUsd": ""
}
```
# Get nonces
Source: https://docs.turnkey.com/api-reference/queries/get-nonces
Get nonce values for an address on a given network. Can fetch the standard on-chain nonce and/or the gas station nonce used for sponsored transactions.
Unique identifier for a given Organization.
The Ethereum address to query nonces for.
The network identifier in CAIP-2 format (e.g., 'eip155:1' for Ethereum mainnet).
Whether to fetch the standard on-chain nonce.
Whether to fetch the gas station nonce used for sponsored transactions.
A successful response returns the following fields:
The standard on-chain nonce for the address, if requested.The gas station nonce for sponsored transactions, if requested.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_nonces \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"address": "",
"caip2": "",
"nonce": "",
"gasStationNonce": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getNonces({
organizationId: " (Unique identifier for a given Organization.)",
address: " (The Ethereum address to query nonces for.)",
caip2: " (The network identifier in CAIP-2 format (e.g., 'eip155:1' for Ethereum mainnet).)",
nonce: true // Whether to fetch the standard on-chain nonce.,
gasStationNonce: true // Whether to fetch the gas station nonce used for sponsored transactions.
});
```
```json 200 theme={"system"}
{
"nonce": "",
"gasStationNonce": ""
}
```
# Get OAuth 2.0 credential
Source: https://docs.turnkey.com/api-reference/queries/get-oauth-20-credential
Get details about an OAuth 2.0 credential.
Unique identifier for a given Organization.
Unique identifier for a given OAuth 2.0 Credential.
A successful response returns the following fields:
oauth2Credential field
Unique identifier for a given OAuth 2.0 Credential.
Unique identifier for an Organization.
provider field
Enum options: `OAUTH2_PROVIDER_X`, `OAUTH2_PROVIDER_DISCORD`
The client id for a given OAuth 2.0 Credential.
The encrypted client secret for a given OAuth 2.0 Credential encrypted to the TLS Fetcher quorum key.
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_oauth2_credential \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"oauth2CredentialId": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getOauth2Credential({
organizationId: " (Unique identifier for a given Organization.)",
oauth2CredentialId: " (Unique identifier for a given OAuth 2.0 Credential.)"
});
```
```json 200 theme={"system"}
{
"oauth2Credential": {
"oauth2CredentialId": "",
"organizationId": "",
"provider": "",
"clientId": "",
"encryptedClientSecret": "",
"createdAt": {
"seconds": "",
"nanos": ""
},
"updatedAt": {
"seconds": "",
"nanos": ""
}
}
}
```
# Get Oauth providers
Source: https://docs.turnkey.com/api-reference/queries/get-oauth-providers
Get details about Oauth providers for a user.
Unique identifier for a given organization.
Unique identifier for a given user.
A successful response returns the following fields:
A list of Oauth providers.
Unique identifier for an OAuth Provider
Human-readable name to identify a Provider.
The issuer of the token, typically a URL indicating the authentication server, e.g [https://accounts.google.com](https://accounts.google.com)
Expected audience ('aud' attribute of the signed token) which represents the app ID
Expected subject ('sub' attribute of the signed token) which represents the user ID
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_oauth_providers \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"userId": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getOauthProviders({
organizationId: " (Unique identifier for a given organization.)",
userId: " (Unique identifier for a given user.)"
});
```
```json 200 theme={"system"}
{
"oauthProviders": [
{
"providerId": "",
"providerName": "",
"issuer": "",
"audience": "",
"subject": "",
"createdAt": {
"seconds": "",
"nanos": ""
},
"updatedAt": {
"seconds": "",
"nanos": ""
}
}
]
}
```
# Get On Ramp transaction status
Source: https://docs.turnkey.com/api-reference/queries/get-on-ramp-transaction-status
Get the status of an on ramp transaction.
Unique identifier for a given organization.
The unique identifier for the fiat on ramp transaction.
Optional flag to specify if the transaction status should be refreshed from the fiat on ramp provider. Default = false.
A successful response returns the following fields:
The status of the fiat on ramp transaction.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_onramp_transaction_status \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"transactionId": "",
"refresh": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getOnRampTransactionStatus({
organizationId: " (Unique identifier for a given organization.)",
transactionId: " (The unique identifier for the fiat on ramp transaction.)",
refresh: true // Optional flag to specify if the transaction status should be refreshed from the fiat on ramp provider. Default = false.
});
```
```json 200 theme={"system"}
{
"transactionStatus": ""
}
```
# Get policy
Source: https://docs.turnkey.com/api-reference/queries/get-policy
Get details about a policy.
Unique identifier for a given organization.
Unique identifier for a given policy.
A successful response returns the following fields:
policy field
Unique identifier for a given Policy.
Human-readable name for a Policy.
effect field
Enum options: `EFFECT_ALLOW`, `EFFECT_DENY`
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
Human-readable notes added by a User to describe a particular policy.
A consensus expression that evalutes to true or false.
A condition expression that evalutes to true or false.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_policy \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"policyId": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getPolicy({
organizationId: " (Unique identifier for a given organization.)",
policyId: " (Unique identifier for a given policy.)"
});
```
```json 200 theme={"system"}
{
"policy": {
"policyId": "",
"policyName": "",
"effect": "",
"createdAt": {
"seconds": "",
"nanos": ""
},
"updatedAt": {
"seconds": "",
"nanos": ""
},
"notes": "",
"consensus": "",
"condition": ""
}
}
```
# Get policy evaluations
Source: https://docs.turnkey.com/api-reference/queries/get-policy-evaluations
Get the policy evaluations for an activity.
Unique identifier for a given organization.
Unique identifier for a given activity.
A successful response returns the following fields:
policyEvaluations field
Unique identifier for a given policy evaluation.
Unique identifier for a given Activity.
Unique identifier for the Organization the Activity belongs to.
Unique identifier for the Vote associated with this policy evaluation.
Detailed evaluation result for each Policy that was run.
policyId field
outcome field
Enum options: `OUTCOME_ALLOW`, `OUTCOME_DENY_EXPLICIT`, `OUTCOME_DENY_IMPLICIT`, `OUTCOME_REQUIRES_CONSENSUS`, `OUTCOME_REJECTED`, `OUTCOME_ERROR`
createdAt field
seconds field
nanos field
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_policy_evaluations \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"activityId": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getPolicyEvaluations({
organizationId: " (Unique identifier for a given organization.)",
activityId: " (Unique identifier for a given activity.)"
});
```
```json 200 theme={"system"}
{
"policyEvaluations": [
{
"id": "",
"activityId": "",
"organizationId": "",
"voteId": "",
"policyEvaluations": [
{
"policyId": "",
"outcome": ""
}
],
"createdAt": {
"seconds": "",
"nanos": ""
}
}
]
}
```
# Get private key
Source: https://docs.turnkey.com/api-reference/queries/get-private-key
Get details about a private key.
Unique identifier for a given organization.
Unique identifier for a given private key.
A successful response returns the following fields:
privateKey field
Unique identifier for a given Private Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Human-readable name for a Private Key.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
Derived cryptocurrency addresses for a given Private Key.
format field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
address field
A list of Private Key Tag IDs.
item field
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
True when a given Private Key is exported, false otherwise.
True when a given Private Key is imported, false otherwise.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_private_key \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"privateKeyId": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getPrivateKey({
organizationId: " (Unique identifier for a given organization.)",
privateKeyId: " (Unique identifier for a given private key.)"
});
```
```json 200 theme={"system"}
{
"privateKey": {
"privateKeyId": "",
"publicKey": "",
"privateKeyName": "",
"curve": "",
"addresses": [
{
"format": "",
"address": ""
}
],
"privateKeyTags": [
""
],
"createdAt": {
"seconds": "",
"nanos": ""
},
"updatedAt": {
"seconds": "",
"nanos": ""
},
"exported": "",
"imported": ""
}
}
```
# Get send transaction status
Source: https://docs.turnkey.com/api-reference/queries/get-send-transaction-status
Get the status of a send transaction request.
Unique identifier for a given organization.
The unique identifier of a send transaction request.
A successful response returns the following fields:
The current status of the send transaction.
eth field
The Ethereum transaction hash, if available.
The error encountered when broadcasting or confirming the transaction, if any.
error field
Human-readable error message describing what went wrong.
Chain of revert errors from nested contract calls, ordered from outermost to innermost.
The contract address where the revert occurred.
Type of error: 'unknown', 'native', or 'custom'.
Human-readable message describing this revert.
unknown field
The 4-byte error selector, if available.
The raw error data, hex-encoded.
native field
The type of native error: 'error\_string', 'panic', or 'execution\_reverted'.
The error message for Error(string) reverts.
The panic code for Panic(uint256) reverts.
custom field
The name of the custom error.
The decoded parameters as a JSON object.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_send_transaction_status \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"sendTransactionStatusId": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getSendTransactionStatus({
organizationId: " (Unique identifier for a given organization.)",
sendTransactionStatusId: " (The unique identifier of a send transaction request.)"
});
```
```json 200 theme={"system"}
{
"txStatus": "",
"eth": {
"txHash": ""
},
"txError": "",
"error": {
"message": "",
"revertChain": [
{
"address": "",
"errorType": "",
"displayMessage": "",
"unknown": {
"selector": "",
"data": ""
},
"native": {
"nativeType": "",
"message": "",
"panicCode": ""
},
"custom": {
"errorName": "",
"paramsJson": ""
}
}
]
}
}
```
# Get smart contract interface
Source: https://docs.turnkey.com/api-reference/queries/get-smart-contract-interface
Get details about a smart contract interface.
Unique identifier for a given organization.
Unique identifier for a given smart contract interface.
A successful response returns the following fields:
smartContractInterface field
The Organization the Smart Contract Interface belongs to.
Unique identifier for a given Smart Contract Interface (ABI or IDL).
The address corresponding to the Smart Contract or Program.
The JSON corresponding to the Smart Contract Interface (ABI or IDL).
The type corresponding to the Smart Contract Interface (either ETHEREUM or SOLANA).
The label corresponding to the Smart Contract Interface (either ETHEREUM or SOLANA).
The notes corresponding to the Smart Contract Interface (either ETHEREUM or SOLANA).
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_smart_contract_interface \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"smartContractInterfaceId": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getSmartContractInterface({
organizationId: " (Unique identifier for a given organization.)",
smartContractInterfaceId: " (Unique identifier for a given smart contract interface.)"
});
```
```json 200 theme={"system"}
{
"smartContractInterface": {
"organizationId": "",
"smartContractInterfaceId": "",
"smartContractAddress": "",
"smartContractInterface": "",
"type": "",
"label": "",
"notes": "",
"createdAt": {
"seconds": "",
"nanos": ""
},
"updatedAt": {
"seconds": "",
"nanos": ""
}
}
}
```
# Get sub-organizations
Source: https://docs.turnkey.com/api-reference/queries/get-sub-organizations
Get all suborg IDs associated given a parent org ID and an optional filter.
Unique identifier for the parent organization. This is used to find sub-organizations within it.
Specifies the type of filter to apply, i.e 'CREDENTIAL\_ID', 'NAME', 'USERNAME', 'EMAIL', 'PHONE\_NUMBER', 'OIDC\_TOKEN', 'WALLET\_ACCOUNT\_ADDRESS' or 'PUBLIC\_KEY'
The value of the filter to apply for the specified type. For example, a specific email or name string.
paginationOptions field
A limit of the number of object to be returned, between 1 and 100. Defaults to 10.
A pagination cursor. This is an object ID that enables you to fetch all objects before this ID.
A pagination cursor. This is an object ID that enables you to fetch all objects after this ID.
A successful response returns the following fields:
List of unique identifiers for the matching sub-organizations.
item field
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/list_suborgs \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"filterType": "",
"filterValue": "",
"paginationOptions": {
"limit": "",
"before": "",
"after": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getSubOrgIds({
organizationId: " (Unique identifier for the parent organization. This is used to find sub-organizations within it.)",
filterType: " (Specifies the type of filter to apply, i.e 'CREDENTIAL_ID', 'NAME', 'USERNAME', 'EMAIL', 'PHONE_NUMBER', 'OIDC_TOKEN', 'WALLET_ACCOUNT_ADDRESS' or 'PUBLIC_KEY')",
filterValue: " (The value of the filter to apply for the specified type. For example, a specific email or name string.)",
paginationOptions: { // paginationOptions field,
limit: " (A limit of the number of object to be returned, between 1 and 100. Defaults to 10.)",
before: " (A pagination cursor. This is an object ID that enables you to fetch all objects before this ID.)",
after: " (A pagination cursor. This is an object ID that enables you to fetch all objects after this ID.)",
}
});
```
```json 200 theme={"system"}
{
"organizationIds": [
""
]
}
```
# Get the latest boot proof for an app
Source: https://docs.turnkey.com/api-reference/queries/get-the-latest-boot-proof-for-an-app
Get the latest boot proof for a given enclave app name.
Unique identifier for a given Organization.
Name of enclave app.
A successful response returns the following fields:
bootProof field
The hex encoded Ephemeral Public Key.
The DER encoded COSE Sign1 struct Attestation doc.
The borsch serialized base64 encoded Manifest.
The borsch serialized base64 encoded Manifest Envelope.
The label under which the enclave app was deployed.
Name of the enclave app
Owner of the app i.e. 'tkhq'
createdAt field
seconds field
nanos field
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_latest_boot_proof \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"appName": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getLatestBootProof({
organizationId: " (Unique identifier for a given Organization.)",
appName: " (Name of enclave app.)"
});
```
```json 200 theme={"system"}
{
"bootProof": {
"ephemeralPublicKeyHex": "",
"awsAttestationDocB64": "",
"qosManifestB64": "",
"qosManifestEnvelopeB64": "",
"deploymentLabel": "",
"enclaveApp": "",
"owner": "",
"createdAt": {
"seconds": "",
"nanos": ""
}
}
}
```
# Get user
Source: https://docs.turnkey.com/api-reference/queries/get-user
Get details about a user.
Unique identifier for a given organization.
Unique identifier for a given user.
A successful response returns the following fields:
user field
Unique identifier for a given User.
Human-readable name for a User.
The user's email address.
The user's phone number in E.164 format e.g. +13214567890
A list of Authenticator parameters.
Types of transports that may be used by an Authenticator (e.g., USB, NFC, BLE).
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
attestationType field
Identifier indicating the type of the Security Key.
Unique identifier for a WebAuthn credential.
The type of Authenticator device.
credential field
The public component of a cryptographic key pair used to sign messages and transactions.
type field
Enum options: `CREDENTIAL_TYPE_WEBAUTHN_AUTHENTICATOR`, `CREDENTIAL_TYPE_API_KEY_P256`, `CREDENTIAL_TYPE_RECOVER_USER_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_SECP256K1`, `CREDENTIAL_TYPE_EMAIL_AUTH_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_ED25519`, `CREDENTIAL_TYPE_OTP_AUTH_KEY_P256`, `CREDENTIAL_TYPE_READ_WRITE_SESSION_KEY_P256`, `CREDENTIAL_TYPE_OAUTH_KEY_P256`, `CREDENTIAL_TYPE_LOGIN`
Unique identifier for a given Authenticator.
Human-readable name for an Authenticator.
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
credential field
The public component of a cryptographic key pair used to sign messages and transactions.
type field
Enum options: `CREDENTIAL_TYPE_WEBAUTHN_AUTHENTICATOR`, `CREDENTIAL_TYPE_API_KEY_P256`, `CREDENTIAL_TYPE_RECOVER_USER_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_SECP256K1`, `CREDENTIAL_TYPE_EMAIL_AUTH_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_ED25519`, `CREDENTIAL_TYPE_OTP_AUTH_KEY_P256`, `CREDENTIAL_TYPE_READ_WRITE_SESSION_KEY_P256`, `CREDENTIAL_TYPE_OAUTH_KEY_P256`, `CREDENTIAL_TYPE_LOGIN`
Unique identifier for a given API Key.
Human-readable name for an API Key.
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
Optional window (in seconds) indicating how long the API Key should last.
A list of User Tag IDs.
item field
A list of Oauth Providers.
Unique identifier for an OAuth Provider
Human-readable name to identify a Provider.
The issuer of the token, typically a URL indicating the authentication server, e.g [https://accounts.google.com](https://accounts.google.com)
Expected audience ('aud' attribute of the signed token) which represents the app ID
Expected subject ('sub' attribute of the signed token) which represents the user ID
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_user \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"userId": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getUser({
organizationId: " (Unique identifier for a given organization.)",
userId: " (Unique identifier for a given user.)"
});
```
```json 200 theme={"system"}
{
"user": {
"userId": "",
"userName": "",
"userEmail": "",
"userPhoneNumber": "",
"authenticators": [
{
"transports": [
""
],
"attestationType": "",
"aaguid": "",
"credentialId": "",
"model": "",
"credential": {
"publicKey": "",
"type": ""
},
"authenticatorId": "",
"authenticatorName": "",
"createdAt": {
"seconds": "",
"nanos": ""
},
"updatedAt": {
"seconds": "",
"nanos": ""
}
}
],
"apiKeys": [
{
"credential": {
"publicKey": "",
"type": ""
},
"apiKeyId": "",
"apiKeyName": "",
"createdAt": {
"seconds": "",
"nanos": ""
},
"updatedAt": {
"seconds": "",
"nanos": ""
},
"expirationSeconds": ""
}
],
"userTags": [
""
],
"oauthProviders": [
{
"providerId": "",
"providerName": "",
"issuer": "",
"audience": "",
"subject": "",
"createdAt": {
"seconds": "",
"nanos": ""
},
"updatedAt": {
"seconds": "",
"nanos": ""
}
}
],
"createdAt": {
"seconds": "",
"nanos": ""
},
"updatedAt": {
"seconds": "",
"nanos": ""
}
}
}
```
# Get verified sub-organizations
Source: https://docs.turnkey.com/api-reference/queries/get-verified-sub-organizations
Get all email or phone verified suborg IDs associated given a parent org ID.
Unique identifier for the parent organization. This is used to find sub-organizations within it.
Specifies the type of filter to apply, i.e 'EMAIL', 'PHONE\_NUMBER'.
The value of the filter to apply for the specified type. For example, a specific email or phone number string.
paginationOptions field
A limit of the number of object to be returned, between 1 and 100. Defaults to 10.
A pagination cursor. This is an object ID that enables you to fetch all objects before this ID.
A pagination cursor. This is an object ID that enables you to fetch all objects after this ID.
A successful response returns the following fields:
List of unique identifiers for the matching sub-organizations.
item field
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/list_verified_suborgs \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"filterType": "",
"filterValue": "",
"paginationOptions": {
"limit": "",
"before": "",
"after": ""
}
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getVerifiedSubOrgIds({
organizationId: " (Unique identifier for the parent organization. This is used to find sub-organizations within it.)",
filterType: " (Specifies the type of filter to apply, i.e 'EMAIL', 'PHONE_NUMBER'.)",
filterValue: " (The value of the filter to apply for the specified type. For example, a specific email or phone number string.)",
paginationOptions: { // paginationOptions field,
limit: " (A limit of the number of object to be returned, between 1 and 100. Defaults to 10.)",
before: " (A pagination cursor. This is an object ID that enables you to fetch all objects before this ID.)",
after: " (A pagination cursor. This is an object ID that enables you to fetch all objects after this ID.)",
}
});
```
```json 200 theme={"system"}
{
"organizationIds": [
""
]
}
```
# Get wallet
Source: https://docs.turnkey.com/api-reference/queries/get-wallet
Get details about a wallet.
Unique identifier for a given organization.
Unique identifier for a given wallet.
A successful response returns the following fields:
wallet field
Unique identifier for a given Wallet.
Human-readable name for a Wallet.
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
True when a given Wallet is exported, false otherwise.
True when a given Wallet is imported, false otherwise.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_wallet \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"walletId": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getWallet({
organizationId: " (Unique identifier for a given organization.)",
walletId: " (Unique identifier for a given wallet.)"
});
```
```json 200 theme={"system"}
{
"wallet": {
"walletId": "",
"walletName": "",
"createdAt": {
"seconds": "",
"nanos": ""
},
"updatedAt": {
"seconds": "",
"nanos": ""
},
"exported": "",
"imported": ""
}
}
```
# Get wallet account
Source: https://docs.turnkey.com/api-reference/queries/get-wallet-account
Get a single wallet account.
Unique identifier for a given organization.
Unique identifier for a given wallet.
Address corresponding to a wallet account.
Path corresponding to a wallet account.
A successful response returns the following fields:
account field
Unique identifier for a given Wallet Account.
The Organization the Account belongs to.
The Wallet the Account was derived from.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
pathFormat field
Enum options: `PATH_FORMAT_BIP32`
Path used to generate the Account.
addressFormat field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
Address generated using the Wallet seed and Account parameters.
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
The public component of this wallet account's underlying cryptographic key pair.
walletDetails field
Unique identifier for a given Wallet.
Human-readable name for a Wallet.
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
True when a given Wallet is exported, false otherwise.
True when a given Wallet is imported, false otherwise.
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/get_wallet_account \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"walletId": "",
"address": "",
"path": ""
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getWalletAccount({
organizationId: " (Unique identifier for a given organization.)",
walletId: " (Unique identifier for a given wallet.)",
address: " (Address corresponding to a wallet account.)",
path: " (Path corresponding to a wallet account.)"
});
```
```json 200 theme={"system"}
{
"account": {
"walletAccountId": "",
"organizationId": "",
"walletId": "",
"curve": "",
"pathFormat": "",
"path": "",
"addressFormat": "",
"address": "",
"createdAt": {
"seconds": "",
"nanos": ""
},
"updatedAt": {
"seconds": "",
"nanos": ""
},
"publicKey": "",
"walletDetails": {
"walletId": "",
"walletName": "",
"createdAt": {
"seconds": "",
"nanos": ""
},
"updatedAt": {
"seconds": "",
"nanos": ""
},
"exported": "",
"imported": ""
}
}
}
```
# List activities
Source: https://docs.turnkey.com/api-reference/queries/list-activities
List all activities within an organization.
Unique identifier for a given organization.
Enum options: `ACTIVITY_STATUS_CREATED`, `ACTIVITY_STATUS_PENDING`, `ACTIVITY_STATUS_COMPLETED`, `ACTIVITY_STATUS_FAILED`, `ACTIVITY_STATUS_CONSENSUS_NEEDED`, `ACTIVITY_STATUS_REJECTED`
paginationOptions field
A limit of the number of object to be returned, between 1 and 100. Defaults to 10.
A pagination cursor. This is an object ID that enables you to fetch all objects before this ID.
A pagination cursor. This is an object ID that enables you to fetch all objects after this ID.
Enum options: `ACTIVITY_TYPE_CREATE_API_KEYS`, `ACTIVITY_TYPE_CREATE_USERS`, `ACTIVITY_TYPE_CREATE_PRIVATE_KEYS`, `ACTIVITY_TYPE_SIGN_RAW_PAYLOAD`, `ACTIVITY_TYPE_CREATE_INVITATIONS`, `ACTIVITY_TYPE_ACCEPT_INVITATION`, `ACTIVITY_TYPE_CREATE_POLICY`, `ACTIVITY_TYPE_DISABLE_PRIVATE_KEY`, `ACTIVITY_TYPE_DELETE_USERS`, `ACTIVITY_TYPE_DELETE_API_KEYS`, `ACTIVITY_TYPE_DELETE_INVITATION`, `ACTIVITY_TYPE_DELETE_ORGANIZATION`, `ACTIVITY_TYPE_DELETE_POLICY`, `ACTIVITY_TYPE_CREATE_USER_TAG`, `ACTIVITY_TYPE_DELETE_USER_TAGS`, `ACTIVITY_TYPE_CREATE_ORGANIZATION`, `ACTIVITY_TYPE_SIGN_TRANSACTION`, `ACTIVITY_TYPE_APPROVE_ACTIVITY`, `ACTIVITY_TYPE_REJECT_ACTIVITY`, `ACTIVITY_TYPE_DELETE_AUTHENTICATORS`, `ACTIVITY_TYPE_CREATE_AUTHENTICATORS`, `ACTIVITY_TYPE_CREATE_PRIVATE_KEY_TAG`, `ACTIVITY_TYPE_DELETE_PRIVATE_KEY_TAGS`, `ACTIVITY_TYPE_SET_PAYMENT_METHOD`, `ACTIVITY_TYPE_ACTIVATE_BILLING_TIER`, `ACTIVITY_TYPE_DELETE_PAYMENT_METHOD`, `ACTIVITY_TYPE_CREATE_POLICY_V2`, `ACTIVITY_TYPE_CREATE_POLICY_V3`, `ACTIVITY_TYPE_CREATE_API_ONLY_USERS`, `ACTIVITY_TYPE_UPDATE_ROOT_QUORUM`, `ACTIVITY_TYPE_UPDATE_USER_TAG`, `ACTIVITY_TYPE_UPDATE_PRIVATE_KEY_TAG`, `ACTIVITY_TYPE_CREATE_AUTHENTICATORS_V2`, `ACTIVITY_TYPE_CREATE_ORGANIZATION_V2`, `ACTIVITY_TYPE_CREATE_USERS_V2`, `ACTIVITY_TYPE_ACCEPT_INVITATION_V2`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V2`, `ACTIVITY_TYPE_UPDATE_ALLOWED_ORIGINS`, `ACTIVITY_TYPE_CREATE_PRIVATE_KEYS_V2`, `ACTIVITY_TYPE_UPDATE_USER`, `ACTIVITY_TYPE_UPDATE_POLICY`, `ACTIVITY_TYPE_SET_PAYMENT_METHOD_V2`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V3`, `ACTIVITY_TYPE_CREATE_WALLET`, `ACTIVITY_TYPE_CREATE_WALLET_ACCOUNTS`, `ACTIVITY_TYPE_INIT_USER_EMAIL_RECOVERY`, `ACTIVITY_TYPE_RECOVER_USER`, `ACTIVITY_TYPE_SET_ORGANIZATION_FEATURE`, `ACTIVITY_TYPE_REMOVE_ORGANIZATION_FEATURE`, `ACTIVITY_TYPE_SIGN_RAW_PAYLOAD_V2`, `ACTIVITY_TYPE_SIGN_TRANSACTION_V2`, `ACTIVITY_TYPE_EXPORT_PRIVATE_KEY`, `ACTIVITY_TYPE_EXPORT_WALLET`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V4`, `ACTIVITY_TYPE_EMAIL_AUTH`, `ACTIVITY_TYPE_EXPORT_WALLET_ACCOUNT`, `ACTIVITY_TYPE_INIT_IMPORT_WALLET`, `ACTIVITY_TYPE_IMPORT_WALLET`, `ACTIVITY_TYPE_INIT_IMPORT_PRIVATE_KEY`, `ACTIVITY_TYPE_IMPORT_PRIVATE_KEY`, `ACTIVITY_TYPE_CREATE_POLICIES`, `ACTIVITY_TYPE_SIGN_RAW_PAYLOADS`, `ACTIVITY_TYPE_CREATE_READ_ONLY_SESSION`, `ACTIVITY_TYPE_CREATE_OAUTH_PROVIDERS`, `ACTIVITY_TYPE_DELETE_OAUTH_PROVIDERS`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V5`, `ACTIVITY_TYPE_OAUTH`, `ACTIVITY_TYPE_CREATE_API_KEYS_V2`, `ACTIVITY_TYPE_CREATE_READ_WRITE_SESSION`, `ACTIVITY_TYPE_EMAIL_AUTH_V2`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V6`, `ACTIVITY_TYPE_DELETE_PRIVATE_KEYS`, `ACTIVITY_TYPE_DELETE_WALLETS`, `ACTIVITY_TYPE_CREATE_READ_WRITE_SESSION_V2`, `ACTIVITY_TYPE_DELETE_SUB_ORGANIZATION`, `ACTIVITY_TYPE_INIT_OTP_AUTH`, `ACTIVITY_TYPE_OTP_AUTH`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V7`, `ACTIVITY_TYPE_UPDATE_WALLET`, `ACTIVITY_TYPE_UPDATE_POLICY_V2`, `ACTIVITY_TYPE_CREATE_USERS_V3`, `ACTIVITY_TYPE_INIT_OTP_AUTH_V2`, `ACTIVITY_TYPE_INIT_OTP`, `ACTIVITY_TYPE_VERIFY_OTP`, `ACTIVITY_TYPE_OTP_LOGIN`, `ACTIVITY_TYPE_STAMP_LOGIN`, `ACTIVITY_TYPE_OAUTH_LOGIN`, `ACTIVITY_TYPE_UPDATE_USER_NAME`, `ACTIVITY_TYPE_UPDATE_USER_EMAIL`, `ACTIVITY_TYPE_UPDATE_USER_PHONE_NUMBER`, `ACTIVITY_TYPE_INIT_FIAT_ON_RAMP`, `ACTIVITY_TYPE_CREATE_SMART_CONTRACT_INTERFACE`, `ACTIVITY_TYPE_DELETE_SMART_CONTRACT_INTERFACE`, `ACTIVITY_TYPE_ENABLE_AUTH_PROXY`, `ACTIVITY_TYPE_DISABLE_AUTH_PROXY`, `ACTIVITY_TYPE_UPDATE_AUTH_PROXY_CONFIG`, `ACTIVITY_TYPE_CREATE_OAUTH2_CREDENTIAL`, `ACTIVITY_TYPE_UPDATE_OAUTH2_CREDENTIAL`, `ACTIVITY_TYPE_DELETE_OAUTH2_CREDENTIAL`, `ACTIVITY_TYPE_OAUTH2_AUTHENTICATE`, `ACTIVITY_TYPE_DELETE_WALLET_ACCOUNTS`, `ACTIVITY_TYPE_DELETE_POLICIES`, `ACTIVITY_TYPE_ETH_SEND_RAW_TRANSACTION`, `ACTIVITY_TYPE_ETH_SEND_TRANSACTION`, `ACTIVITY_TYPE_CREATE_FIAT_ON_RAMP_CREDENTIAL`, `ACTIVITY_TYPE_UPDATE_FIAT_ON_RAMP_CREDENTIAL`, `ACTIVITY_TYPE_DELETE_FIAT_ON_RAMP_CREDENTIAL`, `ACTIVITY_TYPE_EMAIL_AUTH_V3`, `ACTIVITY_TYPE_INIT_USER_EMAIL_RECOVERY_V2`, `ACTIVITY_TYPE_INIT_OTP_AUTH_V3`, `ACTIVITY_TYPE_INIT_OTP_V2`, `ACTIVITY_TYPE_UPSERT_GAS_USAGE_CONFIG`, `ACTIVITY_TYPE_CREATE_TVC_APP`, `ACTIVITY_TYPE_CREATE_TVC_DEPLOYMENT`, `ACTIVITY_TYPE_CREATE_TVC_MANIFEST_APPROVALS`, `ACTIVITY_TYPE_SOL_SEND_TRANSACTION`
A successful response returns the following fields:
A list of activities.
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
status field
Enum options: `ACTIVITY_STATUS_CREATED`, `ACTIVITY_STATUS_PENDING`, `ACTIVITY_STATUS_COMPLETED`, `ACTIVITY_STATUS_FAILED`, `ACTIVITY_STATUS_CONSENSUS_NEEDED`, `ACTIVITY_STATUS_REJECTED`
type field
Enum options: `ACTIVITY_TYPE_CREATE_API_KEYS`, `ACTIVITY_TYPE_CREATE_USERS`, `ACTIVITY_TYPE_CREATE_PRIVATE_KEYS`, `ACTIVITY_TYPE_SIGN_RAW_PAYLOAD`, `ACTIVITY_TYPE_CREATE_INVITATIONS`, `ACTIVITY_TYPE_ACCEPT_INVITATION`, `ACTIVITY_TYPE_CREATE_POLICY`, `ACTIVITY_TYPE_DISABLE_PRIVATE_KEY`, `ACTIVITY_TYPE_DELETE_USERS`, `ACTIVITY_TYPE_DELETE_API_KEYS`, `ACTIVITY_TYPE_DELETE_INVITATION`, `ACTIVITY_TYPE_DELETE_ORGANIZATION`, `ACTIVITY_TYPE_DELETE_POLICY`, `ACTIVITY_TYPE_CREATE_USER_TAG`, `ACTIVITY_TYPE_DELETE_USER_TAGS`, `ACTIVITY_TYPE_CREATE_ORGANIZATION`, `ACTIVITY_TYPE_SIGN_TRANSACTION`, `ACTIVITY_TYPE_APPROVE_ACTIVITY`, `ACTIVITY_TYPE_REJECT_ACTIVITY`, `ACTIVITY_TYPE_DELETE_AUTHENTICATORS`, `ACTIVITY_TYPE_CREATE_AUTHENTICATORS`, `ACTIVITY_TYPE_CREATE_PRIVATE_KEY_TAG`, `ACTIVITY_TYPE_DELETE_PRIVATE_KEY_TAGS`, `ACTIVITY_TYPE_SET_PAYMENT_METHOD`, `ACTIVITY_TYPE_ACTIVATE_BILLING_TIER`, `ACTIVITY_TYPE_DELETE_PAYMENT_METHOD`, `ACTIVITY_TYPE_CREATE_POLICY_V2`, `ACTIVITY_TYPE_CREATE_POLICY_V3`, `ACTIVITY_TYPE_CREATE_API_ONLY_USERS`, `ACTIVITY_TYPE_UPDATE_ROOT_QUORUM`, `ACTIVITY_TYPE_UPDATE_USER_TAG`, `ACTIVITY_TYPE_UPDATE_PRIVATE_KEY_TAG`, `ACTIVITY_TYPE_CREATE_AUTHENTICATORS_V2`, `ACTIVITY_TYPE_CREATE_ORGANIZATION_V2`, `ACTIVITY_TYPE_CREATE_USERS_V2`, `ACTIVITY_TYPE_ACCEPT_INVITATION_V2`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V2`, `ACTIVITY_TYPE_UPDATE_ALLOWED_ORIGINS`, `ACTIVITY_TYPE_CREATE_PRIVATE_KEYS_V2`, `ACTIVITY_TYPE_UPDATE_USER`, `ACTIVITY_TYPE_UPDATE_POLICY`, `ACTIVITY_TYPE_SET_PAYMENT_METHOD_V2`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V3`, `ACTIVITY_TYPE_CREATE_WALLET`, `ACTIVITY_TYPE_CREATE_WALLET_ACCOUNTS`, `ACTIVITY_TYPE_INIT_USER_EMAIL_RECOVERY`, `ACTIVITY_TYPE_RECOVER_USER`, `ACTIVITY_TYPE_SET_ORGANIZATION_FEATURE`, `ACTIVITY_TYPE_REMOVE_ORGANIZATION_FEATURE`, `ACTIVITY_TYPE_SIGN_RAW_PAYLOAD_V2`, `ACTIVITY_TYPE_SIGN_TRANSACTION_V2`, `ACTIVITY_TYPE_EXPORT_PRIVATE_KEY`, `ACTIVITY_TYPE_EXPORT_WALLET`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V4`, `ACTIVITY_TYPE_EMAIL_AUTH`, `ACTIVITY_TYPE_EXPORT_WALLET_ACCOUNT`, `ACTIVITY_TYPE_INIT_IMPORT_WALLET`, `ACTIVITY_TYPE_IMPORT_WALLET`, `ACTIVITY_TYPE_INIT_IMPORT_PRIVATE_KEY`, `ACTIVITY_TYPE_IMPORT_PRIVATE_KEY`, `ACTIVITY_TYPE_CREATE_POLICIES`, `ACTIVITY_TYPE_SIGN_RAW_PAYLOADS`, `ACTIVITY_TYPE_CREATE_READ_ONLY_SESSION`, `ACTIVITY_TYPE_CREATE_OAUTH_PROVIDERS`, `ACTIVITY_TYPE_DELETE_OAUTH_PROVIDERS`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V5`, `ACTIVITY_TYPE_OAUTH`, `ACTIVITY_TYPE_CREATE_API_KEYS_V2`, `ACTIVITY_TYPE_CREATE_READ_WRITE_SESSION`, `ACTIVITY_TYPE_EMAIL_AUTH_V2`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V6`, `ACTIVITY_TYPE_DELETE_PRIVATE_KEYS`, `ACTIVITY_TYPE_DELETE_WALLETS`, `ACTIVITY_TYPE_CREATE_READ_WRITE_SESSION_V2`, `ACTIVITY_TYPE_DELETE_SUB_ORGANIZATION`, `ACTIVITY_TYPE_INIT_OTP_AUTH`, `ACTIVITY_TYPE_OTP_AUTH`, `ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V7`, `ACTIVITY_TYPE_UPDATE_WALLET`, `ACTIVITY_TYPE_UPDATE_POLICY_V2`, `ACTIVITY_TYPE_CREATE_USERS_V3`, `ACTIVITY_TYPE_INIT_OTP_AUTH_V2`, `ACTIVITY_TYPE_INIT_OTP`, `ACTIVITY_TYPE_VERIFY_OTP`, `ACTIVITY_TYPE_OTP_LOGIN`, `ACTIVITY_TYPE_STAMP_LOGIN`, `ACTIVITY_TYPE_OAUTH_LOGIN`, `ACTIVITY_TYPE_UPDATE_USER_NAME`, `ACTIVITY_TYPE_UPDATE_USER_EMAIL`, `ACTIVITY_TYPE_UPDATE_USER_PHONE_NUMBER`, `ACTIVITY_TYPE_INIT_FIAT_ON_RAMP`, `ACTIVITY_TYPE_CREATE_SMART_CONTRACT_INTERFACE`, `ACTIVITY_TYPE_DELETE_SMART_CONTRACT_INTERFACE`, `ACTIVITY_TYPE_ENABLE_AUTH_PROXY`, `ACTIVITY_TYPE_DISABLE_AUTH_PROXY`, `ACTIVITY_TYPE_UPDATE_AUTH_PROXY_CONFIG`, `ACTIVITY_TYPE_CREATE_OAUTH2_CREDENTIAL`, `ACTIVITY_TYPE_UPDATE_OAUTH2_CREDENTIAL`, `ACTIVITY_TYPE_DELETE_OAUTH2_CREDENTIAL`, `ACTIVITY_TYPE_OAUTH2_AUTHENTICATE`, `ACTIVITY_TYPE_DELETE_WALLET_ACCOUNTS`, `ACTIVITY_TYPE_DELETE_POLICIES`, `ACTIVITY_TYPE_ETH_SEND_RAW_TRANSACTION`, `ACTIVITY_TYPE_ETH_SEND_TRANSACTION`, `ACTIVITY_TYPE_CREATE_FIAT_ON_RAMP_CREDENTIAL`, `ACTIVITY_TYPE_UPDATE_FIAT_ON_RAMP_CREDENTIAL`, `ACTIVITY_TYPE_DELETE_FIAT_ON_RAMP_CREDENTIAL`, `ACTIVITY_TYPE_EMAIL_AUTH_V3`, `ACTIVITY_TYPE_INIT_USER_EMAIL_RECOVERY_V2`, `ACTIVITY_TYPE_INIT_OTP_AUTH_V3`, `ACTIVITY_TYPE_INIT_OTP_V2`, `ACTIVITY_TYPE_UPSERT_GAS_USAGE_CONFIG`, `ACTIVITY_TYPE_CREATE_TVC_APP`, `ACTIVITY_TYPE_CREATE_TVC_DEPLOYMENT`, `ACTIVITY_TYPE_CREATE_TVC_MANIFEST_APPROVALS`, `ACTIVITY_TYPE_SOL_SEND_TRANSACTION`
intent field
createOrganizationIntent field
Human-readable name for an Organization.
The root user's email address.
rootAuthenticator field
Human-readable name for an Authenticator.
Unique identifier for a given User.
attestation field
id field
type field
Enum options: `public-key`
rawId field
authenticatorAttachment field
Enum options: `cross-platform`, `platform`
response field
clientDataJson field
attestationObject field
transports field
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
authenticatorAttachment field
Enum options: `cross-platform`, `platform`
clientExtensionResults field
appid field
appidExclude field
credProps field
rk field
Challenge presented for authentication purposes.
Unique identifier for the root user object.
createAuthenticatorsIntent field
A list of Authenticators.
Human-readable name for an Authenticator.
Unique identifier for a given User.
attestation field
id field
type field
Enum options: `public-key`
rawId field
authenticatorAttachment field
Enum options: `cross-platform`, `platform`
response field
clientDataJson field
attestationObject field
transports field
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
authenticatorAttachment field
Enum options: `cross-platform`, `platform`
clientExtensionResults field
appid field
appidExclude field
credProps field
rk field
Challenge presented for authentication purposes.
Unique identifier for a given User.
createUsersIntent field
A list of Users.
Human-readable name for a User.
The user's email address.
accessType field
Enum options: `ACCESS_TYPE_WEB`, `ACCESS_TYPE_API`, `ACCESS_TYPE_ALL`
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Unique identifier for a given User.
attestation field
id field
type field
Enum options: `public-key`
rawId field
authenticatorAttachment field
Enum options: `cross-platform`, `platform`
response field
clientDataJson field
attestationObject field
transports field
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
authenticatorAttachment field
Enum options: `cross-platform`, `platform`
clientExtensionResults field
appid field
appidExclude field
credProps field
rk field
Challenge presented for authentication purposes.
A list of User Tag IDs. This field, if not needed, should be an empty array in your request body.
item field
createPrivateKeysIntent field
A list of Private Keys.
Human-readable name for a Private Key.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
A list of Private Key Tag IDs. This field, if not needed, should be an empty array in your request body.
item field
Cryptocurrency-specific formats for a derived address (e.g., Ethereum).
item field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
signRawPayloadIntent field
Unique identifier for a given Private Key.
Raw unsigned payload to be signed.
encoding field
Enum options: `PAYLOAD_ENCODING_HEXADECIMAL`, `PAYLOAD_ENCODING_TEXT_UTF8`, `PAYLOAD_ENCODING_EIP712`, `PAYLOAD_ENCODING_EIP7702_AUTHORIZATION`
hashFunction field
Enum options: `HASH_FUNCTION_NO_OP`, `HASH_FUNCTION_SHA256`, `HASH_FUNCTION_KECCAK256`, `HASH_FUNCTION_NOT_APPLICABLE`
createInvitationsIntent field
A list of Invitations.
The name of the intended Invitation recipient.
The email address of the intended Invitation recipient.
A list of tags assigned to the Invitation recipient. This field, if not needed, should be an empty array in your request body.
item field
accessType field
Enum options: `ACCESS_TYPE_WEB`, `ACCESS_TYPE_API`, `ACCESS_TYPE_ALL`
Unique identifier for the Sender of an Invitation.
acceptInvitationIntent field
Unique identifier for a given Invitation object.
Unique identifier for a given User.
authenticator field
Human-readable name for an Authenticator.
Unique identifier for a given User.
attestation field
id field
type field
Enum options: `public-key`
rawId field
authenticatorAttachment field
Enum options: `cross-platform`, `platform`
response field
clientDataJson field
attestationObject field
transports field
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
authenticatorAttachment field
Enum options: `cross-platform`, `platform`
clientExtensionResults field
appid field
appidExclude field
credProps field
rk field
Challenge presented for authentication purposes.
createPolicyIntent field
Human-readable name for a Policy.
A list of simple functions each including a subject, target and boolean. See Policy Engine Language section for additional details.
subject field
operator field
Enum options: `OPERATOR_EQUAL`, `OPERATOR_MORE_THAN`, `OPERATOR_MORE_THAN_OR_EQUAL`, `OPERATOR_LESS_THAN`, `OPERATOR_LESS_THAN_OR_EQUAL`, `OPERATOR_CONTAINS`, `OPERATOR_NOT_EQUAL`, `OPERATOR_IN`, `OPERATOR_NOT_IN`, `OPERATOR_CONTAINS_ONE`, `OPERATOR_CONTAINS_ALL`
target field
effect field
Enum options: `EFFECT_ALLOW`, `EFFECT_DENY`
notes field
disablePrivateKeyIntent field
Unique identifier for a given Private Key.
deleteUsersIntent field
A list of User IDs.
item field
deleteAuthenticatorsIntent field
Unique identifier for a given User.
A list of Authenticator IDs.
item field
deleteInvitationIntent field
Unique identifier for a given Invitation object.
deleteOrganizationIntent field
Unique identifier for a given Organization.
deletePolicyIntent field
Unique identifier for a given Policy.
createUserTagIntent field
Human-readable name for a User Tag.
A list of User IDs.
item field
deleteUserTagsIntent field
A list of User Tag IDs.
item field
signTransactionIntent field
Unique identifier for a given Private Key.
Raw unsigned transaction to be signed by a particular Private Key.
type field
Enum options: `TRANSACTION_TYPE_ETHEREUM`, `TRANSACTION_TYPE_SOLANA`, `TRANSACTION_TYPE_TRON`, `TRANSACTION_TYPE_BITCOIN`, `TRANSACTION_TYPE_TEMPO`
createApiKeysIntent field
A list of API Keys.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Optional window (in seconds) indicating how long the API Key should last.
Unique identifier for a given User.
deleteApiKeysIntent field
Unique identifier for a given User.
A list of API Key IDs.
item field
approveActivityIntent field
An artifact verifying a User's action.
rejectActivityIntent field
An artifact verifying a User's action.
createPrivateKeyTagIntent field
Human-readable name for a Private Key Tag.
A list of Private Key IDs.
item field
deletePrivateKeyTagsIntent field
A list of Private Key Tag IDs.
item field
createPolicyIntentV2 field
Human-readable name for a Policy.
A list of simple functions each including a subject, target and boolean. See Policy Engine Language section for additional details.
subject field
operator field
Enum options: `OPERATOR_EQUAL`, `OPERATOR_MORE_THAN`, `OPERATOR_MORE_THAN_OR_EQUAL`, `OPERATOR_LESS_THAN`, `OPERATOR_LESS_THAN_OR_EQUAL`, `OPERATOR_CONTAINS`, `OPERATOR_NOT_EQUAL`, `OPERATOR_IN`, `OPERATOR_NOT_IN`, `OPERATOR_CONTAINS_ONE`, `OPERATOR_CONTAINS_ALL`
targets field
item field
effect field
Enum options: `EFFECT_ALLOW`, `EFFECT_DENY`
notes field
setPaymentMethodIntent field
The account number of the customer's credit card.
The verification digits of the customer's credit card.
The month that the credit card expires.
The year that the credit card expires.
The email that will receive invoices for the credit card.
The name associated with the credit card.
activateBillingTierIntent field
The product that the customer wants to subscribe to.
deletePaymentMethodIntent field
The payment method that the customer wants to remove.
createPolicyIntentV3 field
Human-readable name for a Policy.
effect field
Enum options: `EFFECT_ALLOW`, `EFFECT_DENY`
The condition expression that triggers the Effect
The consensus expression that triggers the Effect
Notes for a Policy.
createApiOnlyUsersIntent field
A list of API-only Users to create.
The name of the new API-only User.
The email address for this API-only User (optional).
A list of tags assigned to the new API-only User. This field, if not needed, should be an empty array in your request body.
item field
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Optional window (in seconds) indicating how long the API Key should last.
updateRootQuorumIntent field
The threshold of unique approvals to reach quorum.
The unique identifiers of users who comprise the quorum set.
item field
updateUserTagIntent field
Unique identifier for a given User Tag.
The new, human-readable name for the tag with the given ID.
A list of User IDs to add this tag to.
item field
A list of User IDs to remove this tag from.
item field
updatePrivateKeyTagIntent field
Unique identifier for a given Private Key Tag.
The new, human-readable name for the tag with the given ID.
A list of Private Keys IDs to add this tag to.
item field
A list of Private Key IDs to remove this tag from.
item field
createAuthenticatorsIntentV2 field
A list of Authenticators.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
Unique identifier for a given User.
acceptInvitationIntentV2 field
Unique identifier for a given Invitation object.
Unique identifier for a given User.
authenticator field
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
createOrganizationIntentV2 field
Human-readable name for an Organization.
The root user's email address.
rootAuthenticator field
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
Unique identifier for the root user object.
createUsersIntentV2 field
A list of Users.
Human-readable name for a User.
The user's email address.
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
A list of User Tag IDs. This field, if not needed, should be an empty array in your request body.
item field
createSubOrganizationIntent field
Name for this sub-organization
rootAuthenticator field
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
createSubOrganizationIntentV2 field
Name for this sub-organization
Root users to create within this sub-organization
Human-readable name for a User.
The user's email address.
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
updateAllowedOriginsIntent field
Additional origins requests are allowed from besides Turnkey origins
item field
createPrivateKeysIntentV2 field
A list of Private Keys.
Human-readable name for a Private Key.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
A list of Private Key Tag IDs. This field, if not needed, should be an empty array in your request body.
item field
Cryptocurrency-specific formats for a derived address (e.g., Ethereum).
item field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
updateUserIntent field
Unique identifier for a given User.
Human-readable name for a User.
The user's email address.
An updated list of User Tags to apply to this User. This field, if not needed, should be an empty array in your request body.
item field
The user's phone number in E.164 format e.g. +13214567890
updatePolicyIntent field
Unique identifier for a given Policy.
Human-readable name for a Policy.
policyEffect field
Enum options: `EFFECT_ALLOW`, `EFFECT_DENY`
The condition expression that triggers the Effect (optional).
The consensus expression that triggers the Effect (optional).
Accompanying notes for a Policy (optional).
setPaymentMethodIntentV2 field
The id of the payment method that was created clientside.
The email that will receive invoices for the credit card.
The name associated with the credit card.
createSubOrganizationIntentV3 field
Name for this sub-organization
Root users to create within this sub-organization
Human-readable name for a User.
The user's email address.
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
A list of Private Keys.
Human-readable name for a Private Key.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
A list of Private Key Tag IDs. This field, if not needed, should be an empty array in your request body.
item field
Cryptocurrency-specific formats for a derived address (e.g., Ethereum).
item field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
createWalletIntent field
Human-readable name for a Wallet.
A list of wallet Accounts. This field, if not needed, should be an empty array in your request body.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
pathFormat field
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
addressFormat field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24.
createWalletAccountsIntent field
Unique identifier for a given Wallet.
A list of wallet Accounts.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
pathFormat field
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
addressFormat field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
Indicates if the wallet accounts should be persisted. This is helpful if you'd like to see the addresses of different derivation paths without actually creating the accounts. Defaults to true.
initUserEmailRecoveryIntent field
Email of the user starting recovery
Client-side public key generated by the user, to which the recovery bundle will be encrypted.
Expiration window (in seconds) indicating how long the recovery credential is valid for. If not provided, a default of 15 minutes will be used.
emailCustomization field
The name of the application.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
Optional custom email address from which to send the OTP email
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Optional custom email address to use as reply-to
recoverUserIntent field
authenticator field
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
Unique identifier for the user performing recovery.
setOrganizationFeatureIntent field
name field
Enum options: `FEATURE_NAME_ROOT_USER_EMAIL_RECOVERY`, `FEATURE_NAME_WEBAUTHN_ORIGINS`, `FEATURE_NAME_EMAIL_AUTH`, `FEATURE_NAME_EMAIL_RECOVERY`, `FEATURE_NAME_WEBHOOK`, `FEATURE_NAME_SMS_AUTH`, `FEATURE_NAME_OTP_EMAIL_AUTH`, `FEATURE_NAME_AUTH_PROXY`
Optional value for the feature. Will override existing values if feature is already set.
removeOrganizationFeatureIntent field
name field
Enum options: `FEATURE_NAME_ROOT_USER_EMAIL_RECOVERY`, `FEATURE_NAME_WEBAUTHN_ORIGINS`, `FEATURE_NAME_EMAIL_AUTH`, `FEATURE_NAME_EMAIL_RECOVERY`, `FEATURE_NAME_WEBHOOK`, `FEATURE_NAME_SMS_AUTH`, `FEATURE_NAME_OTP_EMAIL_AUTH`, `FEATURE_NAME_AUTH_PROXY`
signRawPayloadIntentV2 field
A Wallet account address, Private Key address, or Private Key identifier.
Raw unsigned payload to be signed.
encoding field
Enum options: `PAYLOAD_ENCODING_HEXADECIMAL`, `PAYLOAD_ENCODING_TEXT_UTF8`, `PAYLOAD_ENCODING_EIP712`, `PAYLOAD_ENCODING_EIP7702_AUTHORIZATION`
hashFunction field
Enum options: `HASH_FUNCTION_NO_OP`, `HASH_FUNCTION_SHA256`, `HASH_FUNCTION_KECCAK256`, `HASH_FUNCTION_NOT_APPLICABLE`
signTransactionIntentV2 field
A Wallet account address, Private Key address, or Private Key identifier.
Raw unsigned transaction to be signed
type field
Enum options: `TRANSACTION_TYPE_ETHEREUM`, `TRANSACTION_TYPE_SOLANA`, `TRANSACTION_TYPE_TRON`, `TRANSACTION_TYPE_BITCOIN`, `TRANSACTION_TYPE_TEMPO`
exportPrivateKeyIntent field
Unique identifier for a given Private Key.
Client-side public key generated by the user, to which the export bundle will be encrypted.
exportWalletIntent field
Unique identifier for a given Wallet.
Client-side public key generated by the user, to which the export bundle will be encrypted.
language field
Enum options: `MNEMONIC_LANGUAGE_ENGLISH`, `MNEMONIC_LANGUAGE_SIMPLIFIED_CHINESE`, `MNEMONIC_LANGUAGE_TRADITIONAL_CHINESE`, `MNEMONIC_LANGUAGE_CZECH`, `MNEMONIC_LANGUAGE_FRENCH`, `MNEMONIC_LANGUAGE_ITALIAN`, `MNEMONIC_LANGUAGE_JAPANESE`, `MNEMONIC_LANGUAGE_KOREAN`, `MNEMONIC_LANGUAGE_SPANISH`
createSubOrganizationIntentV4 field
Name for this sub-organization
Root users to create within this sub-organization
Human-readable name for a User.
The user's email address.
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
wallet field
Human-readable name for a Wallet.
A list of wallet Accounts. This field, if not needed, should be an empty array in your request body.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
pathFormat field
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
addressFormat field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24.
Disable email recovery for the sub-organization
Disable email auth for the sub-organization
emailAuthIntent field
Email of the authenticating user.
Client-side public key generated by the user, to which the email auth bundle (credentials) will be encrypted.
Optional human-readable name for an API Key. If none provided, default to Email Auth - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
emailCustomization field
The name of the application.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
Invalidate all other previously generated Email Auth API keys
Optional custom email address from which to send the email
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Optional custom email address to use as reply-to
exportWalletAccountIntent field
Address to identify Wallet Account.
Client-side public key generated by the user, to which the export bundle will be encrypted.
initImportWalletIntent field
The ID of the User importing a Wallet.
importWalletIntent field
The ID of the User importing a Wallet.
Human-readable name for a Wallet.
Bundle containing a wallet mnemonic encrypted to the enclave's target public key.
A list of wallet Accounts.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
pathFormat field
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
addressFormat field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
initImportPrivateKeyIntent field
The ID of the User importing a Private Key.
importPrivateKeyIntent field
The ID of the User importing a Private Key.
Human-readable name for a Private Key.
Bundle containing a raw private key encrypted to the enclave's target public key.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
Cryptocurrency-specific formats for a derived address (e.g., Ethereum).
item field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
createPoliciesIntent field
An array of policy intents to be created.
Human-readable name for a Policy.
effect field
Enum options: `EFFECT_ALLOW`, `EFFECT_DENY`
The condition expression that triggers the Effect
The consensus expression that triggers the Effect
Notes for a Policy.
signRawPayloadsIntent field
A Wallet account address, Private Key address, or Private Key identifier.
An array of raw unsigned payloads to be signed.
item field
encoding field
Enum options: `PAYLOAD_ENCODING_HEXADECIMAL`, `PAYLOAD_ENCODING_TEXT_UTF8`, `PAYLOAD_ENCODING_EIP712`, `PAYLOAD_ENCODING_EIP7702_AUTHORIZATION`
hashFunction field
Enum options: `HASH_FUNCTION_NO_OP`, `HASH_FUNCTION_SHA256`, `HASH_FUNCTION_KECCAK256`, `HASH_FUNCTION_NOT_APPLICABLE`
createReadOnlySessionIntent field
createOauthProvidersIntent field
The ID of the User to add an Oauth provider to
A list of Oauth providers.
Human-readable name to identify a Provider.
Base64 encoded OIDC token
deleteOauthProvidersIntent field
The ID of the User to remove an Oauth provider from
Unique identifier for a given Provider.
item field
createSubOrganizationIntentV5 field
Name for this sub-organization
Root users to create within this sub-organization
Human-readable name for a User.
The user's email address.
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
Human-readable name to identify a Provider.
Base64 encoded OIDC token
The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
wallet field
Human-readable name for a Wallet.
A list of wallet Accounts. This field, if not needed, should be an empty array in your request body.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
pathFormat field
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
addressFormat field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24.
Disable email recovery for the sub-organization
Disable email auth for the sub-organization
oauthIntent field
Base64 encoded OIDC token
Client-side public key generated by the user, to which the oauth bundle (credentials) will be encrypted.
Optional human-readable name for an API Key. If none provided, default to Oauth - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated Oauth API keys
createApiKeysIntentV2 field
A list of API Keys.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
curveType field
Enum options: `API_KEY_CURVE_P256`, `API_KEY_CURVE_SECP256K1`, `API_KEY_CURVE_ED25519`
Optional window (in seconds) indicating how long the API Key should last.
Unique identifier for a given User.
createReadWriteSessionIntent field
Client-side public key generated by the user, to which the read write session bundle (credentials) will be encrypted.
Email of the user to create a read write session for
Optional human-readable name for an API Key. If none provided, default to Read Write Session - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
emailAuthIntentV2 field
Email of the authenticating user.
Client-side public key generated by the user, to which the email auth bundle (credentials) will be encrypted.
Optional human-readable name for an API Key. If none provided, default to Email Auth - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
emailCustomization field
The name of the application.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
Invalidate all other previously generated Email Auth API keys
Optional custom email address from which to send the email
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Optional custom email address to use as reply-to
createSubOrganizationIntentV6 field
Name for this sub-organization
Root users to create within this sub-organization
Human-readable name for a User.
The user's email address.
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
curveType field
Enum options: `API_KEY_CURVE_P256`, `API_KEY_CURVE_SECP256K1`, `API_KEY_CURVE_ED25519`
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
Human-readable name to identify a Provider.
Base64 encoded OIDC token
The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
wallet field
Human-readable name for a Wallet.
A list of wallet Accounts. This field, if not needed, should be an empty array in your request body.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
pathFormat field
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
addressFormat field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24.
Disable email recovery for the sub-organization
Disable email auth for the sub-organization
deletePrivateKeysIntent field
List of unique identifiers for private keys within an organization
item field
Optional parameter for deleting the private keys, even if any have not been previously exported. If they have been exported, this field is ignored.
deleteWalletsIntent field
List of unique identifiers for wallets within an organization
item field
Optional parameter for deleting the wallets, even if any have not been previously exported. If they have been exported, this field is ignored.
createReadWriteSessionIntentV2 field
Client-side public key generated by the user, to which the read write session bundle (credentials) will be encrypted.
Unique identifier for a given User.
Optional human-readable name for an API Key. If none provided, default to Read Write Session - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated ReadWriteSession API keys
deleteSubOrganizationIntent field
Sub-organization deletion, by default, requires associated wallets and private keys to be exported for security reasons. Set this boolean to true to force sub-organization deletion even if some wallets or private keys within it have not been exported yet. Default: false.
initOtpAuthIntent field
Enum to specifiy whether to send OTP via SMS or email
Email or phone number to send the OTP code to
emailCustomization field
The name of the application.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
smsCustomization field
Template containing references to .OtpCode i.e Your OTP is \{\{.OtpCode}}
Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
Optional custom email address from which to send the OTP email
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Optional custom email address to use as reply-to
otpAuthIntent field
ID representing the result of an init OTP activity.
OTP sent out to a user's contact (email or SMS)
Client-side public key generated by the user, to which the OTP bundle (credentials) will be encrypted.
Optional human-readable name for an API Key. If none provided, default to OTP Auth - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated OTP Auth API keys
createSubOrganizationIntentV7 field
Name for this sub-organization
Root users to create within this sub-organization
Human-readable name for a User.
The user's email address.
The user's phone number in E.164 format e.g. +13214567890
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
curveType field
Enum options: `API_KEY_CURVE_P256`, `API_KEY_CURVE_SECP256K1`, `API_KEY_CURVE_ED25519`
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
Human-readable name to identify a Provider.
Base64 encoded OIDC token
The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users
wallet field
Human-readable name for a Wallet.
A list of wallet Accounts. This field, if not needed, should be an empty array in your request body.
curve field
Enum options: `CURVE_SECP256K1`, `CURVE_ED25519`, `CURVE_P256`
pathFormat field
Enum options: `PATH_FORMAT_BIP32`
Path used to generate a wallet Account.
addressFormat field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24.
Disable email recovery for the sub-organization
Disable email auth for the sub-organization
Disable OTP SMS auth for the sub-organization
Disable OTP email auth for the sub-organization
Signed JWT containing a unique id, expiry, verification type, contact
clientSignature field
The public component of a cryptographic key pair used to create the signature.
scheme field
Enum options: `CLIENT_SIGNATURE_SCHEME_API_P256`
The message that was signed.
The cryptographic signature over the message.
updateWalletIntent field
Unique identifier for a given Wallet.
Human-readable name for a Wallet.
updatePolicyIntentV2 field
Unique identifier for a given Policy.
Human-readable name for a Policy.
policyEffect field
Enum options: `EFFECT_ALLOW`, `EFFECT_DENY`
The condition expression that triggers the Effect (optional).
The consensus expression that triggers the Effect (optional).
Accompanying notes for a Policy (optional).
createUsersIntentV3 field
A list of Users.
Human-readable name for a User.
The user's email address.
The user's phone number in E.164 format e.g. +13214567890
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
curveType field
Enum options: `API_KEY_CURVE_P256`, `API_KEY_CURVE_SECP256K1`, `API_KEY_CURVE_ED25519`
Optional window (in seconds) indicating how long the API Key should last.
A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body.
Human-readable name for an Authenticator.
Challenge presented for authentication purposes.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
The type of authenticator transports.
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
A list of Oauth providers. This field, if not needed, should be an empty array in your request body.
Human-readable name to identify a Provider.
Base64 encoded OIDC token
A list of User Tag IDs. This field, if not needed, should be an empty array in your request body.
item field
initOtpAuthIntentV2 field
Enum to specifiy whether to send OTP via SMS or email
Email or phone number to send the OTP code to
Optional length of the OTP code. Default = 9
emailCustomization field
The name of the application.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
smsCustomization field
Template containing references to .OtpCode i.e Your OTP is \{\{.OtpCode}}
Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
Optional custom email address from which to send the OTP email
Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Optional custom email address to use as reply-to
initOtpIntent field
Whether to send OTP via SMS or email. Possible values: OTP\_TYPE\_SMS, OTP\_TYPE\_EMAIL
Email or phone number to send the OTP code to
Optional length of the OTP code. Default = 9
emailCustomization field
The name of the application.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
smsCustomization field
Template containing references to .OtpCode i.e Your OTP is \{\{.OtpCode}}
Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
Optional custom email address from which to send the OTP email
Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)
Optional custom email address to use as reply-to
verifyOtpIntent field
ID representing the result of an init OTP activity.
OTP sent out to a user's contact (email or SMS)
Expiration window (in seconds) indicating how long the verification token is valid for. If not provided, a default of 1 hour will be used. Maximum value is 86400 seconds (24 hours)
Client-side public key generated by the user, which will be added to the JWT response and verified in subsequent requests via a client proof signature
otpLoginIntent field
Signed JWT containing a unique id, expiry, verification type, contact
Client-side public key generated by the user, which will be conditionally added to org data based on the validity of the verification token
Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated Login API keys
clientSignature field
The public component of a cryptographic key pair used to create the signature.
scheme field
Enum options: `CLIENT_SIGNATURE_SCHEME_API_P256`
The message that was signed.
The cryptographic signature over the message.
stampLoginIntent field
Client-side public key generated by the user, which will be conditionally added to org data based on the passkey stamp associated with this request
Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated Login API keys
oauthLoginIntent field
Base64 encoded OIDC token
Client-side public key generated by the user, which will be conditionally added to org data based on the validity of the oidc token associated with this request
Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
Invalidate all other previously generated Login API keys
updateUserNameIntent field
Unique identifier for a given User.
Human-readable name for a User.
updateUserEmailIntent field
Unique identifier for a given User.
The user's email address. Setting this to an empty string will remove the user's email.
Signed JWT containing a unique id, expiry, verification type, contact
updateUserPhoneNumberIntent field
Unique identifier for a given User.
The user's phone number in E.164 format e.g. +13214567890. Setting this to an empty string will remove the user's phone number.
Signed JWT containing a unique id, expiry, verification type, contact
initFiatOnRampIntent field
onrampProvider field
Enum options: `FIAT_ON_RAMP_PROVIDER_COINBASE`, `FIAT_ON_RAMP_PROVIDER_MOONPAY`
Destination wallet address for the buy transaction.
network field
Enum options: `FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_BITCOIN`, `FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_ETHEREUM`, `FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_SOLANA`, `FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_BASE`
cryptoCurrencyCode field
Enum options: `FIAT_ON_RAMP_CRYPTO_CURRENCY_BTC`, `FIAT_ON_RAMP_CRYPTO_CURRENCY_ETH`, `FIAT_ON_RAMP_CRYPTO_CURRENCY_SOL`, `FIAT_ON_RAMP_CRYPTO_CURRENCY_USDC`
fiatCurrencyCode field
Enum options: `FIAT_ON_RAMP_CURRENCY_AUD`, `FIAT_ON_RAMP_CURRENCY_BGN`, `FIAT_ON_RAMP_CURRENCY_BRL`, `FIAT_ON_RAMP_CURRENCY_CAD`, `FIAT_ON_RAMP_CURRENCY_CHF`, `FIAT_ON_RAMP_CURRENCY_COP`, `FIAT_ON_RAMP_CURRENCY_CZK`, `FIAT_ON_RAMP_CURRENCY_DKK`, `FIAT_ON_RAMP_CURRENCY_DOP`, `FIAT_ON_RAMP_CURRENCY_EGP`, `FIAT_ON_RAMP_CURRENCY_EUR`, `FIAT_ON_RAMP_CURRENCY_GBP`, `FIAT_ON_RAMP_CURRENCY_HKD`, `FIAT_ON_RAMP_CURRENCY_IDR`, `FIAT_ON_RAMP_CURRENCY_ILS`, `FIAT_ON_RAMP_CURRENCY_JOD`, `FIAT_ON_RAMP_CURRENCY_KES`, `FIAT_ON_RAMP_CURRENCY_KWD`, `FIAT_ON_RAMP_CURRENCY_LKR`, `FIAT_ON_RAMP_CURRENCY_MXN`, `FIAT_ON_RAMP_CURRENCY_NGN`, `FIAT_ON_RAMP_CURRENCY_NOK`, `FIAT_ON_RAMP_CURRENCY_NZD`, `FIAT_ON_RAMP_CURRENCY_OMR`, `FIAT_ON_RAMP_CURRENCY_PEN`, `FIAT_ON_RAMP_CURRENCY_PLN`, `FIAT_ON_RAMP_CURRENCY_RON`, `FIAT_ON_RAMP_CURRENCY_SEK`, `FIAT_ON_RAMP_CURRENCY_THB`, `FIAT_ON_RAMP_CURRENCY_TRY`, `FIAT_ON_RAMP_CURRENCY_TWD`, `FIAT_ON_RAMP_CURRENCY_USD`, `FIAT_ON_RAMP_CURRENCY_VND`, `FIAT_ON_RAMP_CURRENCY_ZAR`
Specifies a preset fiat amount for the transaction, e.g., '100'. Must be greater than '20'. If not provided, the user will be prompted to enter an amount.
paymentMethod field
Enum options: `FIAT_ON_RAMP_PAYMENT_METHOD_CREDIT_DEBIT_CARD`, `FIAT_ON_RAMP_PAYMENT_METHOD_APPLE_PAY`, `FIAT_ON_RAMP_PAYMENT_METHOD_GBP_BANK_TRANSFER`, `FIAT_ON_RAMP_PAYMENT_METHOD_GBP_OPEN_BANKING_PAYMENT`, `FIAT_ON_RAMP_PAYMENT_METHOD_GOOGLE_PAY`, `FIAT_ON_RAMP_PAYMENT_METHOD_SEPA_BANK_TRANSFER`, `FIAT_ON_RAMP_PAYMENT_METHOD_PIX_INSTANT_PAYMENT`, `FIAT_ON_RAMP_PAYMENT_METHOD_PAYPAL`, `FIAT_ON_RAMP_PAYMENT_METHOD_VENMO`, `FIAT_ON_RAMP_PAYMENT_METHOD_MOONPAY_BALANCE`, `FIAT_ON_RAMP_PAYMENT_METHOD_CRYPTO_ACCOUNT`, `FIAT_ON_RAMP_PAYMENT_METHOD_FIAT_WALLET`, `FIAT_ON_RAMP_PAYMENT_METHOD_ACH_BANK_ACCOUNT`
ISO 3166-1 two-digit country code for Coinbase representing the purchasing user’s country of residence, e.g., US, GB.
ISO 3166-2 two-digit country subdivision code for Coinbase representing the purchasing user’s subdivision of residence within their country, e.g. NY. Required if country\_code=US.
Optional flag to indicate whether to use the sandbox mode to simulate transactions for the on-ramp provider. Default is false.
Optional MoonPay Widget URL to sign when using MoonPay client SDKs with URL Signing enabled.
createSmartContractInterfaceIntent field
Corresponding contract address or program ID
ABI/IDL as a JSON string. Limited to 400kb
type field
Enum options: `SMART_CONTRACT_INTERFACE_TYPE_ETHEREUM`, `SMART_CONTRACT_INTERFACE_TYPE_SOLANA`
Human-readable name for a Smart Contract Interface.
Notes for a Smart Contract Interface.
deleteSmartContractInterfaceIntent field
The ID of a Smart Contract Interface intended for deletion.
enableAuthProxyIntent field
disableAuthProxyIntent field
updateAuthProxyConfigIntent field
Updated list of allowed origins for CORS.
item field
Updated list of allowed proxy authentication methods.
item field
Custom 'from' address for auth-related emails.
Custom reply-to address for auth-related emails.
Template ID for email-auth messages.
Template ID for OTP SMS messages.
emailCustomizationParams field
The name of the application.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
smsCustomizationParams field
Template containing references to .OtpCode i.e Your OTP is \{\{.OtpCode}}
walletKitSettings field
List of enabled social login providers (e.g., 'apple', 'google', 'facebook')
item field
Mapping of social login providers to their Oauth client IDs.
Oauth redirect URL to be used for social login flows.
OTP code lifetime in seconds.
Verification-token lifetime in seconds.
Session lifetime in seconds.
Enable alphanumeric OTP codes.
Desired OTP code length (6–9).
Custom 'from' email sender for auth-related emails.
Verification token required for get account with PII (email/phone number). Default false.
createOauth2CredentialIntent field
provider field
Enum options: `OAUTH2_PROVIDER_X`, `OAUTH2_PROVIDER_DISCORD`
The Client ID issued by the OAuth 2.0 provider
The client secret issued by the OAuth 2.0 provider encrypted to the TLS Fetcher quorum key
updateOauth2CredentialIntent field
The ID of the OAuth 2.0 credential to update
provider field
Enum options: `OAUTH2_PROVIDER_X`, `OAUTH2_PROVIDER_DISCORD`
The Client ID issued by the OAuth 2.0 provider
The client secret issued by the OAuth 2.0 provider encrypted to the TLS Fetcher quorum key
deleteOauth2CredentialIntent field
The ID of the OAuth 2.0 credential to delete
oauth2AuthenticateIntent field
The OAuth 2.0 credential id whose client\_id and client\_secret will be used in the OAuth 2.0 flow
The auth\_code provided by the OAuth 2.0 provider to the end user to be exchanged for a Bearer token in the OAuth 2.0 flow
The URI the user is redirected to after they have authenticated with the OAuth 2.0 provider
The code verifier used by OAuth 2.0 PKCE providers
An optional nonce used by the client to prevent replay/substitution of an ID token
An optional P256 public key to which, if provided, the bearer token will be encrypted and returned via the `encrypted_bearer_token` claim of the OIDC Token
deleteWalletAccountsIntent field
List of unique identifiers for wallet accounts within an organization
item field
Optional parameter for deleting the wallet accounts, even if any have not been previously exported. If they have been exported, this field is ignored.
deletePoliciesIntent field
List of unique identifiers for policies within an organization
item field
ethSendRawTransactionIntent field
The raw, signed transaction to be sent.
CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet).
Enum options: `eip155:1`, `eip155:11155111`, `eip155:8453`, `eip155:84532`
ethSendTransactionIntent field
A wallet or private key address to sign with. This does not support private key IDs.
Whether to sponsor this transaction via Gas Station.
CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet).
Enum options: `eip155:1`, `eip155:11155111`, `eip155:8453`, `eip155:84532`, `eip155:137`, `eip155:80002`
Recipient address as a hex string with 0x prefix.
Amount of native asset to send in wei.
Hex-encoded call data for contract interactions.
Transaction nonce, for EIP-1559 and Turnkey Gas Station authorizations.
Maximum amount of gas to use for this transaction, for EIP-1559 transactions.
Maximum total fee per gas unit (base fee + priority fee) in wei. Required for non-sponsored (EIP-1559) transactions. Not used for sponsored transactions.
Maximum priority fee (tip) per gas unit in wei. Required for non-sponsored (EIP-1559) transactions. Not used for sponsored transactions.
The gas station delegate contract nonce. Only used when sponsor=true. Include this if you want maximal security posture.
createFiatOnRampCredentialIntent field
onrampProvider field
Enum options: `FIAT_ON_RAMP_PROVIDER_COINBASE`, `FIAT_ON_RAMP_PROVIDER_MOONPAY`
Project ID for the on-ramp provider. Some providers, like Coinbase, require this additional identifier
Publishable API key for the on-ramp provider
Secret API key for the on-ramp provider encrypted to our on-ramp encryption public key
Private API key for the on-ramp provider encrypted to our on-ramp encryption public key. Some providers, like Coinbase, require this additional key.
If the on-ramp credential is a sandbox credential
updateFiatOnRampCredentialIntent field
The ID of the fiat on-ramp credential to update
onrampProvider field
Enum options: `FIAT_ON_RAMP_PROVIDER_COINBASE`, `FIAT_ON_RAMP_PROVIDER_MOONPAY`
Project ID for the on-ramp provider. Some providers, like Coinbase, require this additional identifier.
Publishable API key for the on-ramp provider
Secret API key for the on-ramp provider encrypted to our on-ramp encryption public key
Private API key for the on-ramp provider encrypted to our on-ramp encryption public key. Some providers, like Coinbase, require this additional key.
deleteFiatOnRampCredentialIntent field
The ID of the fiat on-ramp credential to delete
emailAuthIntentV3 field
Email of the authenticating user.
Client-side public key generated by the user, to which the email auth bundle (credentials) will be encrypted.
Optional human-readable name for an API Key. If none provided, default to Email Auth - \
Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used.
emailCustomization field
The name of the application. This field is required and will be used in email notifications if an email template is not provided.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
Invalidate all other previously generated Email Auth API keys
Optional custom email address from which to send the email
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Optional custom email address to use as reply-to
initUserEmailRecoveryIntentV2 field
Email of the user starting recovery
Client-side public key generated by the user, to which the recovery bundle will be encrypted.
Expiration window (in seconds) indicating how long the recovery credential is valid for. If not provided, a default of 15 minutes will be used.
emailCustomization field
The name of the application. This field is required and will be used in email notifications if an email template is not provided.
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
Optional custom email address from which to send the OTP email
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Optional custom email address to use as reply-to
initOtpIntentV2 field
Whether to send OTP via SMS or email. Possible values: OTP\_TYPE\_SMS, OTP\_TYPE\_EMAIL
Email or phone number to send the OTP code to
Optional length of the OTP code. Default = 9
The name of the application. This field is required and will be used in email notifications if an email template is not provided.
emailCustomization field
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
smsCustomization field
Template containing references to .OtpCode i.e Your OTP is \{\{.OtpCode}}
Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
Optional custom email address from which to send the OTP email
Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)
Optional custom email address to use as reply-to
initOtpAuthIntentV3 field
Whether to send OTP via SMS or email. Possible values: OTP\_TYPE\_SMS, OTP\_TYPE\_EMAIL
Email or phone number to send the OTP code to
Optional length of the OTP code. Default = 9
The name of the application. This field is required and will be used in email notifications if an email template is not provided.
emailCustomization field
A URL pointing to a logo in PNG format. Note this logo will be resized to fit into 340px x 124px.
A template for the URL to be used in a magic link button, e.g. `https://dapp.xyz/%s`. The auth bundle will be interpolated into the `%s`.
JSON object containing key/value pairs to be used with custom templates.
Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template.
smsCustomization field
Template containing references to .OtpCode i.e Your OTP is \{\{.OtpCode}}
Optional client-generated user identifier to enable per-user rate limiting for SMS auth. We recommend using a hash of the client-side IP address.
Optional custom email address from which to send the OTP email
Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true
Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'
Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)
Optional custom email address to use as reply-to
upsertGasUsageConfigIntent field
Gas sponsorship USD limit for the billing organization window.
Gas sponsorship USD limit for sub-organizations under the billing organization.
Rolling sponsorship window duration, expressed in minutes.
Whether gas sponsorship is enabled for the organization.
createTvcAppIntent field
The name of the new TVC application
Quorum public key to use for this application
Unique identifier for an existing TVC operator set to use as the Manifest Set for this TVC application. If left empty, a new Manifest Set configuration is required
manifestSetParams field
Short description for this new operator set
Operators to create as part of this new operator set
The name for this new operator
Public key for this operator
Existing operators to use as part of this new operator set
item field
The threshold of operators needed to reach consensus in this new Operator Set
Unique identifier for an existing TVC operator set to use as the Share Set for this TVC application. If left empty, a new Share Set configuration is required
shareSetParams field
Short description for this new operator set
Operators to create as part of this new operator set
The name for this new operator
Public key for this operator
Existing operators to use as part of this new operator set
item field
The threshold of operators needed to reach consensus in this new Operator Set
Enables external connectivity for this TVC app. Default if not provided: false.
createTvcDeploymentIntent field
The unique identifier of the to-be-deployed TVC application
The QuorumOS version to use to deploy this application
URL of the container containing the pivot binary
Location of the binary in the pivot container
Arguments to pass to the pivot binary at startup. Encoded as a list of strings, for example \["--foo", "bar"]
item field
Digest of the pivot binary in the pivot container. This value will be inserted in the QOS manifest to ensure application integrity.
URL of the container containing the host binary
Location of the binary inside the host container
Arguments to pass to the host binary at startup. Encoded as a list of strings, for example \["--foo", "bar"]
item field
Optional nonce to ensure uniqueness of the deployment manifest. If not provided, it defaults to the current Unix timestamp in seconds.
Optional encrypted pull secret to authorize Turnkey to pull the pivot container image. If your image is public, leave this empty.
Optional encrypted pull secret to authorize Turnkey to pull the host container image. If your image is public, leave this empty.
createTvcManifestApprovalsIntent field
Unique identifier of the TVC deployment to approve
List of manifest approvals
Unique identifier of the operator providing this approval
Signature from the operator approving the manifest
solSendTransactionIntent field
Base64-encoded serialized unsigned Solana transaction
A wallet or private key address to sign with. This does not support private key IDs.
Whether to sponsor this transaction via Gas Station.
CAIP-2 chain ID (e.g., 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' for Solana mainnet).
Enum options: `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`, `solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG`, `solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY`
user-provided blockhash for replay protection / deadline control. If omitted and sponsor=true, we fetch a fresh blockhash during execution
result field
createOrganizationResult field
Unique identifier for a given Organization.
createAuthenticatorsResult field
A list of Authenticator IDs.
item field
createUsersResult field
A list of User IDs.
item field
createPrivateKeysResult field
A list of Private Key IDs.
item field
createInvitationsResult field
A list of Invitation IDs
item field
acceptInvitationResult field
Unique identifier for a given Invitation.
Unique identifier for a given User.
signRawPayloadResult field
Component of an ECSDA signature.
Component of an ECSDA signature.
Component of an ECSDA signature.
createPolicyResult field
Unique identifier for a given Policy.
disablePrivateKeyResult field
Unique identifier for a given Private Key.
deleteUsersResult field
A list of User IDs.
item field
deleteAuthenticatorsResult field
Unique identifier for a given Authenticator.
item field
deleteInvitationResult field
Unique identifier for a given Invitation.
deleteOrganizationResult field
Unique identifier for a given Organization.
deletePolicyResult field
Unique identifier for a given Policy.
createUserTagResult field
Unique identifier for a given User Tag.
A list of User IDs.
item field
deleteUserTagsResult field
A list of User Tag IDs.
item field
A list of User IDs.
item field
signTransactionResult field
signedTransaction field
deleteApiKeysResult field
A list of API Key IDs.
item field
createApiKeysResult field
A list of API Key IDs.
item field
createPrivateKeyTagResult field
Unique identifier for a given Private Key Tag.
A list of Private Key IDs.
item field
deletePrivateKeyTagsResult field
A list of Private Key Tag IDs.
item field
A list of Private Key IDs.
item field
setPaymentMethodResult field
The last four digits of the credit card added.
The name associated with the payment method.
The email address associated with the payment method.
activateBillingTierResult field
The id of the product being subscribed to.
deletePaymentMethodResult field
The payment method that was removed.
createApiOnlyUsersResult field
A list of API-only User IDs.
item field
updateRootQuorumResult field
updateUserTagResult field
Unique identifier for a given User Tag.
updatePrivateKeyTagResult field
Unique identifier for a given Private Key Tag.
createSubOrganizationResult field
subOrganizationId field
rootUserIds field
item field
updateAllowedOriginsResult field
createPrivateKeysResultV2 field
A list of Private Key IDs and addresses.
privateKeyId field
addresses field
format field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
address field
updateUserResult field
A User ID.
updatePolicyResult field
Unique identifier for a given Policy.
createSubOrganizationResultV3 field
subOrganizationId field
A list of Private Key IDs and addresses.
privateKeyId field
addresses field
format field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
address field
rootUserIds field
item field
createWalletResult field
Unique identifier for a Wallet.
A list of account addresses.
item field
createWalletAccountsResult field
A list of derived addresses.
item field
initUserEmailRecoveryResult field
Unique identifier for the user being recovered.
recoverUserResult field
ID of the authenticator created.
item field
setOrganizationFeatureResult field
Resulting list of organization features.
name field
Enum options: `FEATURE_NAME_ROOT_USER_EMAIL_RECOVERY`, `FEATURE_NAME_WEBAUTHN_ORIGINS`, `FEATURE_NAME_EMAIL_AUTH`, `FEATURE_NAME_EMAIL_RECOVERY`, `FEATURE_NAME_WEBHOOK`, `FEATURE_NAME_SMS_AUTH`, `FEATURE_NAME_OTP_EMAIL_AUTH`, `FEATURE_NAME_AUTH_PROXY`
value field
removeOrganizationFeatureResult field
Resulting list of organization features.
name field
Enum options: `FEATURE_NAME_ROOT_USER_EMAIL_RECOVERY`, `FEATURE_NAME_WEBAUTHN_ORIGINS`, `FEATURE_NAME_EMAIL_AUTH`, `FEATURE_NAME_EMAIL_RECOVERY`, `FEATURE_NAME_WEBHOOK`, `FEATURE_NAME_SMS_AUTH`, `FEATURE_NAME_OTP_EMAIL_AUTH`, `FEATURE_NAME_AUTH_PROXY`
value field
exportPrivateKeyResult field
Unique identifier for a given Private Key.
Export bundle containing a private key encrypted to the client's target public key.
exportWalletResult field
Unique identifier for a given Wallet.
Export bundle containing a wallet mnemonic + optional newline passphrase encrypted by the client's target public key.
createSubOrganizationResultV4 field
subOrganizationId field
wallet field
walletId field
A list of account addresses.
item field
rootUserIds field
item field
emailAuthResult field
Unique identifier for the authenticating User.
Unique identifier for the created API key.
exportWalletAccountResult field
Address to identify Wallet Account.
Export bundle containing a private key encrypted by the client's target public key.
initImportWalletResult field
Import bundle containing a public key and signature to use for importing client data.
importWalletResult field
Unique identifier for a Wallet.
A list of account addresses.
item field
initImportPrivateKeyResult field
Import bundle containing a public key and signature to use for importing client data.
importPrivateKeyResult field
Unique identifier for a Private Key.
A list of addresses.
format field
Enum options: `ADDRESS_FORMAT_UNCOMPRESSED`, `ADDRESS_FORMAT_COMPRESSED`, `ADDRESS_FORMAT_ETHEREUM`, `ADDRESS_FORMAT_SOLANA`, `ADDRESS_FORMAT_COSMOS`, `ADDRESS_FORMAT_TRON`, `ADDRESS_FORMAT_SUI`, `ADDRESS_FORMAT_APTOS`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH`, `ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH`, `ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR`, `ADDRESS_FORMAT_SEI`, `ADDRESS_FORMAT_XLM`, `ADDRESS_FORMAT_DOGE_MAINNET`, `ADDRESS_FORMAT_DOGE_TESTNET`, `ADDRESS_FORMAT_TON_V3R2`, `ADDRESS_FORMAT_TON_V4R2`, `ADDRESS_FORMAT_TON_V5R1`, `ADDRESS_FORMAT_XRP`
address field
createPoliciesResult field
A list of unique identifiers for the created policies.
item field
signRawPayloadsResult field
signatures field
Component of an ECSDA signature.
Component of an ECSDA signature.
Component of an ECSDA signature.
createReadOnlySessionResult field
Unique identifier for a given Organization. If the request is being made by a user and their Sub-Organization ID is unknown, this can be the Parent Organization ID. However, using the Sub-Organization ID is preferred due to performance reasons.
Human-readable name for an Organization.
Unique identifier for a given User.
Human-readable name for a User.
String representing a read only session
UTC timestamp in seconds representing the expiry time for the read only session.
createOauthProvidersResult field
A list of unique identifiers for Oauth Providers
item field
deleteOauthProvidersResult field
A list of unique identifiers for Oauth Providers
item field
createSubOrganizationResultV5 field
subOrganizationId field
wallet field
walletId field
A list of account addresses.
item field
rootUserIds field
item field
oauthResult field
Unique identifier for the authenticating User.
Unique identifier for the created API key.
HPKE encrypted credential bundle
createReadWriteSessionResult field
Unique identifier for a given Organization. If the request is being made by a user and their Sub-Organization ID is unknown, this can be the Parent Organization ID. However, using the Sub-Organization ID is preferred due to performance reasons.
Human-readable name for an Organization.
Unique identifier for a given User.
Human-readable name for a User.
Unique identifier for the created API key.
HPKE encrypted credential bundle
createSubOrganizationResultV6 field
subOrganizationId field
wallet field
walletId field
A list of account addresses.
item field
rootUserIds field
item field
deletePrivateKeysResult field
A list of private key unique identifiers that were removed
item field
deleteWalletsResult field
A list of wallet unique identifiers that were removed
item field
createReadWriteSessionResultV2 field
Unique identifier for a given Organization. If the request is being made by a user and their Sub-Organization ID is unknown, this can be the Parent Organization ID. However, using the Sub-Organization ID is preferred due to performance reasons.
Human-readable name for an Organization.
Unique identifier for a given User.
Human-readable name for a User.
Unique identifier for the created API key.
HPKE encrypted credential bundle
deleteSubOrganizationResult field
Unique identifier of the sub organization that was removed
initOtpAuthResult field
Unique identifier for an OTP authentication
otpAuthResult field
Unique identifier for the authenticating User.
Unique identifier for the created API key.
HPKE encrypted credential bundle
createSubOrganizationResultV7 field
subOrganizationId field
wallet field
walletId field
A list of account addresses.
item field
rootUserIds field
item field
updateWalletResult field
A Wallet ID.
updatePolicyResultV2 field
Unique identifier for a given Policy.
initOtpAuthResultV2 field
Unique identifier for an OTP authentication
initOtpResult field
Unique identifier for an OTP authentication
verifyOtpResult field
Signed JWT containing a unique id, expiry, verification type, contact. Verification status of a user is updated when the token is consumed (in OTP\_LOGIN requests)
otpLoginResult field
Signed JWT containing an expiry, public key, session type, user id, and organization id
stampLoginResult field
Signed JWT containing an expiry, public key, session type, user id, and organization id
oauthLoginResult field
Signed JWT containing an expiry, public key, session type, user id, and organization id
updateUserNameResult field
Unique identifier of the User whose name was updated.
updateUserEmailResult field
Unique identifier of the User whose email was updated.
updateUserPhoneNumberResult field
Unique identifier of the User whose phone number was updated.
initFiatOnRampResult field
Unique URL for a given fiat on-ramp flow.
Unique identifier used to retrieve transaction statuses for a given fiat on-ramp flow.
Optional signature of the MoonPay Widget URL. The signature is generated if the Init Fiat On Ramp intent includes the urlForSignature field. The signature can be used to initialize the MoonPay SDKs when URL signing is enabled for your project.
createSmartContractInterfaceResult field
The ID of the created Smart Contract Interface.
deleteSmartContractInterfaceResult field
The ID of the deleted Smart Contract Interface.
enableAuthProxyResult field
A User ID with permission to initiate authentication.
disableAuthProxyResult field
updateAuthProxyConfigResult field
Unique identifier for a given User. (representing the turnkey signer user id)
createOauth2CredentialResult field
Unique identifier of the OAuth 2.0 credential that was created
updateOauth2CredentialResult field
Unique identifier of the OAuth 2.0 credential that was updated
deleteOauth2CredentialResult field
Unique identifier of the OAuth 2.0 credential that was deleted
oauth2AuthenticateResult field
Base64 encoded OIDC token issued by Turnkey to be used with the LoginWithOAuth activity
deleteWalletAccountsResult field
A list of wallet account unique identifiers that were removed
item field
deletePoliciesResult field
A list of unique identifiers for the deleted policies.
item field
ethSendRawTransactionResult field
The transaction hash of the sent transaction
createFiatOnRampCredentialResult field
Unique identifier of the Fiat On-Ramp credential that was created
updateFiatOnRampCredentialResult field
Unique identifier of the Fiat On-Ramp credential that was updated
deleteFiatOnRampCredentialResult field
Unique identifier of the Fiat On-Ramp credential that was deleted
ethSendTransactionResult field
The send\_transaction\_status ID associated with the transaction submission
upsertGasUsageConfigResult field
Unique identifier for the gas usage configuration that was created or updated.
createTvcAppResult field
The unique identifier for the TVC application
The unique identifier for the TVC manifest set
The unique identifier(s) of the manifest set operators
item field
The required number of approvals for the manifest set
createTvcDeploymentResult field
The unique identifier for the TVC deployment
The unique identifier for the TVC manifest
createTvcManifestApprovalsResult field
The unique identifier(s) for the manifest approvals
item field
solSendTransactionResult field
The send\_transaction\_status ID associated with the transaction submission
A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata.
Unique identifier for a given Vote object.
Unique identifier for a given User.
user field
Unique identifier for a given User.
Human-readable name for a User.
The user's email address.
The user's phone number in E.164 format e.g. +13214567890
A list of Authenticator parameters.
Types of transports that may be used by an Authenticator (e.g., USB, NFC, BLE).
item field
Enum options: `AUTHENTICATOR_TRANSPORT_BLE`, `AUTHENTICATOR_TRANSPORT_INTERNAL`, `AUTHENTICATOR_TRANSPORT_NFC`, `AUTHENTICATOR_TRANSPORT_USB`, `AUTHENTICATOR_TRANSPORT_HYBRID`
attestationType field
Identifier indicating the type of the Security Key.
Unique identifier for a WebAuthn credential.
The type of Authenticator device.
credential field
The public component of a cryptographic key pair used to sign messages and transactions.
type field
Enum options: `CREDENTIAL_TYPE_WEBAUTHN_AUTHENTICATOR`, `CREDENTIAL_TYPE_API_KEY_P256`, `CREDENTIAL_TYPE_RECOVER_USER_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_SECP256K1`, `CREDENTIAL_TYPE_EMAIL_AUTH_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_ED25519`, `CREDENTIAL_TYPE_OTP_AUTH_KEY_P256`, `CREDENTIAL_TYPE_READ_WRITE_SESSION_KEY_P256`, `CREDENTIAL_TYPE_OAUTH_KEY_P256`, `CREDENTIAL_TYPE_LOGIN`
Unique identifier for a given Authenticator.
Human-readable name for an Authenticator.
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
A list of API Key parameters. This field, if not needed, should be an empty array in your request body.
credential field
The public component of a cryptographic key pair used to sign messages and transactions.
type field
Enum options: `CREDENTIAL_TYPE_WEBAUTHN_AUTHENTICATOR`, `CREDENTIAL_TYPE_API_KEY_P256`, `CREDENTIAL_TYPE_RECOVER_USER_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_SECP256K1`, `CREDENTIAL_TYPE_EMAIL_AUTH_KEY_P256`, `CREDENTIAL_TYPE_API_KEY_ED25519`, `CREDENTIAL_TYPE_OTP_AUTH_KEY_P256`, `CREDENTIAL_TYPE_READ_WRITE_SESSION_KEY_P256`, `CREDENTIAL_TYPE_OAUTH_KEY_P256`, `CREDENTIAL_TYPE_LOGIN`
Unique identifier for a given API Key.
Human-readable name for an API Key.
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
Optional window (in seconds) indicating how long the API Key should last.
A list of User Tag IDs.
item field
A list of Oauth Providers.
Unique identifier for an OAuth Provider
Human-readable name to identify a Provider.
The issuer of the token, typically a URL indicating the authentication server, e.g [https://accounts.google.com](https://accounts.google.com)
Expected audience ('aud' attribute of the signed token) which represents the app ID
Expected subject ('sub' attribute of the signed token) which represents the user ID
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
Unique identifier for a given Activity object.
selection field
Enum options: `VOTE_SELECTION_APPROVED`, `VOTE_SELECTION_REJECTED`
The raw message being signed within a Vote.
The public component of a cryptographic key pair used to sign messages and transactions.
The signature applied to a particular vote.
Method used to produce a signature.
createdAt field
seconds field
nanos field
A list of App Proofs generated by enclaves during activity execution, providing verifiable attestations of performed operations.
scheme field
Enum options: `SIGNATURE_SCHEME_EPHEMERAL_KEY_P256`
Ephemeral public key.
JSON serialized AppProofPayload.
Signature over hashed proof\_payload.
An artifact verifying a User's action.
canApprove field
canReject field
createdAt field
seconds field
nanos field
updatedAt field
seconds field
nanos field
failure field
code field
message field
details field
@type field
```bash title="cURL" theme={"system"}
curl --request POST \
--url https://api.turnkey.com/public/v1/query/list_activities \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: (see Authorizations)" \
--data '{
"organizationId": "",
"filterByStatus": [
""
],
"paginationOptions": {
"limit": "",
"before": "",
"after": ""
},
"filterByType": [
""
]
}'
```
```javascript title="JavaScript" theme={"system"}
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().getActivities({
organizationId: " (Unique identifier for a given organization.)",
filterByStatus: "" // Array of activity statuses filtering which activities will be listed in the response.,
paginationOptions: { // paginationOptions field,
limit: " (A limit of the number of object to be returned, between 1 and 100. Defaults to 10.)",
before: " (A pagination cursor. This is an object ID that enables you to fetch all objects before this ID.)",
after: " (A pagination cursor. This is an object ID that enables you to fetch all objects after this ID.)",
},
filterByType: "" // Array of activity types filtering which activities will be listed in the response.
});
```
```json 200 theme={"system"}
{
"activities": [
{
"id": "",
"organizationId": "",
"status": "",
"type": "",
"intent": {
"createOrganizationIntent": {
"organizationName": "",
"rootEmail": "",
"rootAuthenticator": {
"authenticatorName": "",
"userId": "",
"attestation": {
"id": "",
"type": "",
"rawId": "",
"authenticatorAttachment": "",
"response": {
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
],
"authenticatorAttachment": ""
},
"clientExtensionResults": {
"appid": "",
"appidExclude": "",
"credProps": {
"rk": ""
}
}
},
"challenge": ""
},
"rootUserId": ""
},
"createAuthenticatorsIntent": {
"authenticators": [
{
"authenticatorName": "",
"userId": "",
"attestation": {
"id": "",
"type": "",
"rawId": "",
"authenticatorAttachment": "",
"response": {
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
],
"authenticatorAttachment": ""
},
"clientExtensionResults": {
"appid": "",
"appidExclude": "",
"credProps": {
"rk": ""
}
}
},
"challenge": ""
}
],
"userId": ""
},
"createUsersIntent": {
"users": [
{
"userName": "",
"userEmail": "",
"accessType": "",
"apiKeys": [
{
"apiKeyName": "",
"publicKey": "",
"expirationSeconds": ""
}
],
"authenticators": [
{
"authenticatorName": "",
"userId": "",
"attestation": {
"id": "",
"type": "",
"rawId": "",
"authenticatorAttachment": "",
"response": {
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
],
"authenticatorAttachment": ""
},
"clientExtensionResults": {
"appid": "",
"appidExclude": "",
"credProps": {
"rk": ""
}
}
},
"challenge": ""
}
],
"userTags": [
""
]
}
]
},
"createPrivateKeysIntent": {
"privateKeys": [
{
"privateKeyName": "",
"curve": "",
"privateKeyTags": [
""
],
"addressFormats": [
""
]
}
]
},
"signRawPayloadIntent": {
"privateKeyId": "",
"payload": "",
"encoding": "",
"hashFunction": ""
},
"createInvitationsIntent": {
"invitations": [
{
"receiverUserName": "",
"receiverUserEmail": "",
"receiverUserTags": [
""
],
"accessType": "",
"senderUserId": ""
}
]
},
"acceptInvitationIntent": {
"invitationId": "",
"userId": "",
"authenticator": {
"authenticatorName": "",
"userId": "",
"attestation": {
"id": "",
"type": "",
"rawId": "",
"authenticatorAttachment": "",
"response": {
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
],
"authenticatorAttachment": ""
},
"clientExtensionResults": {
"appid": "",
"appidExclude": "",
"credProps": {
"rk": ""
}
}
},
"challenge": ""
}
},
"createPolicyIntent": {
"policyName": "",
"selectors": [
{
"subject": "",
"operator": "",
"target": ""
}
],
"effect": "",
"notes": ""
},
"disablePrivateKeyIntent": {
"privateKeyId": ""
},
"deleteUsersIntent": {
"userIds": [
""
]
},
"deleteAuthenticatorsIntent": {
"userId": "",
"authenticatorIds": [
""
]
},
"deleteInvitationIntent": {
"invitationId": ""
},
"deleteOrganizationIntent": {
"organizationId": ""
},
"deletePolicyIntent": {
"policyId": ""
},
"createUserTagIntent": {
"userTagName": "",
"userIds": [
""
]
},
"deleteUserTagsIntent": {
"userTagIds": [
""
]
},
"signTransactionIntent": {
"privateKeyId": "",
"unsignedTransaction": "",
"type": ""
},
"createApiKeysIntent": {
"apiKeys": [
{
"apiKeyName": "",
"publicKey": "",
"expirationSeconds": ""
}
],
"userId": ""
},
"deleteApiKeysIntent": {
"userId": "",
"apiKeyIds": [
""
]
},
"approveActivityIntent": {
"fingerprint": ""
},
"rejectActivityIntent": {
"fingerprint": ""
},
"createPrivateKeyTagIntent": {
"privateKeyTagName": "",
"privateKeyIds": [
""
]
},
"deletePrivateKeyTagsIntent": {
"privateKeyTagIds": [
""
]
},
"createPolicyIntentV2": {
"policyName": "",
"selectors": [
{
"subject": "",
"operator": "",
"targets": [
""
]
}
],
"effect": "",
"notes": ""
},
"setPaymentMethodIntent": {
"number": "",
"cvv": "",
"expiryMonth": "",
"expiryYear": "",
"cardHolderEmail": "",
"cardHolderName": ""
},
"activateBillingTierIntent": {
"productId": ""
},
"deletePaymentMethodIntent": {
"paymentMethodId": ""
},
"createPolicyIntentV3": {
"policyName": "",
"effect": "",
"condition": "",
"consensus": "",
"notes": ""
},
"createApiOnlyUsersIntent": {
"apiOnlyUsers": [
{
"userName": "",
"userEmail": "",
"userTags": [
""
],
"apiKeys": [
{
"apiKeyName": "",
"publicKey": "",
"expirationSeconds": ""
}
]
}
]
},
"updateRootQuorumIntent": {
"threshold": "",
"userIds": [
""
]
},
"updateUserTagIntent": {
"userTagId": "",
"newUserTagName": "",
"addUserIds": [
""
],
"removeUserIds": [
""
]
},
"updatePrivateKeyTagIntent": {
"privateKeyTagId": "",
"newPrivateKeyTagName": "",
"addPrivateKeyIds": [
""
],
"removePrivateKeyIds": [
""
]
},
"createAuthenticatorsIntentV2": {
"authenticators": [
{
"authenticatorName": "",
"challenge": "",
"attestation": {
"credentialId": "",
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
]
}
}
],
"userId": ""
},
"acceptInvitationIntentV2": {
"invitationId": "",
"userId": "",
"authenticator": {
"authenticatorName": "",
"challenge": "",
"attestation": {
"credentialId": "",
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
]
}
}
},
"createOrganizationIntentV2": {
"organizationName": "",
"rootEmail": "",
"rootAuthenticator": {
"authenticatorName": "",
"challenge": "",
"attestation": {
"credentialId": "",
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
]
}
},
"rootUserId": ""
},
"createUsersIntentV2": {
"users": [
{
"userName": "",
"userEmail": "",
"apiKeys": [
{
"apiKeyName": "",
"publicKey": "",
"expirationSeconds": ""
}
],
"authenticators": [
{
"authenticatorName": "",
"challenge": "",
"attestation": {
"credentialId": "",
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
]
}
}
],
"userTags": [
""
]
}
]
},
"createSubOrganizationIntent": {
"name": "",
"rootAuthenticator": {
"authenticatorName": "",
"challenge": "",
"attestation": {
"credentialId": "",
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
]
}
}
},
"createSubOrganizationIntentV2": {
"subOrganizationName": "",
"rootUsers": [
{
"userName": "",
"userEmail": "",
"apiKeys": [
{
"apiKeyName": "",
"publicKey": "",
"expirationSeconds": ""
}
],
"authenticators": [
{
"authenticatorName": "",
"challenge": "",
"attestation": {
"credentialId": "",
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
]
}
}
]
}
],
"rootQuorumThreshold": ""
},
"updateAllowedOriginsIntent": {
"allowedOrigins": [
""
]
},
"createPrivateKeysIntentV2": {
"privateKeys": [
{
"privateKeyName": "",
"curve": "",
"privateKeyTags": [
""
],
"addressFormats": [
""
]
}
]
},
"updateUserIntent": {
"userId": "",
"userName": "",
"userEmail": "",
"userTagIds": [
""
],
"userPhoneNumber": ""
},
"updatePolicyIntent": {
"policyId": "",
"policyName": "",
"policyEffect": "",
"policyCondition": "",
"policyConsensus": "",
"policyNotes": ""
},
"setPaymentMethodIntentV2": {
"paymentMethodId": "",
"cardHolderEmail": "",
"cardHolderName": ""
},
"createSubOrganizationIntentV3": {
"subOrganizationName": "",
"rootUsers": [
{
"userName": "",
"userEmail": "",
"apiKeys": [
{
"apiKeyName": "",
"publicKey": "",
"expirationSeconds": ""
}
],
"authenticators": [
{
"authenticatorName": "",
"challenge": "",
"attestation": {
"credentialId": "",
"clientDataJson": "",
"attestationObject": "",
"transports": [
""
]
}
}
]
}
],
"rootQuorumThreshold": "",
"privateKeys": [
{
"privateKeyName": "",
"curve": "",
"privateKeyTags": [
""
],
"addressFormats": [
""
]
}
]
},
"createWalletIntent": {
"walletName": "",
"accounts": [
{
"curve": "",
"pathFormat": "",
"path": "",
"addressFormat": ""
}
],
"mnemonicLength": ""
},
"createWalletAccountsIntent": {
"walletId": "",
"accounts": [
{
"curve": "",
"pathFormat": "",
"path": "",
"addressFormat": "