# How CCIP Programmable Token Transfers Unlock Cross-Chain Innovation

The Chainlink Cross-Chain Interoperability Protocol (CCIP) is far more than a simple token bridging solution. It’s a generalized cross-chain messaging protocol for transferring tokens (value), messages (data), or both tokens and messages simultaneously within a single cross-chain transaction—referred to as Programmable Token Transfers.&#x20;

In effect, CCIP Programmable Token Transfers enable smart contracts to transfer tokens cross-chain along with instructions on what the receiving smart contract should do with those tokens once they arrive on the destination chain. This revolutionary concept of wrapping value and instructions together allows tokenized value to interact automatically and dynamically once it arrives at a destination, opening up a world of new possibilities.

In decentralized finance (DeFi), CCIP Programmable Token Transfers enable the creation of cross-chain native dApps, such as a smart contract that can automatically transfer tokens cross-chain and deposit them into the highest yield lending markets. Within traditional finance (TradFi), CCIP Programmable Token Transfers enable advanced use cases, such as a cross-chain delivery-vs-payment (DvP) transaction where an institution holding stablecoins on its private blockchain can purchase a tokenized asset issued on a different private or public chain.&#x20;

Importantly, CCIP Programmable Token Transfers enable institutions to interact with [smart contracts](https://chain.link/education/smart-contracts) and [tokenized assets](https://chain.link/education/asset-tokenization) on other blockchain networks without needing to integrate or directly interact with that blockchain. All they need to do is send instructions to CCIP on how to interact with that chain, greatly reducing their overhead and the risks associated with point-to-point integrations with each blockchain network.

<figure><img src="https://3336775262-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVxFPzCGStHLGRVz3QBdQ%2Fuploads%2FBQTCGdt0AFKpnrKcre5D%2FScreenshot%202024-07-10%20at%2015.37.51.png?alt=media&#x26;token=c1f53bc7-f641-4d25-8a2a-0f0440730995" alt=""><figcaption></figcaption></figure>

### CCIP Supports Any Cross-Chain Transfer Involving Both Data and Value <a href="#ccip_supports_any_cross-chain_transfer_involving_both_data_and_value" id="ccip_supports_any_cross-chain_transfer_involving_both_data_and_value"></a>

Just as TCP/IP is a universal standard that underpins the Internet, Chainlink CCIP serves as a universal standard that underpins the [Internet of Contracts](https://blog.chain.link/from-tcpip-to-ccip/). To support all the various cross-chain use cases that exist within DeFi and TradFi, CCIP allows for a variety of ways to transfer data and/or value across blockchains.&#x20;

#### Arbitrary Messaging

CCIP’s support for [Arbitrary Messaging](https://docs.chain.link/ccip/tutorials/send-arbitrary-data-receipt-acknowledgment#overview) enables developers to transfer any arbitrary data (encoded as bytes) across blockchain networks. Developers utilize CCIP’s Arbitrary Messaging to make their smart contract applications cross-chain native.&#x20;

With CCIP, smart contracts on a source chain can call any arbitrary function on any arbitrary smart contract on a destination chain to trigger any arbitrary action (and receive a callback on the source chain if needed). Developers can encode multiple instructions in a single message, empowering them to orchestrate complex, multi-step, multi-chain tasks.&#x20;

#### Token Transfers

CCIP Token Transfers enable the transfer of tokens between chains via highly audited and security-reviewed token pool contracts. Transactions can be initiated directly by externally owned accounts (EOAs), such as from user wallets via a bridging app like [Transporter](https://transporter.io/), or directly by a smart contract. Tokens can then be sent to an EOA or to a smart contract.&#x20;

In order to ensure the highest level of security and a superior user experience, token issuers can use CCIP directly within their token’s smart contract to make it a native cross-chain token. As a result, any user or developer can use CCIP to transfer the official (canonical) version of that issuer’s token cross-chain. Various layer-1 blockchain and layer-2 rollups such as Wemix and Metis built upon this concept by integrating [CCIP as their official cross-chain infrastructure](https://blog.chain.link/canonical-token-bridges-powered-by-ccip/) to power their canonical token bridges. Every token transferred onto those blockchain networks via CCIP is the canonical representation of that token on that chain.

**There are three primary ways developers can integrate CCIP for token transfers:**

* **Burn and mint**—Tokens are burned on a source chain, and an equivalent amount is minted on a destination chain. This enables the creation of cross-chain native tokens with a dynamic, unified supply across chains. [CCIP supports Circle’s USDC](https://docs.chain.link/ccip/tutorials/usdc) via the burn and mint token transfer method.
* **Lock and mint**—Tokens are locked on the chain they were natively issued on, and fully collateralized “wrapped” tokens are minted on destination chains. These wrapped tokens can be transferred across other non-native destination chains via burn and mint or be burned to unlock tokens back on the original issuing source chain. [Truflation’s](https://truflation.com/) TRUF token utilizes lock and mint for its token transfers on CCIP.
* **Lock and unlock**—Tokens are locked on a source blockchain, and an equivalent amount of tokens are released on the destination blockchain. This enables the support of tokens without a burn/mint function or tokens that would introduce challenges if wrapped, such as native blockchain gas tokens. CCIP supports [native ETH transfers](https://blog.chain.link/ccip-native-eth-and-optimized-pricing/) via the lock and unlock token transfer method.

<figure><img src="https://3336775262-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVxFPzCGStHLGRVz3QBdQ%2Fuploads%2Fkve17gQpxgPiRI43CF5U%2FCCIP-Token-Transfer-Methods-1.png?alt=media&#x26;token=e70daf04-3e3a-4de3-9361-a692b35f7eaf" alt=""><figcaption><p>CCIP is purpose-built to support cross-chain token transfers across a wide range of assets and applications.</p></figcaption></figure>

#### Programmable Token Transfers

Programmable Token Transfers combine Token Transfers with Arbitrary Messaging. This enables developers to transfer both tokens (value) and instructions (data) about what to do with those tokens cross-chain within a single transaction. Importantly, Programmable Token Transfers are built natively into CCIP to give users the best possible security, reliability, UX (e.g., composability), and risk management.

<figure><img src="https://3336775262-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVxFPzCGStHLGRVz3QBdQ%2Fuploads%2Fkg9lIq7erOLFZzNSAzGK%2FTokens-and-Messages-Diagram-2048x1152.png?alt=media&#x26;token=91450c15-c89e-4a4a-84ad-ca50d9c82b11" alt=""><figcaption><p>Programmable Token Transfers enable tokens and messages to be sent cross-chain as part of a single transaction, improving the developer and user experience.</p></figcaption></figure>

