# Sygma hackers definitive guide
## Bounties
Greetings Hackers! Let us remind you of our bounties first!
**Bounty Description:**
Sygma is a cross-chain bridge specializing in GMP *(here and next Generic message passing)* and more common ERC20 and ERC721 transfers. With Sygma SDK, developers can activate cross-chain capabilities within their applications without bothering themselves about developing highly sophisticated bridging systems.
Sygma team wants you to unlock this cross-chain capability in your new or existing application with our SDK and SaaS Bridge
**We are still in a deep beta**
**Sygma testnet supports the following networks:**
- Ethereum Goerli testnet
- Polygon Mumbai testnet
- Moonbeam testnet
**Prizes**
- The best cross-chain application that utilizes GMP and that utilizes Sygma SDK (2000$)
- The best application that utilizes Sygma SDK for bridging ERC721 or ERC20 (2x1000$)
**We absolutely encourage you to mix our bounties with some other protocols bounties**
**For inspiration:**
- collateral ERC721 token on one network to receive the loan on another using GMP
- Moving liquidity pairs (uniswap, sushiswap, etc) from one network to another in order to achieve better APY
- Blockchain game that uses ERC20 or ERC721 token transfers between chains
- Cross-chain Governance with GMP
**Requirements:**
1. Use Sygma SDK to interact with the Sygma bridge
2. It can be an existing or new application that uses the bridge as part of its logic
3. Your application should be publicly available to judges and other hackathon participants
**Judging criteria**
1. We are expecting to see nice UI/UX
2. If the application solves some real problem you will get a point for this
3. The creativity of the use-case
4. Code quality and documentation will be a plus
## Usage guide
This guide is a collection of all necessary information and links that could be usefull if you decided to build cross-chain application with Sygma.
Nice place to start is reading our [Architecture doc](https://docs.buildwithsygma.com/architecture) this should give you some basic understadning of how symga works.
When using our birdge there are 3 interoperability protocols available for use ERC721, ERC20 and Generic Message Passing for any of this protocol you do not need to setup your bridge, Sygma is already handling this for you. The only they you need to do is build your cross chain application using our [SDK](https://github.com/sygmaprotocol/sygma-sdk). SDK can be used for both back-end of front-end JS applications and include all necessary methods to comunicate with [Sygma Bridge](https://github.com/sygmaprotocol/sygma-solidity) contracts to send bridging deposits and [FeeOracle](https://github.com/sygmaprotocol/sygma-fee-oracle)
All other repos link could be found [here](https://docs.buildwithsygma.com/github-repositories)
## Usage information
For the Hackathon we have created dev environment that is available for Hackers to work with Sygma bridge as a service.
[Devent credentials](https://docs.buildwithsygma.com/environments/devnet) provide all the necessary contract addresses and other credentials to start using Devnet.
Also for once who want to test something locally we have a local setup scripts that can run all the infrastructure locally and help you with time sencetive e2e tests for your application. Detailed information on local setup you can find in one of our [example apps](https://github.com/sygmaprotocol/sygma-sdk/tree/main/examples) becouse they initially guiding you lunch them locally.
### ERC20
You can build application that is uses ERC20 tokens bridging as a interoperability part of you bussines logic. For your support. Tokens are already predeployed on the DevNet networks and contract addresses are available in credentials.
#### Fees:
There are [2 fee's strategies available](https://docs.buildwithsygma.com/environments/devnet#fee-schemas) for pre-deployed ERC20 contracts on devnet. One token is using BasicFee strategy and another is useing FeeOracle stategy. BasicFee is jsut taking the fixed amount of base currency (eg ETH) from the depositor, while FeeOracle strategy tooks percent of the tokens that being transfered but also it is makes sure that the price of this Fee is not lower then network fee of the destination chain. More detailes could be found [here](https://docs.buildwithsygma.com/architecture/fees) and also you can check [the code](https://github.com/sygmaprotocol/sygma-solidity/tree/master/contracts/handlers/fee)
Unfortunalty ERC20 birdging is not permissionles so you have two options, use pre-existing tokens, for what you would need to receive them in our [faucet service](https://docs.buildwithsygma.com/environments/devnet) or ask as in [Discord support channel]() to deploy and register any additional tokens .
**NOTE: we can't suttisfy all the deployment reuqusts quickly so it might take some time so please make sure that different token is a crucial part of your logic**
### ERC721
With ERC721 you can transfer NFT from one network to another with mint/butn or lock/release strategy. ERC721 contracts are also pre-deployed and not permissionles so you would need to ask as to add your token if that is really needed or you can use our Faucet service to mint some pre-deployed NFT's.
[Example application](https://github.com/sygmaprotocol/sygma-sdk/tree/main/examples)
### Generic Message passing
Generic message passing is alowing developers to send arbitrary messages across Sygma bridge. And what is more important it is permissionles so you are able to perform any cals from source network to destination. Caller could be a contract or an EOA.
Detailed architecture [here](https://docs.buildwithsygma.com/architecture/generic).
We also have example application that shows basic use case for GMP. [Example contracts](https://github.com/sygmaprotocol/sygma-solidity/tree/master/contracts/example), [example app](https://github.com/sygmaprotocol/sygma-sdk/tree/main/examples)
**For all the application type you can find example apps [here](https://github.com/sygmaprotocol/sygma-sdk/tree/main/examples)**
## Support
Our team is eager to help all the hackers who wants to use Sygma for their applications. We are going to provide support by being presented on Hackathon and also witihn the dedicated Discord channels [Sygma](https://discord.gg/37HHxPB9) and [ETHGlobal](https://discord.com/channels/554623348622098432/1026490940208197692)
## Links
[SDK](https://github.com/sygmaprotocol/sygma-sdk)
[Smart contracts](https://github.com/sygmaprotocol/sygma-solidity)
[Documentation](https://docs.buildwithsygma.com/)
[Notes on sygma security](https://medium.com/@buildwithsygma/a-defense-in-depth-approach-notes-on-sygma-security-af7521c79ddb)
[General info about MPC](https://medium.com/buildwithsygma/multi-party-computation-the-next-generation-of-crypto-security-d83d60d622d0)