Wallets

wallets

Methods

Get All Wallets -> Cursor<>
get/v1/wallets

Get all wallets in your app.

Create Wallet ->
post/v1/wallets

Creates a new wallet on the requested chain and for the requested owner.

Get Wallet ->
get/v1/wallets/{wallet_id}

Get a wallet by wallet ID.

Obtain A Session Key To Enable Wallet Access -> { encrypted_authorization_key, expires_at, wallets } | { authorization_key, expires_at, wallets }
post/v1/wallets/authenticate

Obtain a session key to enable wallet access.

Create Wallets With An Associated Recovery User -> { recovery_user_id, wallets }
Deprecated
post/v1/wallets_with_recovery

Create wallets with an associated recovery user.

Create A Signature Or Transaction ->
post/v1/wallets/{wallet_id}/rpc

Sign a message or transaction with a wallet by wallet ID.

Raw Sign -> { data, method }
post/v1/wallets/{wallet_id}/raw_sign

Sign a message with a wallet by wallet ID.

Update Wallet ->
patch/v1/wallets/{wallet_id}

Update a wallet's policies or authorization key configuration.

Export Wallet -> { ciphertext, encapsulated_key, encryption_type }
post/v1/wallets/{wallet_id}/export

Export a wallet's private key

Initialize Import -> { encryption_public_key, encryption_type }
post/v1/wallets/import/init

Initialize a wallet import. Complete by submitting the import.

Submit Import ->
post/v1/wallets/import/submit

Submit a wallet import request.

Domain types

CurveSigningChainType = "cosmos" | "stellar" | "sui" | 7 more...

The wallet chain types that support curve-based signing.

CustodialWallet = { id, address, chain_type, 4 more... }

Information about a custodial wallet.

CustodialWalletChainType = "ethereum"

The chain type of the custodial wallet.

CustodialWalletCreateInput = { chain_type, provider, provider_user_id, 3 more... }

The input for creating a custodial wallet.

CustodialWalletProvider = "bridge"

The provider of the custodial wallet.

EthereumPersonalSignRpcInput = { method, params, address, 1 more... }

Executes the EVM personal_sign RPC (EIP-191) to sign a message.

EthereumPersonalSignRpcResponse = { data, method }

Response to the EVM personal_sign RPC.

EthereumSecp256k1SignRpcInput = { method, params, address, 1 more... }

Signs a raw hash on the secp256k1 curve.

EthereumSecp256k1SignRpcResponse = { data, method }

Response to the EVM secp256k1_sign RPC.

EthereumSendTransactionRpcInput = { caip2, method, params, 3 more... }

Executes the EVM eth_sendTransaction RPC to sign and broadcast a transaction.

EthereumSendTransactionRpcResponse = { data, method }

Response to the EVM eth_sendTransaction RPC.

EthereumSign7702AuthorizationRpcInput = { method, params, address, 1 more... }

Signs an EIP-7702 authorization.

EthereumSign7702AuthorizationRpcResponse = { data, method }

Response to the EVM eth_sign7702Authorization RPC.

EthereumSignTransactionRpcInput = { method, params, address, 1 more... }

Executes the EVM eth_signTransaction RPC to sign a transaction.

EthereumSignTransactionRpcResponse = { data, method }

Response to the EVM eth_signTransaction RPC.

EthereumSignTypedDataRpcInput = { method, params, address, 1 more... }

Executes the EVM eth_signTypedData_v4 RPC (EIP-712) to sign a typed data object.

EthereumSignTypedDataRpcResponse = { data, method }

Response to the EVM eth_signTypedData_v4 RPC.

EthereumSignUserOperationRpcInput = { method, params, address, 1 more... }

Executes an RPC method to hash and sign a UserOperation.

EthereumSignUserOperationRpcResponse = { data, method }

Response to the EVM eth_signUserOperation RPC.

ExtendedChainType = "cosmos" | "stellar" | "sui" | 8 more...

The wallet chain types that are not first class chains.

FirstClassChainType = "ethereum" | "solana"

The wallet chain types that offer first class support.

HpkeImportConfig = { aad, aead_algorithm, info }

Optional HPKE configuration for wallet import decryption. These parameters allow importing wallets encrypted by external providers that use different HPKE configurations.

SolanaSignAndSendTransactionRpcInput = { caip2, method, params, 3 more... }

Executes the SVM signAndSendTransaction RPC to sign and broadcast a transaction.

SolanaSignAndSendTransactionRpcResponse = { data, method }

Response to the SVM signAndSendTransaction RPC.

SolanaSignMessageRpcInput = { method, params, address, 1 more... }

Executes the SVM signMessage RPC to sign a message.

SolanaSignMessageRpcResponse = { data, method }

Response to the SVM signMessage RPC.

SolanaSignTransactionRpcInput = { method, params, address, 1 more... }

Executes the SVM signTransaction RPC to sign a transaction.

SolanaSignTransactionRpcResponse = { data, method }

Response to the SVM signTransaction RPC.

SuiCommandName = "TransferObjects" | "SplitCoins" | "MergeCoins"

SUI transaction commands allowlist for raw_sign endpoint policy evaluation

Wallet = { id, additional_signers, address, 7 more... }

A wallet managed by Privy's wallet infrastructure.

WalletBatchCreateInput = { wallets }

Request body for batch wallet creation.

WalletBatchCreateResponse = { results }

Response for a batch wallet creation request.

WalletBatchCreateResult = { index, success, wallet } | { code, error, index, 1 more... }

A single result from a batch wallet creation operation.

WalletBatchItemInput = { chain_type, additional_signers, owner, 2 more... }

Input for a single wallet in a batch creation request.

WalletChainType = "ethereum" | "solana" | "cosmos" | 10 more...

The wallet chain types.

WalletCustodian = { provider, provider_user_id }

Information about the custodian managing this wallet.

Request body for wallet RPC operations, discriminated by method.

Response body for wallet RPC operations, discriminated by method.

WalletUpdateRequestBody = { additional_signers, owner, owner_id, 1 more... }

Request body for updating a wallet.

Wallets

Balance

wallets.balance

Methods

Get Balance -> { balances }
get/v1/wallets/{wallet_id}/balance

Get the balance of a wallet by wallet ID.

path Parameters
wallet_id: string

ID of the wallet.

query Parameters
token:
Optional

The token contract address(es) to query in format "chain:address" (e.g., "base:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" or "solana:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v").

UnionMember0 = string
UnionMember1 = Array<string>
asset:
Optional
UnionMember0 = "usdc" | "usdc.e" | "eth" | 5 more...
UnionMember1 = Array<"usdc" | "usdc.e" | "eth" | 5 more...>
chain:
Optional
UnionMember0 = "ethereum" | "arbitrum" | "base" | 14 more...
UnionMember1 = Array<"ethereum" | "arbitrum" | "base" | 14 more...>
include_currency:
Optional
"usd"
"eur"
Response fields
balances: Array<{ asset, chain, display_values, 2 more... }>
Request example
200Example
Wallets

Transactions

wallets.transactions

Methods

Get Transactions -> { next_cursor, transactions }
get/v1/wallets/{wallet_id}/transactions

Get incoming and outgoing transactions of a wallet by wallet ID.