The Colored Coins protocol supports adding (potentially arbitrary amounts of) metadata to any colored transaction (issuance or transfer). The metadata is in plain JSON format and it's inclusion is optional.

When metadata is included it is not stored directly on the blockchain but rather using the BitTorrent Protocol which gives a decentralized way to share and store data. DHT trackerless torrents that remove the need for a centralized host for torrent file trackers, further supporting decentralization of the protocol.

The BitTorrent protocol uses a SHA1 hash to reference the file that stores the actual data. This 20 byte SHA1 info_hash is recorded on the blockchain.

Question is why not store this metadata on IPFS? may be someone already doing that.