---
title: "A 5-minute wallet login token for your own browser"
method: GET
path: "/api/wallet/jwt"
tags: ["wallet", "browser-session"]
---

# A 5-minute wallet login token for your own browser

`GET /api/wallet/jwt`

## Request

- Base URL: `https://www.immersivecommons.com`
- URL: `https://www.immersivecommons.com/api/wallet/jwt`
- Auth: API key in cookie `__session`

Clerk-session only, same-site only, and refused outright for an agt_ bearer: the token opens the member's wallet session at Coinbase CDP, so only the member's own browser may hold one. ES256 JWT { iss: https://www.immersivecommons.com, aud: cdp-wallet, sub: the member's IC id, iat, exp: iat+300 }, verifiable against /.well-known/wallet-jwks.json. The wallet is created before the token is issued. 404 unless wallets are enabled.

## Response `200`

The token and its expiry.

- WalletJwtResponse
  - `token` string, required: ES256 JWT for Coinbase CDP custom auth.
  - `expires_at` string, date-time, required

## Other responses

- `401`: Not signed in.
- `403`: Cross-site request, or an agent bearer token.
- `404`: Wallets are not enabled on this deployment.
- `503`: Wallet provider unreachable or issuer not configured.

---

[API](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api.md) · [All operations](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api/revisions/be67c1f67c27?raw)
