# Contract Configuration

To enable cross-chain communication in your blockchain application, you need two key functions: `sendMessage()` and `messageProcess()`. These functions handle sending and receiving messages between different blockchains.

### Simple Code Example

Here's a straightforward example to demonstrate the simplicity of using these functions:

```solidity
pragma solidity 0.8.17;

import "@vialabs-io/contracts/message/MessageClient.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";

contract HelloERC20 is ERC20Burnable, MessageClient {
    constructor() ERC20("HelloERC20", "HELLO") {
        _mint(msg.sender, 1_000_000 ether);
    }

    function bridge(uint _destChainId, address _recipient, uint _amount) external onlyActiveChain(_destChainId) {
        // burn tokens
        _burn(msg.sender, _amount);

        // send cross chain message
        _sendMessage(_destChainId, abi.encode(_recipient, _amount));
    }

    function messageProcess(uint, uint _sourceChainId, address _sender, address, uint, bytes calldata _data) external override  onlySelf(_sender, _sourceChainId)  {
        // decode message
        (address _recipient, uint _amount) = abi.decode(_data, (address, uint));

        // mint tokens
        _mint(_recipient, _amount);
    }
}
```

***

The `sendMessage()`function packages and sends data to another blockchain.

*Parameters*:

* `destinationChainId`: The ID of the chain to send the message to.
* `data`: The message data to be sent.

***

The `messageProcess()` function receives and processes data from another blockchain.

*Parameters*:

* `_txId`: Transaction ID of the message.
* `_sourceChainId`: ID of the source chain from where the message is coming.
* `_sender`: Address of the sender.
* `_reference`: Reference address.
* `_amount`: Amount of tokens involved in the message.
* `_data`: Additional message data.

***

This simple example shows how easy it is to set up cross-chain communication using the VIA Network.

Developers can use the [Developer Documentation](http://developer.vialabs.io/) to dive further into these functions.&#x20;
