# Tusima zkBridge Resources - ETH London Hackathon (27-29 Oct ’23)

[TOC]
Tusima zkBridge is offering total of $5,000 in prizes. On this page, you can find a brief introduction for how to send **inter-chain messages** with **Tusima zkBridge**. This will help you to build any cross-chain DAPPs.
## What is Tusima zkBridge?
Tusima zkBridge is a one-stop cross-chain solution which is powered by zkSnarks technology. We endeavor to establish a trustless and permissionless cross-chain infrastructure that facilitates seamless and secure cross-chain communication.
Tusima zkBridge consists of three main components, which are:
- On-chain light client
- Messaging
- Token bridge
:::warning
Notice:
We are currently still in the testnet stage. We cannot guarantee that the product will be free from any defects. But it won't cause any damage to your property anyway.
:::
## Which chain do we support now?
- **Goerli --> BSC testnet**, this means that you can send messages from Goerli to BSC testnet, but cannot back.
- **Goerli <--> zkSync era testnet**, this means that you can send messages from either of the two chains to the another.
## Sending and receiving messages
To send and receive messages, you only need to use the **Messaging** component of Tusima zkBridge. Messaging component is composed of smart contracts and written in Solidity, so you should use it in Solidity. The following is a nutshell to the usage of Messaging component.
We have a Interface repo on github: [TusimaNetwork/zkBridge-messaging-interfaces](https://github.com/TusimaNetwork/zkBridge-messaging-interfaces). First of all, please make sure to include it in your code.
### Receiving
```solidity=
import { Receiver } from "zkBridge-messaging-interfaces/src/interfaces/Receiver.sol";
contract MsgReceiver is Receiver {
string public message;
constructor(address _tusimaMessaging) Receiver(_tusimaMessaging) {}
function handleMsgImpl(
uint32 _sourceChainId,
address _sourceAddress,
bytes memory _message
)internal override
{
message = string(_message);
// you can do anything here
}
}
```
### Sending
```solidity=
import { ISender } from "zkBridge-messaging-interfaces/src/interfaces/IMessaging.sol";
contract MsgSender {
ISender public tusimaMessaging;
constructor(address _tusimaMessaging) {
tusimaMessaging = ISender(_tusimaMessaging);
}
function sendMsg(
uint32 _targetChainId,
address _targetAddr,
bytes memory _message
) external
{
string memory data = "Hello world";
tusimaMessaging.send(_targetChainId, _targetAddr, bytes(data));
}
}
```
For more details please refer to the [documents](https://tusima.gitbook.io/zkbridge/build-with-messaging/overview). If you have any questions, feel free to reach out to our team on [Discord](https://discord.com/invite/tusimanetwork).
## Helpful information
| Chain | Chain ID | RPC | Messaging Address |
| ------------------ | -------- | ----------------------------------------------- | ------------------------------------------ |
| Goerli | 5 | https://goerli.infura.io/v3/<your api key> | 0x7D433CE673387604ad811c9DaECAfb041d74ee23 |
| BSC testnet | 97 | https://data-seed-prebsc-1-s2.bnbchain.org:8545 | 0xB8A1B5a29842498c581CD0D954b669D4b1A33A0A |
| zkSync era testnet | 280 | https://testnet.era.zksync.dev | 0x13045DDfd3fB1A080cA97A9689657A058A21c60C |
## 💰Bounty Prizes Details
Build one of the following:
1. Omnichain DApp
Based on our zkBridge cross-chain protocol, develop a succinct full-chain DApp;
3. Cross-chain Voting
Tokens and assets held on one chain can be verified and voted on another chain utilising the zkBridge;
5. Cross-chain Airdrop
Allow owners of ERC721 on Ethereum to claim other tokens on another chain (such as BSC);
7. Cross-chain ENS Analysis
Analyse an Ethereum ENS name on another chain. Have mainnet ENS addresses to be used on other chains via the zkBridge;
9. Cross-chain Lending
Deposit assets on one chain as collateral, allowing user to lend assets on another chain.
**Best Project - $5k**
## Links
- [Website](https://bridgetest.tusima.network/)
- Github
- On-chain light client repository: [TusimaNetwork/zkBridge-lightClient](https://github.com/TusimaNetwork/zkBridge-lightClient)
- Messaging repository: [TusimaNetwork/zkBridge-messaging](https://github.com/TusimaNetwork/zkBridge-messaging)
- [Token bridge](https://bridgetest.tusima.network/transfer)
- [Documents](https://tusima.gitbook.io/zkbridge/)
- Social media
- [Discord](https://discord.com/invite/tusimanetwork)
- [Twitter](https://twitter.com/TusimaNetwork)
- [Telegram](https://t.me/tusimaofficial)
- [Medium](https://medium.com/@TusimaNetwork)
- [Youtube](https://www.youtube.com/c/TusimaNetwork)
- Email: <contact@tusima.network>