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#

FieldTypeRequiredMeaning
idstringyesIndexer ID used in Loyfin URLs.
chainIdstringyesChain ID. Loyfin uses Base 8453.
loyaltyAddressaddressyesProgram contract address.
issueraddressyesImmutable brand identity and issue/redeem signer.
owneraddressyesCurrent admin for mutable settings. Zero address means settings are immutable.
loyaltyIdbytes32yesBrand-scoped program ID.
name / symbol / media / descriptionstringyesCustomer-facing program identity.
royaltyBpsnumberyesMarketplace royalty basis points.
issuable / redeemable / transferablebooleanyesAlways true in new programs. Legacy deployments may report restrictions.
LoyaltyTokenjson
{
  "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#

FieldTypeRequiredMeaning
loyaltyIdbytes32yesMust match the action loyaltyId.
namestringyesCustomer-facing program name. Max 96 UTF-8 bytes.
symbolstringyesShort program ticker or label. Max 24 UTF-8 bytes.
mediastringyesShared artwork URL used as the image for every expiry bucket. Max 512 UTF-8 bytes.
descriptionstringoptionalProgram description. Empty string is allowed. Max 1024 UTF-8 bytes.