Docs/API reference/Loyalty Token
Loyalty Token
The public shape of an indexed Loyalty Token and its customer-facing metadata.
A program token has an immutable issuer and loyalty ID, an admin owner, balances by expiry bucket, metadata, and royalty settings. Changing the admin owner does not change the issuer. New programs have no issuance, redemption, or transfer pause.
LoyaltyToken#
| Field | Type | Required | Meaning |
|---|---|---|---|
id | string | yes | Indexer ID used in Loyfin URLs. |
chainId | string | yes | Chain ID. Loyfin uses Base 8453. |
loyaltyAddress | address | yes | Program contract address. |
issuer | address | yes | Immutable brand identity and issue/redeem signer. |
owner | address | yes | Current admin for mutable settings. Zero address means settings are immutable. |
loyaltyId | bytes32 | yes | Brand-scoped program ID. |
name / symbol / media / description | string | yes | Customer-facing program identity. |
royaltyBps | number | yes | Marketplace royalty basis points. |
issuable / redeemable / transferable | boolean | yes | Always true in new programs. Legacy deployments may report restrictions. |
{
"id": "7",
"chainId": "8453",
"loyaltyAddress": "0x4444444444444444444444444444444444444444",
"issuer": "0x1111111111111111111111111111111111111111",
"owner": "0x1111111111111111111111111111111111111111",
"loyaltyId": "0x4242424242424242424242424242424242424242424242424242424242424242",
"name": "Bloom Coffee Rewards",
"symbol": "BLOOM",
"media": "ipfs://bafy.../bloom.png",
"description": "Rewards for Bloom Coffee customers.",
"royaltyBps": 200,
"issuable": true,
"redeemable": true,
"transferable": true,
"createdAt": "2026-06-20T10:15:00.000Z"
}Metadata#
| Field | Type | Required | Meaning |
|---|---|---|---|
loyaltyId | bytes32 | yes | Must match the action loyaltyId. |
name | string | yes | Customer-facing program name. Max 96 UTF-8 bytes. |
symbol | string | yes | Short program ticker or label. Max 24 UTF-8 bytes. |
media | string | yes | Shared artwork URL used as the image for every expiry bucket. Max 512 UTF-8 bytes. |
description | string | optional | Program description. Empty string is allowed. Max 1024 UTF-8 bytes. |