Docs/Objects/Loyalty Token
Loyalty Token
The public shape of an indexed Loyalty Token and its customer-facing metadata.
LoyaltyToken#
| Field | Type | Required | Meaning |
|---|---|---|---|
id | string | yes | Indexer ID used in Loyfin URLs. |
chainId | string | yes | Chain ID. Production uses Base mainnet 8453; non-production uses Base Sepolia 84532. |
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. |
contractURI / tokenURI | string | yes | Optional metadata overrides. Empty string uses generated metadata. |
royaltyBps | number | yes | Marketplace royalty basis points. |
issuable / redeemable / transferable | boolean | yes | Current program capabilities controlled by the admin owner until ownership is renounced. |
{
"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.",
"contractURI": "",
"tokenURI": "",
"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 | Default artwork URL. Max 512 UTF-8 bytes. |
description | string | optional | Program description. Empty string is allowed. Max 1024 UTF-8 bytes. |
contractURI | string | optional | Collection-level metadata override. Empty string uses generated metadata. Max 512 UTF-8 bytes. |
tokenURI | string | optional | Token metadata override. Empty string uses generated metadata. Max 512 UTF-8 bytes. |