---
title: "GET /v4/tokens/wrappers"
method: GET
path: "/v4/tokens/wrappers"
tags: ["Tokens"]
---

# GET /v4/tokens/wrappers

`GET /v4/tokens/wrappers`

List every Merkl token wrapper a creator distributes, one entry per wrapper and distribution chain, live campaigns first. Wrappers are discovered through the campaigns that distribute them, so a wrapper deployed but never used in a campaign is not returned. Only static data is served here — read the holder, balances and allowance from chain.

## Query parameters

- `creatorId` string — Merkl **creator ID** (e.g. `morpho`). Matches every wallet address linked to that creator. Mutually exclusive with `creatorAddress` — one of the two is required.
- `creatorAddress` string — Single creator wallet address. Use when the address is not linked to a creator record. Mutually exclusive with `creatorId`.

## Response `200`

Response for status 200

- object[]
  - `distributionChainId` number, required — Chain the wrapper is deployed on, i.e. where its campaigns distribute rewards.
  - `wrapper` object, required — Token
    - `id` string, required — Unique identifier for the token
    - `name` string, required — Full name of the token
    - `chainId` integer, required — Chain Id
    - `address` string, required — Address
    - `decimals` number, required — Number of decimals for the token
    - `symbol` string, required — Symbol of the token
    - `icon` string, required — URL to the token icon image
    - `verified` boolean, required — Whether the token is verified
    - `isNative` boolean, required — Whether this is a native blockchain token
    - `isTest` boolean, required — Whether this is a test token
    - `type` union, required — Type of the token (TOKEN, PRETGE, POINT)
      - string
      - string
      - string
    - `price` number — Current price of the token in USD
    - `updatedAt` number — Unix timestamp of last price update
    - `priceSource` string — Source of the price information
    - `displaySymbol` string — Custom display symbol override
    - `underlyingTokenId` string — If this token is a wrapper, the ID of the underlying token
    - `priceAlertDismissedAt` number
    - `priceAlertCount` number
  - `underlying` object, required — Token
    - `id` string, required — Unique identifier for the token
    - `name` string, required — Full name of the token
    - `chainId` integer, required — Chain Id
    - `address` string, required — Address
    - `decimals` number, required — Number of decimals for the token
    - `symbol` string, required — Symbol of the token
    - `icon` string, required — URL to the token icon image
    - `verified` boolean, required — Whether the token is verified
    - `isNative` boolean, required — Whether this is a native blockchain token
    - `isTest` boolean, required — Whether this is a test token
    - `type` union, required — Type of the token (TOKEN, PRETGE, POINT)
      - string
      - string
      - string
    - `price` number — Current price of the token in USD
    - `updatedAt` number — Unix timestamp of last price update
    - `priceSource` string — Source of the price information
    - `displaySymbol` string — Custom display symbol override
    - `underlyingTokenId` string — If this token is a wrapper, the ID of the underlying token
    - `priceAlertDismissedAt` number
    - `priceAlertCount` number
  - `campaignCount` number, required — Mother campaigns of this creator distributing the wrapper.
  - `liveCampaignCount` number, required — Subset of `campaignCount` currently running.
  - `lastCampaignEndTimestamp` number, required — End timestamp (unix seconds) of the latest campaign distributing the wrapper.

## Changes

- **2026-09-02** `b7784c9a78b9` — 2 info
  - the `items/underlying/anyOf[subschema #1: Token]/address` response's property pattern was changed from `^(0x[a-fA-F0-9]{40}|[1-9A-HJ-NP-Za-km-z]{32,44}|[CG][A-Z0-9]{55})$` to `^(0x[a-fA-F0-9]{40}|[1-9A-HJ-NP-Za-km-z]{32,44}|[CG][A-Z0-9]{55}|0x[a-fA-F0-9]{64})$` for the status `200`
  - the `items/wrapper/address` response's property pattern was changed from `^(0x[a-fA-F0-9]{40}|[1-9A-HJ-NP-Za-km-z]{32,44}|[CG][A-Z0-9]{55})$` to `^(0x[a-fA-F0-9]{40}|[1-9A-HJ-NP-Za-km-z]{32,44}|[CG][A-Z0-9]{55}|0x[a-fA-F0-9]{64})$` for the status `200`

[Change history](https://skmtc.dev/merkl/apis/merkl-api/changes/v4/tokens/wrappers/get.md)

---

[API](https://skmtc.dev/merkl/apis/merkl-api.md) · [All operations](https://skmtc.dev/merkl/apis/merkl-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/merkl/merkl-api/revisions/3af328974da5/schema)
