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.

Create Wallets In Batch ->
post/v1/wallets/batch

Creates multiple wallets in a single request. Each wallet creation is independent; failures for one wallet do not affect others. Maximum batch size is 100 wallets.

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

Get a wallet by wallet ID.

Get Wallet By Address ->
post/v1/wallets/address

Look up a wallet by its blockchain address. Returns the wallet object if found.

Authenticate Wallet Session ->
post/v1/wallets/authenticate

Exchange a user JWT for a session key authorized to act on the user's wallets. Returns the encrypted authorization key and the list of wallets it can access.

Create Wallets With Recovery ->
Deprecated
post/v1/wallets_with_recovery

Create one or more wallets associated with a recovery user, so the user can later regain wallet access via the linked accounts. Deprecated; prefer the standard wallet creation flow combined with a separate recovery setup.

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

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

Raw Sign ->
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 ->
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.

post/v1/wallets/{wallet_id}/transfer

Transfer tokens from a wallet to a destination address.

Domain types

AdditionalSignerInput = Array<>

Additional signers for the wallet.

AdditionalSignerItemInput = { signer_id, override_policy_ids }

A single additional signer for a wallet, with an optional policy override.

Address = string

A blockchain wallet address (Ethereum or Solana).

AmountType = "exact_input" | "exact_output"

Whether the amount refers to the input token or output token.

AuthorizationKeyDashboardResponse = { id, created_at, display_name, 2 more... }

Dashboard response for a wallet authorization key (includes role, which is an internal-only concept).

AuthorizationKeyResponse = { id, created_at, display_name, 1 more... }

Public-facing response for a wallet authorization key.

AuthorizationKeyRole = "root" | "manager" | "delegated-actions"

The role of an authorization key, controlling what actions it can authorize on a wallet.

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

The wallet chain types that support curve-based signing.

CurveType = "secp256k1" | "ed25519" | "starknet"

The cryptographic curve type used by the wallet.

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

Information about a custodial wallet.

CustodialWalletChainType = "ethereum" | "solana"

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.

CustomTokenTransferSource = { amount, asset_address, chain }

Source for a transfer identified by a token contract address (EVM) or mint address (Solana). Use this variant for tokens that are not first-class assets.

DeveloperFee = { amount, type, recipient }

Estimated fee paid to the developer.

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

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

EthereumPersonalSignRpcInputParams = { encoding, message }

Parameters for the EVM personal_sign RPC.

EthereumPersonalSignRpcResponse = { data, method }

Response to the EVM personal_sign RPC.

EthereumPersonalSignRpcResponseData = { encoding, signature }

Data returned by the EVM personal_sign RPC.

Request body for Ethereum wallet RPC operations, discriminated by method.

Response body for Ethereum wallet RPC operations, discriminated by method.

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

Signs a raw hash on the secp256k1 curve.

EthereumSecp256k1SignRpcInputParams = { hash }

Parameters for the EVM secp256k1_sign RPC.

EthereumSecp256k1SignRpcResponse = { data, method }

Response to the EVM secp256k1_sign RPC.

EthereumSecp256k1SignRpcResponseData = { encoding, signature }

Data returned by the EVM secp256k1_sign RPC.

EthereumSendCallsCall = { to, data, value }

A single call within a batched wallet_sendCalls request.

EthereumSendCallsRpcInput = { caip2, method, params, 5 more... }

Executes the wallet_sendCalls RPC (EIP-5792) to batch multiple calls into a single atomic transaction.

EthereumSendCallsRpcInputParams = { calls }

Parameters for the wallet_sendCalls RPC.

EthereumSendCallsRpcResponse = { data, method }

Response to the wallet_sendCalls RPC.

EthereumSendCallsRpcResponseData = { caip2, transaction_id }

Data returned by the wallet_sendCalls RPC.

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

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

EthereumSendTransactionRpcInputParams = { transaction }

Parameters for the EVM eth_sendTransaction RPC.

EthereumSendTransactionRpcResponse = { data, method }

Response to the EVM eth_sendTransaction RPC.

EthereumSendTransactionRpcResponseData = { caip2, hash, reference_id, 3 more... }

Data returned by the EVM eth_sendTransaction RPC.

EthereumSign7702Authorization = { chain_id, contract, nonce, 3 more... }

A signed EIP-7702 authorization that delegates code execution to a contract address.

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

Signs an EIP-7702 authorization.

EthereumSign7702AuthorizationRpcInputParams = { chain_id, contract, executor, 1 more... }

Parameters for the EVM eth_sign7702Authorization RPC.

EthereumSign7702AuthorizationRpcResponse = { data, method }

Response to the EVM eth_sign7702Authorization RPC.

EthereumSign7702AuthorizationRpcResponseData = { authorization }

Data returned by the EVM eth_sign7702Authorization RPC.

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

Executes the EVM eth_signTransaction RPC to sign a transaction.

EthereumSignTransactionRpcInputParams = { transaction }

Parameters for the EVM eth_signTransaction RPC.

EthereumSignTransactionRpcResponse = { data, method }

Response to the EVM eth_signTransaction RPC.

EthereumSignTransactionRpcResponseData = { encoding, signed_transaction }

Data returned by the EVM eth_signTransaction RPC.

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

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

EthereumSignTypedDataRpcInputParams = { typed_data }

Parameters for the EVM eth_signTypedData_v4 RPC.

EthereumSignTypedDataRpcResponse = { data, method }

Response to the EVM eth_signTypedData_v4 RPC.

EthereumSignTypedDataRpcResponseData = { encoding, signature }

Data returned by the EVM eth_signTypedData_v4 RPC.

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

Executes an RPC method to hash and sign a UserOperation.

EthereumSignUserOperationRpcInputParams = { chain_id, contract, user_operation }

Parameters for the EVM eth_signUserOperation RPC.

EthereumSignUserOperationRpcResponse = { data, method }

Response to the EVM eth_signUserOperation RPC.

EthereumSignUserOperationRpcResponseData = { encoding, signature }

Data returned by the EVM eth_signUserOperation RPC.

EthereumTypedDataInput = { domain, message, primary_type, 1 more... }

EIP-712 typed data object.

ExportPrivateKeyRpcInput = { address, method, params }

Exports the private key of the wallet.

ExportPrivateKeyRpcResponse = { data, method }

Response to the exportPrivateKey RPC.

ExportSeedPhraseRpcInput = { address, method, params }

Exports the seed phrase of the wallet.

ExportSeedPhraseRpcResponse = { data, method }

Response to the exportSeedPhrase RPC.

ExportType = "display" | "client"

The export type. 'display' is for showing the key to the user in the UI, 'client' is for exporting to the client application.

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

The wallet chain types that are not first class chains.

FeeConfiguration = { type, value }

Total fees assessed on a transfer, in BPS

FeeLineItem = | |

An individual fee assessed on a transfer.

FirstClassChainType = "ethereum" | "solana"

The wallet chain types that offer first class support.

Gas = { amount, base_amount, gas_asset }

Gas cost for a blockchain action. Includes both raw base-unit amount and a human-readable decimal string, plus the gas token symbol.

GetByWalletAddressRequestBody = { address }

Request body for looking up a wallet by its blockchain address.

HDInitInput = { address, chain_type, encryption_type, 2 more... }

The input for HD wallets.

HDPath = string

A BIP-32 hierarchical deterministic wallet derivation path.

HDSubmitInput = { address, chain_type, ciphertext, 5 more... }

The submission input for importing an HD wallet.

Hex = string

A hex-encoded string prefixed with '0x', capped at 100002 characters (50,000 bytes).

HpkeAeadAlgorithm = "CHACHA20_POLY1305" | "AES_GCM256"

The AEAD algorithm used for HPKE encryption.

HpkeEncryption = "HPKE"

The encryption type of the wallet to import. Currently only supports HPKE.

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.

NamedTokenTransferSource = { amount, asset, chain }

Source for a transfer identified by a named asset (e.g. "usdc", "eth"). Use this variant for first-class assets maintained by Privy.

OutputWithPreviousTransactionData = { previous_transaction_hash, previous_transaction_vout, output }

A Spark token output with its previous transaction data.

PolicyInput = Array<string>

An optional list of up to one policy ID to enforce on the wallet.

PrivateKeyExportInput = { encryption_type, recipient_public_key, export_seed_phrase, 1 more... }

Input for exporting a wallet (private key or seed phrase) with HPKE encryption.

PrivateKeyExportResponse = { ciphertext, encapsulated_key, encryption_type }

Response containing HPKE-encrypted wallet data (private key or seed phrase).

PrivateKeyInitInput = { address, chain_type, encryption_type, 1 more... }

The input for private key wallets.

PrivateKeySubmitInput = { address, chain_type, ciphertext, 4 more... }

The submission input for importing a private key wallet.

PrivyFee = { amount, type, recipient }

Estimated fee paid to Privy.

Quantity = | number

A quantity value that can be either a hex string starting with '0x' or a non-negative integer.

RawSignBytesEncoding = "utf-8" | "hex" | "base64"

Encoding scheme for bytes in the raw_sign RPC.

RawSignBytesHashFunction = "keccak256" | "sha256" | "blake2b256"

Hash function for bytes in the raw_sign RPC.

RawSignBytesParams = { bytes, encoding, hash_function }

Parameters for hashing and signing bytes with the raw_sign RPC.

RawSignHashParams = { hash }

Parameters for signing a pre-computed hash with the raw_sign RPC.

RawSignInput = { params }

Provide either hash (to sign a pre-computed hash) OR bytes, encoding, and hash_function (to hash and then sign). These options are mutually exclusive.

RawSignInputParams = |

Parameters for the raw_sign RPC.

RawSignResponse = { data, method }

Response to the raw_sign RPC.

RawSignResponseData = { encoding, signature }

Data returned by the raw_sign RPC.

RecipientPublicKey = string

The recipient public key for HPKE encryption, in PEM or DER (base64-encoded) format.

RelayerFee = { amount, type, recipient }

Estimated fee paid to the relayer.

SeedPhraseExportInput = { encryption_type, recipient_public_key, export_seed_phrase, 1 more... }

Input for exporting a wallet (private key or seed phrase) with HPKE encryption.

SeedPhraseExportResponse = { ciphertext, encapsulated_key, encryption_type }

Response containing HPKE-encrypted wallet data (private key or seed phrase).

SigningAlgorithm = "ECDSA" | "EdDSA" | "Schnorr"

The signing algorithm used by the wallet.

Request body for Solana wallet RPC operations, discriminated by method.

Response body for Solana wallet RPC operations, discriminated by method.

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

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

SolanaSignAndSendTransactionRpcInputParams = { encoding, transaction }

Parameters for the SVM signAndSendTransaction RPC.

SolanaSignAndSendTransactionRpcResponse = { data, method }

Response to the SVM signAndSendTransaction RPC.

SolanaSignAndSendTransactionRpcResponseData = { caip2, hash, reference_id, 2 more... }

Data returned by the SVM signAndSendTransaction RPC.

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

Executes the SVM signMessage RPC to sign a message.

SolanaSignMessageRpcInputParams = { encoding, message }

Parameters for the SVM signMessage RPC.

SolanaSignMessageRpcResponse = { data, method }

Response to the SVM signMessage RPC.

SolanaSignMessageRpcResponseData = { encoding, signature }

Data returned by the SVM signMessage RPC.

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

Executes the SVM signTransaction RPC to sign a transaction.

SolanaSignTransactionRpcInputParams = { encoding, transaction }

Parameters for the SVM signTransaction RPC.

SolanaSignTransactionRpcResponse = { data, method }

Response to the SVM signTransaction RPC.

SolanaSignTransactionRpcResponseData = { encoding, signed_transaction }

Data returned by the SVM signTransaction RPC.

SolanaWalletDerivationStrategy = "ENTROPY_TO_SEED" | "ENTROPY_TO_MNEMONIC_TO_SEED"

The derivation strategy used for Solana wallets.

SparkBalance = { balance, token_balances }

The balance of a Spark wallet.

SparkClaimStaticDepositRpcInput = { method, params, network }

Claims a static deposit into the Spark wallet.

SparkClaimStaticDepositRpcInputParams = { credit_amount_sats, signature, transaction_id, 1 more... }

Parameters for the Spark claimStaticDeposit RPC.

SparkClaimStaticDepositRpcResponse = { method, data }

Response to the Spark claimStaticDeposit RPC.

SparkClaimStaticDepositRpcResponseData = { transfer_id }

Data returned by the Spark claimStaticDeposit RPC.

SparkCreateLightningInvoiceRpcInput = { method, params, network }

Creates a Lightning invoice for the Spark wallet.

SparkCreateLightningInvoiceRpcInputParams = { amount_sats, description_hash, expiry_seconds, 3 more... }

Parameters for the Spark createLightningInvoice RPC.

SparkCreateLightningInvoiceRpcResponse = { method, data }

Response to the Spark createLightningInvoice RPC.

SparkGetBalanceRpcInput = { method, network }

Gets the balance of the Spark wallet.

SparkGetBalanceRpcResponse = { method, data }

Response to the Spark getBalance RPC.

SparkGetClaimStaticDepositQuoteRpcInput = { method, params, network }

Gets a quote for claiming a static deposit.

SparkGetClaimStaticDepositQuoteRpcInputParams = { transaction_id, output_index }

Parameters for the Spark getClaimStaticDepositQuote RPC.

SparkGetClaimStaticDepositQuoteRpcResponse = { method, data }

Response to the Spark getClaimStaticDepositQuote RPC.

SparkGetClaimStaticDepositQuoteRpcResponseData = { credit_amount_sats, network, output_index, 2 more... }

Data returned by the Spark getClaimStaticDepositQuote RPC.

SparkGetStaticDepositAddressRpcInput = { method, network }

Gets a static deposit address for the Spark wallet.

SparkGetStaticDepositAddressRpcResponse = { method, data }

Response to the Spark getStaticDepositAddress RPC.

SparkGetStaticDepositAddressRpcResponseData = { address }

Data returned by the Spark getStaticDepositAddress RPC.

SparkLightningFee = { original_unit, original_value }

The fee for a Spark Lightning payment.

SparkLightningReceiveRequest = { id, created_at, network, 7 more... }

A Spark Lightning receive request.

SparkLightningSendRequest = { id, created_at, encoded_invoice, 8 more... }

A Spark Lightning send request.

SparkNetwork = "MAINNET" | "REGTEST"

The Spark network.

SparkOutputSelectionStrategy = "SMALL_FIRST" | "LARGE_FIRST"

Strategy for selecting outputs in a Spark token transfer.

SparkPayLightningInvoiceRpcInput = { method, params, network }

Pays a Lightning invoice from the Spark wallet.

SparkPayLightningInvoiceRpcInputParams = { invoice, max_fee_sats, amount_sats_to_send, 1 more... }

Parameters for the Spark payLightningInvoice RPC.

SparkPayLightningInvoiceRpcResponse = { method, data }

Response to the Spark payLightningInvoice RPC.

Request body for Spark wallet RPC operations, discriminated by method.

Response body for Spark wallet RPC operations, discriminated by method.

SparkSignMessageWithIdentityKeyRpcInput = { method, params, network }

Signs a message with the Spark identity key.

SparkSignMessageWithIdentityKeyRpcInputParams = { message, compact }

Parameters for the Spark signMessageWithIdentityKey RPC.

SparkSignMessageWithIdentityKeyRpcResponse = { method, data }

Response to the Spark signMessageWithIdentityKey RPC.

SparkSignMessageWithIdentityKeyRpcResponseData = { signature }

Data returned by the Spark signMessageWithIdentityKey RPC.

SparkSigningKeyshare = { owner_identifiers, public_key, public_shares, 2 more... }

A Spark signing keyshare.

SparkTokenBalance = { balance, token_metadata }

Balance of a Spark token.

SparkTransfer = { id, leaves, receiver_identity_public_key, 8 more... }

A Spark transfer.

SparkTransferLeaf = { intermediate_refund_tx, secret_cipher, signature, 1 more... }

A Spark transfer leaf.

SparkTransferRpcInput = { method, params, network }

Transfers satoshis to a Spark address.

SparkTransferRpcInputParams = { amount_sats, receiver_spark_address }

Parameters for the Spark transfer RPC.

SparkTransferRpcResponse = { method, data }

Response to the Spark transfer RPC.

SparkTransferTokensRpcInput = { method, params, network }

Transfers tokens to a Spark address.

SparkTransferTokensRpcInputParams = { receiver_spark_address, token_amount, token_identifier, 2 more... }

Parameters for the Spark transferTokens RPC.

SparkTransferTokensRpcResponse = { method, data }

Response to the Spark transferTokens RPC.

SparkTransferTokensRpcResponseData = { id }

Data returned by the Spark transferTokens RPC.

SparkUserTokenMetadata = { decimals, max_supply, raw_token_identifier, 3 more... }

Metadata for a Spark user token.

SparkWalletLeaf = { id, network, node_tx, 9 more... }

A Spark wallet leaf node.

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

SUI transaction commands allowlist for raw_sign endpoint policy evaluation

TempoAaAuthorization = { chain_id, contract, nonce, 1 more... }

An AA authorization for Tempo transactions with P256/WebAuthn signatures.

TempoCall = { to, data, value }

A single call within a Tempo batched transaction.

TempoFeePayerSignature = { r, s, y_parity }

A fee payer signature for sponsored Tempo transactions (secp256k1 only).

TokenOutput = { owner_public_key, token_amount, id, 5 more... }

A Spark token output.

TokenTransferDestination = { address, asset, chain }

The destination address for a token transfer. Optionally specify a different asset or chain for cross-asset or cross-chain transfers.

The source asset, amount, and chain for a token transfer. Specify either asset (named) or asset_address (custom), not both.

TotalFeeConfigurationBps = { type, value }

Total fees assessed on a transfer, in BPS

Details of a wallet transaction, varying by transaction type.

TransactionTokenAddressInput = string

Token contract address (EVM: 0x-prefixed hex) or mint address (Solana: base58), used to filter wallet transactions.

TransferQuoteRequestBody = { destination, source, amount_type, 2 more... }

Request body for requesting a quote for a cross-asset or cross-chain (DADC) transfer.

TransferQuoteResponse = { destination, estimated_fees, estimated_output_amount, 4 more... }

Response containing a quote for a cross-asset or cross-chain (DADC) transfer.

TransferReceivedTransactionDetail = { asset, chain, display_values, 7 more... }

Details for a received transfer transaction.

TransferRequestBody = { destination, source, amount_type, 2 more... }

Request body for initiating a sponsored token transfer from an embedded wallet.

TransferSentTransactionDetail = { asset, chain, display_values, 7 more... }

Details for a sent transfer transaction.

TypedDataDomainInputParams = Record<string, unknown>

The domain parameters for EIP-712 typed data signing.

TypedDataTypeFieldInput = { name, type }

A single field definition in an EIP-712 typed data type.

TypedDataTypesInputParams = Record<string, Array<>>

The type definitions for EIP-712 typed data signing.

An unsigned Ethereum transaction object. Supports standard EVM transaction types (0, 1, 2, 4) and Tempo transactions (type 118).

UnsignedStandardEthereumTransaction = { authorization_list, chain_id, data, 9 more... }

An unsigned standard Ethereum transaction object. Supports EVM transaction types 0, 1, 2, and 4.

UnsignedTempoTransaction = { calls, type, aa_authorization_list, 12 more... }

An unsigned Tempo transaction (type 118) with batched calls.

UserOperationInput = { call_data, call_gas_limit, max_fee_per_gas, 9 more... }

An ERC-4337 user operation.

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

A wallet managed by Privy's wallet infrastructure.

WalletInitImportResponse = { encryption_public_key, encryption_type }
WalletAdditionalSigner = Array<>

Additional signers for the wallet.

WalletAdditionalSignerItem = { signer_id, override_policy_ids }

A single additional signer on a wallet, with an optional policy override.

WalletAPIRegisterAuthorizationKeyInput = { public_key, display_name, role }

Input for registering or updating an application public signing key for API-based wallet actions.

WalletAPIRevokeAuthorizationKeyInput = { id }

Input for revoking an application authorization key.

WalletAsset = "usdc" | "usdc.e" | "eth" | 6 more...

A named asset supported across all chains.

WalletAuthenticateRequestBody = { encryption_type, recipient_public_key, user_jwt }

Request body for wallet authentication with HPKE-encrypted response.

WalletAuthenticateWithJwtResponse = { encrypted_authorization_key, expires_at, wallets } | { authorization_key, expires_at, wallets }

The response from authenticating a wallet, containing an authorization key and wallet data.

WalletAuthorizationHeaders = { privy-app-id, privy-authorization-signature, privy-request-expiry }

Headers required to authorize wallet operations.

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, display_name, 4 more... }

Input for a single wallet in a batch creation request.

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

The wallet chain types.

WalletCreateWalletsWithRecoveryResponse = { recovery_user_id, wallets }

The response from creating wallets with an associated recovery user.

WalletCustodian = { provider, provider_user_id }

Information about the custodian managing this wallet.

WalletEntropyType = "hd" | "private-key"

The entropy type of the wallet.

WalletEthereumAsset = "usdc" | "usdc.e" | "eth" | 5 more...

A named asset on Ethereum-compatible chains.

WalletExportRequestBody = { encryption_type, recipient_public_key, export_seed_phrase }

Request body for exporting a wallet private key.

WalletExportResponseBody = { ciphertext, encapsulated_key, encryption_type }

Response body containing the encrypted wallet private key.

WalletImportInitResponse = { encryption_public_key, encryption_type, import_id }

Response from initializing a wallet import, containing the encryption public key.

WalletImportSupportedChains = "ethereum" | "solana"

The chain type of the wallet to import. Currently supports ethereum and solana.

WalletImportSupportedEntropyTypes = "private-key" | "hd"

The entropy type of the wallet to import. Supports private-key for raw private keys and hd for HD wallet seed phrases.

WalletRevokeResponse = { message }

The response body from revoking a wallet delegation.

Request body for wallet RPC operations, discriminated by method.

Response body for wallet RPC operations, discriminated by method.

WalletSolanaAsset = "sol" | "usdc" | "eurc" | 1 more...

A named asset on Solana.

WalletUpdateRequestBody = { additional_signers, display_name, owner, 2 more... }

Request body for updating a wallet. owner and owner_id are mutually exclusive.

Wallets

Balance

wallets.balance

Methods

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

Get the balance of a wallet by wallet ID.

Domain types

BalanceGetResponse = { balances }

wallets.earn

WalletsEarn

Ethereum

wallets.earn.ethereum

Methods

post/v1/wallets/{wallet_id}/earn/ethereum/deposit

Deposit assets into an ERC-4626 vault.

post/v1/wallets/{wallet_id}/earn/ethereum/withdraw

Withdraw assets from an ERC-4626 vault.

wallets.earn.ethereum.incentive

Methods

Earn Incentive Claim ->
post/v1/wallets/{wallet_id}/earn/ethereum/incentive/claim

Claim incentive rewards for a wallet.

wallets.swap

Methods

Get Swap Quote ->
post/v1/wallets/{wallet_id}/swap/quote

Get a price quote for swapping tokens within a wallet.

Swap Tokens ->
post/v1/wallets/{wallet_id}/swap

Execute a token swap within a wallet.

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.

Domain types

TransactionGetResponse = { next_cursor, transactions }