Tokens
client.token is read-only. Token records are populated automatically by the indexer when it observes on-chain transfers — you don’t create them directly via the SDK.
List tokens
Section titled “List tokens”const res = await client.token.list({ highlightId, page: 1, limit: 20, sort: "mintedAt", // "tokenId" | "name" | "mintedAt" | "createdAt" order: "desc", // "asc" | "desc" ownerAddress: "0x...", // optional — filter by owner search: "rare", // optional — substring match on name});For public (Live) collections, this works without auth. Draft collections require ownership.
Get a single token
Section titled “Get a single token”const res = await client.token.get({ highlightId, tokenId: "1", // the on-chain token ID as a string});Token shape
Section titled “Token shape”{ id: "uuid", collectionId: "uuid", tokenId: "1", name: "Token Name", description: "Token description", image: "https://...", animationUrl: "https://...", externalUrl: "https://...", attributes: [ { trait_type: "Background", value: "Gold" }, { trait_type: "Rarity", value: "Rare" }, ], properties: { /* freeform */ }, imageMediaId: "uuid", animationMediaId: "uuid", mintedAt: "2026-04-01T00:00:00Z", createdAt: "2026-04-01T00:00:00Z", updatedAt: "2026-04-01T00:00:00Z",}Token metadata shape depends on the collection type:
- Editions — every token shares the same metadata.
- Series — each token has unique metadata, uploaded as part of the series asset bundle.
- Generative — metadata (including captured image) is materialized from the generator at mint time.