stickercap
← back to the docket

the authenticity API

Anyone can tell you whether a token can mint more supply. That is a public RPC call and it is free everywhere. Nobody else can tell you whether the artwork is real, who actually drew it, and whether that person endorsed the coin wearing it. That answer needs a provenance corpus, resolved creator identities, an attested rubric, and Telegram's own set-id math. It is one call.

the endpoint

GET /api/v1/authenticity/ton/{token_address}

{
  "verdict": {
    "grade": "F",
    "score": 8,
    "flags": ["DISPUTED_BY_CREATOR", "MINTABLE"],
    "headline": "Impersonation — the artist rejects this
                 token's claim to their artwork.",
    "plain_english": "This token uses artwork from a sticker
      set whose real creator has disputed any connection to
      it. The people selling this do not have the artist's
      endorsement."
  },
  "asset_provenance": {
    "short_name": "…",
    "authorship_basis": "set_id >> 32 (Telegram protocol)",
    "creator": {
      "handle": "@…",
      "attested_this_token": false,
      "disputed_this_token": true
    },
    "lore_marks": ["telegram-official"],
    "record_url": "https://www.stickercap.io/set/…"
  },
  "supply_integrity": { "grade": "D", "capped_by": "MINTABLE", … },
  "market_context":   { "market_cap_usd": …, "liquidity_usd": … }
}

Open during early access, because an authenticity answer nobody can reach protects nobody. Send X-API-Key: keys are free and becoming required (with higher limits and webhooks) before general availability. Responses cache for 10 minutes.

linking to a record

GET /api/v1/set/{short_name}

{
  "known": true,
  "record_url": "https://www.stickercap.io/set/certifiedglowie",
  "title": "certified glowie",
  "thumbnail_url": "https://www.stickercap.io/api/thumbs/certifiedglowie",
  "telegram_url": "https://t.me/addstickers/certifiedglowie",
  "creator": {
    "telegram_id": 6330629460,
    "handle": null,           // "@hollowtradr" with a key
    "authorship_basis": "set_id >> 32 (Telegram protocol)"
  },
  "token": null
}

If the pack is not on the docket yet you get known: false, expected at launch since nobody has pasted it. With a key we queue it and file it within minutes (filing: "queued"); retry then, and the record URL is permanent from that point. Use this one at launch. The authenticity call keys on a token address, which only exists once a token is filed and linked. At the moment a launchpad wants to link out, that is not true yet. The set's short name is the only identifier that is already true, and the record it returns is permanent: filing a pack is free, and the URL survives the token.

curl -H "X-API-Key: $KEY"   https://www.stickercap.io/api/v1/set/certifiedglowie

# a set nobody has filed yet: an honest unknown, never a guess.
# with a key we queue it and file it within minutes.
curl -H "X-API-Key: $KEY"   https://www.stickercap.io/api/v1/set/nobody_filed_this
{ "known": false, "filing": "queued", "record_url": null,
  "file_it_url": "https://t.me/stickercapbot" }

Send a key. During early access these rails may answer without one, and that is closing. Keys are free, granted on request, and take a minute: ask @stickercapbot. Building against a key today means nothing changes for you when it becomes required. Rate limits are generous and per caller, and a X-API-Key raises the ceiling and returns resolved creator handles. Machine-readable spec: openapi.json. Import it into Swagger UI, Postman, or any client generator. It describes these two rails and deliberately nothing else.

Logos for partner surfaces, transparent ground, vector and raster: mark (svg) · mark (png 1024) · lockup for dark · lockup for light

the index

GET /api/v1/index/sticker20

{
  "index": "STICKER20",
  "value": 159.16,
  "delta_24h_pct": -5.2,
  "regime": "risk-on",
  "base": { "date": "2026-07-18", "value": 100.0 },
  "as_of": "2026-08-23",
  "constituents": 20,
  "series": [ { "date": "…", "value": … } ],
  "attribution": "STICKER20 by stickercap"
}

STICKER20 is the docket's reference index: cap-weighted and chain-linked daily, base 100 at 2026-07-18. Each day's return uses only tokens present on both days, so a newly listed coin enters without moving the level: coverage growth is never mistaken for a rally. Add ?series=false for just the number.

The methodology ships in the response, deliberately. An index is a claim about a market, and rendering the level on your own surface inherits that claim, so say where it came from. Full rubric: the methodology page.

what stays free, and what won't

free forever/api/v1/set, the deep link and what a card needs: title, thumbnail, record_url, and the creator's telegram id. Build on it. A bot that answers with our record and our link is how people find the docket
needs a key (free)the creator's resolved @handle. The id is a Telegram protocol fact anyone can recompute; mapping it to a name has no API at all, and we did that work by hand. Keys are free: it is attribution, not a paywall
rate limitsgenerous, per caller, and a key raises the ceiling. Not secrecy, since public facts stay public. It is just so bulk reconstruction costs time and has a name on it
key restrictionsa key can be restricted to your own domain, so one lifted out of your page is useless on someone else's site. Browsers cannot lie about Origin and other clients can, so it scopes a key, it is not a security boundary. Server-side calls send no Origin and are unaffected. Ask and we will bind yours
pro at GA/api/v1/authenticity, the verdict: creator attestation, the disputed-artwork case, supply integrity, market context. This is the answer that needs the corpus, and it is the one we sell
free right nowboth, unmetered, no key required, during early access. When the metered tier starts, existing integrations get notice and a key, not a broken build

One condition on the free tier: say where it came from.

Show powered by stickercap anywhere our data appears, linked to the record it came from: the record_url that comes back on every call, not the homepage. A reader who lands on the exact pack is already reading; one who lands on the front door has to start the search over. That is the whole price, and it is the deal we would rather have than your money. Tell us when you ship and we will run your tool on the docket in return.

powered by stickercap · stickercap.io/set/{short_name}

<a href="https://www.stickercap.io/set/{short_name}">powered by stickercap</a>

logo: stickercap.io/brand/stickercap-mark.svg (transparent)

# the record, not the homepage: record_url comes back on every call

Want a key before then? Ask @stickercapbot. Keys are free during early access and exist so your usage is attributed to you, which is what gets your integration considered when limits arrive.

what the verdict can say

DISPUTED_BY_CREATORthe artist rejects this token's claim to their artwork: the impersonation case, and the answer no competitor can return
UNATTESTED_BY_CREATORthe link is an admin filing, not the artist's endorsement
MINTABLEa live admin can still create supply, which caps the grade at D
CONCENTRATEDtop-10 wallets hold more than half the measured supply
SUPERSEDED_LINKa real previous token whose market wound down; kept as history
UNKNOWN_ASSETwe have no filed record. absence is not an accusation. it means unverified

who this is for

  • marketplaces: a listing that turns out to be unauthorized IP is your risk, and you cannot compute artwork authenticity at any price. Screen at listing time.
  • wallets and trading bots: show the artist's own verdict next to the buy button.
  • launchpads: refuse the impersonation before it becomes your incident.

talk to us about a key →

Every field is derived from the public record, the same record you can read at the rubric. We publish the method because a grade is a claim, and a claim you cannot check is marketing.