Skip to main content
POST
/
v1
/
auth
/
login
/
wallet
/
transaction
Log in with signed wallet transaction
curl --request POST \
  --url https://perp-api.phoenix.trade/v1/auth/login/wallet/transaction \
  --header 'Content-Type: application/json' \
  --data '
{
  "nonce_id": "string",
  "signed_transaction": "string",
  "wallet_pubkey": "string"
}
'
{
  "access_token": "<string>",
  "expires_in": 1,
  "pop_key": "<string>",
  "refresh_expires_in": 1,
  "refresh_token": "<string>",
  "token_type": "<string>"
}

Body

application/json

JSON request payload for post.v1.auth.login.wallet.transaction.

nonce_id
string
required

Echo of the nonce_id returned from the challenge endpoint.

signed_transaction
string
required

Base64-encoded fully-signed Solana legacy transaction (bincode wire format). Must be the challenge transaction signed by wallet_pubkey. Wallets are permitted to include additional ComputeBudget or Lighthouse instructions before signing (in any position); any other instruction (other than the Memo issued by the server) is rejected. The server verifies the signature, the memo payload, and that the message still uses the issued blockhash so the signed bytes are never broadcastable on-chain.

wallet_pubkey
string
required

Response

Phoenix JWT pair issued

access_token
string
required
expires_in
integer<int64>
required
Required range: x >= 0
pop_key
string
required
refresh_expires_in
integer<int64>
required
Required range: x >= 0
refresh_token
string
required
token_type
string
required