# Tusima zkBridge Resources - ETH London Hackathon (27-29 Oct ’23) ![image alt](https://ucarecdn.com/f4e08f06-c238-47f8-b98a-97629c199377/bridgelogo.png "title") [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>