> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flynet.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Wallet badge

> Show a member's Flynet wallets in profile chrome.

# Wallet badge

**Goal:** Show that a member is connected to Flynet and has wallets ready
for membership assets and payments.\
**Prep time:** \~5 minutes

## What you will use

* `GET /flynet/v1/users/me/wallets`

The subject is resolved from your token, with no member ID in the path.

## Code

```bash theme={null}
curl -sS "https://api.staging.blackbird.xyz/flynet/v1/users/me/wallets" \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

```typescript theme={null}
const res = await fetch(
  "https://api.staging.blackbird.xyz/flynet/v1/users/me/wallets",
  { headers: { Authorization: `Bearer ${process.env.ACCESS_TOKEN!}` } }
);

const data = await res.json();
const spending = data.wallets.find((wallet) => wallet.wallet_type === "SPENDING");
const membership = data.wallets.find((wallet) => wallet.wallet_type === "MEMBERSHIP");

console.log({
  spendingWallet: spending?.address,
  membershipWallet: membership?.address,
});
```

<Note>
  **Tasting note** - Wallets are auto-provisioned on the member's first
  OAuth completion. You do not need a separate setup call. This route
  needs the `read:wallets` scope; a token without it returns `403`
  with `error="insufficient_scope"` in the `WWW-Authenticate` header.
</Note>

<Warning>
  **Chef's warning** - Wallet addresses are useful for display and
  correlation, but do not treat them as proof of the current FLY balance.
</Warning>

**Next:** [User passport](/recipes/mains/user-passport) - combine
check-ins with member context.
