---
title: "Log in with Privy token"
method: POST
path: "/v1/auth/login/privy"
tags: ["Auth"]
---

# Log in with Privy token

`POST /v1/auth/login/privy`

Handles `POST /v1/auth/login/privy` via `post.v1.auth.login.privy`.

## Request body

- PrivyLoginRequest
  - `privy_token` string, required
  - `wallet_proof` PrivyWalletProof
    - `nonce_id` string, required — The `nonce_id` returned from the wallet-challenge endpoint.
    - `signed_transaction` string, required — The full signed Solana transaction, base64-encoded (legacy bincode format). The transaction must be the same one returned from the wallet-challenge endpoint, signed by `wallet_pubkey`.
  - `wallet_pubkey` string, nullable — Optional Solana wallet pubkey the caller is asserting ownership of. For first-time bindings ownership must be proved either by including `wallet_proof` (a Solana memo transaction signed by the wallet — works for Ledger which cannot sign off-chain messages) or, absent a proof, by Privy's `linked_accounts` API confirming the wallet is linked to the authenticated user. An unverified pubkey is rejected with `wallet_not_linked`. For returning users, if supplied, it must match the bound pubkey. If omitted when no mapping exists, login still succeeds but the issued token will not carry a `wallet` claim and so cannot satisfy user-scoped authorization.

## Response `200`

Phoenix JWT pair issued

- AuthResponse
  - `access_token` string, required
  - `expires_in` integer, required
  - `pop_key` string, required
  - `refresh_expires_in` integer, required
  - `refresh_token` string, required
  - `token_type` string, required

## Other responses

- `400` — Standard JSON error payload.
- `401` — Standard JSON error payload.
- `403` — Standard JSON error payload.
- `409` — Standard JSON error payload.
- `500` — Standard JSON error payload.
- `502` — Standard JSON error payload.
- `503` — Standard JSON error payload.

---

[API](https://skmtc.net/phoenix/apis/phoenix-eternal-api.md) · [All operations](https://skmtc.net/phoenix/apis/phoenix-eternal-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/phoenix/phoenix-eternal-api/versions/0f598402d680/schema)
