Skip to main content

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

curl -sS "https://api.staging.blackbird.xyz/flynet/v1/users/me/wallets" \
  -H "Authorization: Bearer $ACCESS_TOKEN"
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,
});
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.
Chef’s warning - Wallet addresses are useful for display and correlation, but do not treat them as proof of the current FLY balance.
Next: User passport - combine check-ins with member context.