Reference

Token metadata

Explorer logos, the token list, and social links.

Wallets and explorers show a logo from token metadata. They cannot read bytecode media. At review, the app makes a logo from your media and pins it to IPFS.

Your mediaLogo source
Has an imageThe image (first frame for GIFs)
Has a video, no imageA frame from the start of the video
NeitherA generated tile with your ticker

Logo size#

  • Every logo is 500 pixels tall.
  • The width follows your media's shape. A square becomes 500 x 500. A 16:9 file becomes 889 x 500.
  • Nothing is cropped. Very wide media is capped at 2000 pixels wide.
  • JPEG sources and video frames produce a JPEG. Other images produce a PNG.
  • Logos are kept under 1 MB. Large logos drop JPEG quality first, then scale to half size.

The live preview on the launch page shows the logo before you sign.

If pinning fails#

The review screen shows Retry logo and Launch without logo. A launch without a logo works the same way. Wallets just show no image for it.

contractURI (ERC-7572)#

Each token has a contractURI() that points to a JSON file on IPFS. It is set at launch and never changes.

  • It is either empty or an ipfs:// link of up to 200 bytes.
  • The token emits ContractURIUpdated() once at deployment.
  • The metadata has no token address, because the address does not exist until the launch confirms.
{
  "name": "Test",
  "symbol": "TEST",
  "description": "Test",
  "image": "ipfs://<logo CID>",
  "external_link": "https://example.com",
  "decimals": 18,
  "properties": {
    "chain_id": 4663,
    "launchpad": "Scrible",
    "inscriptions": [
      { "mime": "image/jpeg", "digest": "0x…", "size": 41958, "category": "image" }
    ],
    "logo_source": { "inscription_index": 0, "kind": "image", "inscription_digest": "0x…" },
    "links": { "website": "", "x": "", "telegram": "" },
    "note": "Logo is an IPFS copy derived from the onchain inscription; the inscription (keccak digest above) is the source of truth."
  }
}

external_link is your website, or the Scrible app if you left it blank. kind is image, video-first-frame, or generated.

The inscription wins

The IPFS logo is a copy for wallets. If it ever differs from the inscription, trust the inscription and its digest.

Token list#

The app serves a token list in the Uniswap token list format:

https://scrible-six.vercel.app/tokenlist.json
  • It lists tokens from the three newest factories.
  • Each entry has the chain ID, address, name, symbol, 18 decimals, and a logo URL when the token has one.
  • Logo URLs use an HTTPS IPFS gateway, because many wallets cannot open ipfs://.
  • The list refreshes every 5 minutes.

Tokens with symbols outside A-Z0-9 or names over 60 bytes are left out.

Website, X, and Telegram links live in the links registry at 0xA4b353d8D4Fc2c037828Bb802930215c01772cd4. They work for every Scrible token, old or new.

  • Only the token's creator() can set links.
  • The creator can change them at any time from the token page with Edit links.
  • Website must start with https://. X must start with https://x.com/ or https://twitter.com/. Telegram must start with https://t.me/.
  • Each link is up to 120 bytes. At least one must be set.
getLinks(address token) returns (string website, string x, string telegram)
setLinks(address token, string website, string x, string telegram)
esc