# Introduction

TRC10 token is a system-level token type in TRON. Compared to TRC20 tokens, TRC10 tokens face a user experience flexibility issue. In Odyssey 3.2, developers and their smart contract callers can interact with TRC10 token via smart contracts according to the contract logic, do TRC10 token transfers in smart contracts, giving them more control to implement their token in business scenarios. Unlike a TRC20 token, sending TRC10 tokens is consistent with transferring TRX in a contract, TRON developers added an interface specifically for TRC10 transfers and queries in solidity.

**Example of transferring trc10 in a contract**

**TRC10 token type** Odyssey_v3.2 defined a new type (trcToken) for TRC10 token, which represents the tokenId in a token transfer operation. TRC10 token can be converted to uint256 type and vice versa.

**TRC10 transfer in contract**

**Query the TRC10 balance in the contract**

Odyssey_v3.2 defines a new tokenBalance function for TRC10 token balance query.

**TokenValue & TokenID** Msg.tokenvalue, represents the token value in the current msg call, with a default value of 0. Msg.tokenid, represents the token id in current msg call, with a default value of 0.