Skip to main content

My wallets

curl http://127.0.0.1:8787/v1/wallet/wallets \
-H "Authorization: Bearer <participant accessToken>"
Response
{
"items": [
{
"walletId": "0728a...",
"eventId": "018f26d7-8a7b-7e7d-8c96-4f0b8d0f2b10",
"eventName": "Summer Festival",
"eventSlug": "summer-festival",
"eventCode": "AXY-9898",
"status": "active",
"lastSyncedAt": "2026-08-07T10:00:03.000Z"
}
]
}

This is discovery, not balance

This endpoint lives in wallet-control-api (global) and reads from global.user_wallet_directory — a fast-read mirror, not the source of truth. It answers "which events do I already have a wallet in, and what's each one's eventId", so the app can then call GET /v1/events/{eventId}/wallets/current (in the right region) and get the real balance. Don't use the status from here to decide whether you can spend — it's just a snapshot, a few seconds behind whatever just happened in the region.

Why it can take a moment to show up

When a wallet is activated (see Find an event and activate a wallet), the region writes an event to its own queue (outbox) and a background process — which runs every few seconds, not instantly — sends it to the global directory. If you call GET /v1/wallet/wallets right at the instant after activation, the wallet might not be in the list yet. If your app needs to show the wallet immediately after activating it, use the response from the PUT .../wallets/current call itself instead of relying on this listing right away.