The sprite is inside the transaction.
Not a link to an image. Not an IPFS URL that can go dark. The pixels themselves ride inside the transaction that launches the token, at their original resolution. Anyone can read them back.
What the transaction carries
These bytes are the memo instruction, in base64. Your browser just decompressed them to paint the image on the left, with no network call and no image server.
pkmp1:UEtNUAEZAC4NAAAAKSkpYjEIQUFK9r0gnFIA9uZS3pQA//akc3OD////5lpBxSAYldXbloMgDAVQDyGXTuv//+6sICBg7Iw81Kq7EJJot80HtgcD6Ql/qh9wpKeaHujMV51SSqHOzAtPKeWccxQgeNEirOo6f9Hiww/q4wZvGzGziL1eL1U7rP7cYdfmtvA6ckbDvuDETReMbjdRnbk0xAB7NFjuyTS1m7L+G8lnPu+ZXjTe3ALIs7a66MApQ5WsR9LvWcOjltQDV9XPR43m7YyayjmJVfzZGQseOH1YjaRUSHnf90NPeNA7D+PU/A/N+86uxb+f1Rp2yetAv1YTO9YSq6ZhhsUGWlEasyxz6UTogj1Oiq1r1QmXXRGzXO2hqzc+c0Dr41r7QbXWojWGK1iocTI7E+w44iUQ6R9aAiczY6PrLmGTZvPWNTOjKGxIjeGYWo5GN4ufebR5+yIl0yIRh4vjPYJ6LK0Sc79fX1D1yHXuQGPq45KSkjqSsOzMK9a7FmkN2Cg3zDd/F9eHIS7iOPkybpLt3L0ZANCfmMikZwskYhbW5cBeGxoyUF7+XwIBzecqeqvD34fXfwE=What a launch transaction holds
Launching Pikachu takes 1,856 bytes. Here is how they break down, with the image as the last slice.
- Signatures 128 B
- payer and mint, 64 bytes each
- Accounts 896 B
- 28 accounts, 32 bytes each, quote chain included
- Header and config 58 B
- resource limits set in the message
- Create instruction 172 B
- name, ticker, URI, creator, quote mint
- Memo, the sprite 602 B
- PKMP1 payload in base64
The real limit is not space
You expect to run out of bytes. You run out of compute first: writing the memo burns compute units, and a transaction is capped.
This is the bound that actually applies.
The memo program burns about 358 units per character, measured by simulating three payloads against mainnet:
- 514 ch.291,952
- 602 ch.319,847
- 2,162 ch.881,285
A transaction caps at 1,400,000 units. Writing the heaviest sprite costs eight times more compute than launching the token.
The format
Pokémon sprites use only 10 to 15 colours, so a palette captures them exactly, with no approximation and no colour drift. Only the pixel indices are compressed.
| Offset | Size | Field | Holds |
|---|---|---|---|
| magic | "PKMP" | ||
| version | 1 | ||
| pokedex | national number, u16 | ||
| side | pixels, square sprite | ||
| colours | palette size | ||
| palette | RGB, one entry per colour | ||
| pixels | deflate-raw of the indices |
All 50, by weight
Each sprite is sized by how many bytes its inscription takes, heaviest first, from Ho-Oh at 1615 bytes down to Mimikyu at 379. None had to be reduced.
Check it yourself
None of this asks you to take our word for it. The payload travels in the clear: any block explorer shows it, and the decoder on this page runs entirely in your browser.

















































