Token metadata

tokenURI, the JSON schema, and the CDN path.

Where metadata lives

Name, symbol, decimals, and supply are on-chain. Logo, description, and links are in a JSON file. Every token exposes its URL through tokenURI() (ERC-1046), and the same URL is the uri in DirectPoolOpened.

The URL is built from the factory's metadataBase and the lowercase token address: {metadataBase}{token}/metadata.json.

metadataBase by network

ArcChain 5042
https://cdn.arklis.app/token/
Robinhood ChainChain 4663
https://cdn.arklis.app/token/hood/

JSON schema

metadata.jsonjson

{
  "name": "Example",
  "symbol": "EXM",
  "description": "Optional text from the creator",
  "image": "https://cdn.arklis.app/…/logo.webp",
  "icons": ["https://cdn.arklis.app/…/logo.webp"],
  "showName": true,
  "createdOn": "https://arklis.app",
  "website": "https://example.com",
  "external_link": "https://example.com",
  "twitter": "https://x.com/example",
  "telegram": "https://t.me/example",
  "discord": "https://discord.gg/example"
}
namestringSame as the on-chain name.
symbolstringSame as the on-chain symbol.
descriptionstring?Creator text. Omitted when empty.
imagestringLogo URL. Prefer this for display.
iconsstring[]ERC-1046 icon list; contains the logo.
websitestring?Also mirrored as external_link.
twitter, telegram, discordstring?Full URLs. Present only when set.
createdOnstringLaunch origin, https://arklis.app.

Caching

The JSON is served from a CDN and can be updated after launch, for example when a logo is re-uploaded. Cache it for minutes, not forever, and fall back to the on-chain name and symbol if the request fails.