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.