Get wallet by ID
Returns active wallet metadata, exact Config or Connection ownership, runtime execution admission, Provider, public key, and by default the current SOL balance.
GET/Run in dashboard
If the balance read fails, returns 503 instead of a zero balance. Set includeBalance=false for a metadata-only read.
Requires an API key with the wallets.read action.
Path parameters
-
walletId·string· required · min length 1 · exampleprivy_wallet_123Provider wallet ID — the
walletIdfield returned by GET /v1/wallets.
Query parameters
-
includeBalance·string· one oftrue,false· examplefalseWhether to resolve the current SOL balance. Defaults to true; false returns metadata without balance RPC or pricing calls.
Headers
-
x-project-id·string· min length 1 · exampleprj_exampleRequired for dashboard sessions. API keys use their assigned project.
Responses
-
200Wallet details-
data·object· requiredWallet details by ID response payload.
-
wallet·object· requiredWallet details with provider and optional SOL balance.
-
id·string· required · examplecwlt_exampleWallet record ID.
-
custodyConfigId·string· examplecfg_exampleOwning custody configuration ID.
-
custodyConnectionId·string· examplecconn_exampleOwning Custody Connection ID.
-
provider·string· required · exampleprivyWallet custody provider.
-
isRuntimeExecutionAllowed·boolean· required · exampletrueWhether SDP currently permits attempting runtime execution through this wallet's owner. This is request-time admission, not Provider health or a success guarantee.
-
walletId·string· required · min length 1 · exampleprivy_wallet_123Provider wallet ID.
-
publicKey·string· required · min length 32 · max length 44 · exampleSo11111111111111111111111111111111111111112Base58-encoded Solana address.
-
label·string | null· required · exampleTreasury walletOptional wallet label.
-
purpose·string | null· required · exampletransferOptional wallet purpose.
-
status·string· required · one ofactive,inactive· exampleactiveWallet status.
-
createdAt·string· required · formatdate-time· example2025-01-01T00:00:00.000ZISO 8601 timestamp.
-
balance·objectCurrent SOL balance for the wallet public key. Omitted when includeBalance=false.
-
token·string· required · alwaysSOL· exampleSOLBalance token symbol.
-
mint·string· required · exampleSo11111111111111111111111111111111111111112Native SOL mint address.
-
amount·string· required · example123456789Raw lamports balance as a string.
-
uiAmount·string· required · example0.123456789Human-readable SOL balance.
-
decimals·number· required · always9· example9Token decimals for SOL.
-
One of:
-
Owned by a Managed config. · must include
custodyConfigId· must not includecustodyConnectionId -
Owned by a Custody Connection. · must include
custodyConnectionId· must not includecustodyConfigId
-
-
-
meta·object· requiredResponse metadata.
-
requestId·string· required · min length 1 · examplereq_exampleRequest identifier for tracing.
-
timestamp·string· required · formatdate-time· example2025-01-01T00:00:00.000ZISO 8601 timestamp.
-
-
-
401Unauthorized-
error·object· requiredStandard error payload.
-
code·string· requiredMachine-readable error code.
-
message·string· requiredHuman-readable error message.
-
details·objectOptional error details for debugging.
*·any
-
-
meta·object-
requestId·string· min length 1 · examplereq_exampleRequest identifier for tracing.
-
-
-
403Forbidden. Requires thewallets.readaction: an API key must hold it (a module'smanageorexecutealso covers itsread), and a signed-in member's organization role must include it. Without it the error is INSUFFICIENT_PERMISSIONS anderror.details.actionnames the action. Any other 403 names its own reason.Same fields as
401. -
404Not FoundSame fields as
401. -
409ConflictSame fields as
401. -
500Internal Server ErrorSame fields as
401. -
503Service UnavailableSame fields as
401.