A coin's on-chain record holds a uri of at most 200 bytes. It points to a JSON document that the creator hosts; the document is where the description, artwork, category and links live. The app's Create page composes the document for you; this page specifies it for anyone producing one by hand.
Fields#
| Field | Type | Limit | Required |
|---|---|---|---|
name |
string | 64 characters | recommended; the on-chain name is the fallback |
name_en |
string | 64 characters | optional English name |
description |
string | 1,000 characters (the app composes up to 500) | recommended |
description_en |
string | 1,000 characters | optional |
image |
string | https:// URL, or a data:image/...;base64, URL of up to 1,200,000 characters (png, jpeg, webp, gif or svg) |
recommended |
category |
string | one of Culture, Art, Gaming, Animals |
optional |
website |
string | https:// URL, 400 characters |
optional |
social |
string | https:// URL, 400 characters |
optional |
Unknown fields are ignored. Strings longer than their limit are cut, not rejected. A field with a non-https:// URL is dropped.
Document Rules#
| Rule | Value |
|---|---|
| Content type | application/json |
| Maximum size | 1,500,000 bytes |
| Fetch timeout | 6 seconds |
| Retry on failure | every 15 minutes |
| Inline alternative | data:application/json,... in the uri itself, for very small documents |
The indexer fetches the document once, stores the fields above and retries failures. Changing the document later changes what the app shows after the next fetch; the on-chain uri itself cannot be changed.
Hosting#
- Serve the document over
https://from a host you control. A hosting provider's static file service is enough. - Allow cross-origin reads (
Access-Control-Allow-Origin: *) so browsers and third-party sites can read it directly. - Keep the image under the data URL limit if you embed it; otherwise host it as a separate
https://file and reference it. - Do not put the document behind a redirect chain or a page that needs JavaScript.
Example#
{
"name": "爆发",
"name_en": "Baofa",
"description": "Baofa 协议代币。与平台上的每一枚代币一样,在同一条曲线上发行,毕业后在 PancakeSwap v2 上市,流动性永久销毁。",
"description_en": "The Baofa protocol token. Launched on the same curve as every coin on the platform, listed on PancakeSwap v2 at graduation with its liquidity burned.",
"image": "https://baofa.fun/token/baofa-1024.png",
"category": "Culture",
"website": "https://baofa.fun",
"social": "https://baofa.fun/#/app/social"
}What the Document Cannot Do#
The document is presentation only. It cannot change the coin's name, symbol, supply or fees, it carries no code, and the app renders its strings as text, never as markup. Links in it open in a new tab with no referrer.