Publishing a token currency returns a `TreasuryCap<T>` (permits minting/burning) and a `CoinMetadata<T>` (sets decimals, symbol, and icon URL).
move
let (treasury_cap, metadata) = coin::create_currency(
witness, 9, b"USDC", b"USD Coin", b"", option::none(), ctx
);
transfer::public_freeze_object(metadata);
transfer::public_transfer(treasury_cap, ctx.sender());