Get wallet public key
Returns the persisted public key for an exact active walletId. walletId is required (400 without it); an API key with selected wallets gets 404 for a wallet it does not list.
GET/Run in dashboard
Resolution is DB-backed only.
Requires an API key with the wallets.read action.
Query parameters
-
walletId·string· required · min length 1 · exampleprivy_wallet_123Provider wallet ID — the
walletIdfield returned by GET /v1/wallets.
Headers
-
x-project-id·string· min length 1 · exampleprj_exampleRequired for dashboard sessions. API keys use their assigned project.
Responses
-
200Wallet public key-
publicKey·string· required · min length 32 · max length 44 · exampleSo11111111111111111111111111111111111111112Base58-encoded Solana address.
-
-
400Bad Request-
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.
-
-
-
401UnauthorizedSame fields as
400. -
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
400. -
404Not FoundSame fields as
400. -
409ConflictSame fields as
400. -
500Internal Server ErrorSame fields as
400.
Example request
curl 'https://api.solana.com/v1/wallets/public-key?walletId=privy_wallet_123' \
-H "Authorization: Bearer $SDP_API_KEY"Example responses
{
"publicKey": "So11111111111111111111111111111111111111112"
}Error responses use the standard error shape.