Content-addressed token metadata

Files are served at /ipfs/<cid> (CIDv1, raw, sha2-256). Content never changes once published.