---
# System prepended metadata

title: Shoyu contracts overview

---

*This document is draft ie not finished. It will be updated when Shoyu contracts will be optimised.*
# Shoyu contracts overview
Shoyu is using both ERC-721 and ERC-1155 standards. Building custom solutions to the ERC standard by adding custom featuures which are optimised for the platform and usecase itself. 

These contract contains mocked contracts which are tests for the contracts 

Custom royalties - modified ERC2981

The structure:
- main contract - 721 & 1155 
- Exchange contract  - for  interacting with Exchanges
- Differentiator
- Base contracts 
- Payment splitter
- Social token contract
- Token factory contract
- English Auction
- Dutch Auction

The contracts are open source on github,anyone can fork them. 

-----
Shoyu is curated NFT market platform combining Metaverse, AR and NFT Marketplace. 


Shoyu is built on ERC721 and ERC1155 contracts, it has a lot of custom features built into their contracts. 

Shoyu is curatated metaverse NFT platform.

## Contracts:

ERC20 based contract
Works as bidding contract

Functions:
- approveBidHash - approves bid
- transfer - token transfer
- cancel - cancel transfer if the bid is cancelled or claimed
- updateAprrovedBidHash - update bid
- bid - 
- strategy - allows you to modify the bidding params
- revert - = bid failture
- claim - claim bid
- best bid - allows to claim bid 
- validate - validates transaction
- transfer - fees and funds
- transfer - token 
- royalty fee transfer 
Source: https://github.com/sushiswap/shoyu/blob/master/contracts/base/BaseExchange.sol
--

Domain factory contract
uses domain separator function for addresses
can transfer token

https://github.com/sushiswap/shoyu/blob/master/contracts/ERC721ExchangeV0.sol

--
Is built from functions:
- constructor
- domain separator
- trading function
- token transfer


Contract source: 
https://github.com/sushiswap/shoyu/blob/master/contracts/ERC1155ExchangeV0.sol

--
Is build from:
- Royalty functions
- Basic token functions - transfer
- Interface supporting functions


Contract source: https://github.com/sushiswap/shoyu/blob/master/contracts/NFT721V0.sol

--
Is built from: 
- Royalty functions
- Interface supporting functions 
- Token transfer functions


Contract source: https://github.com/sushiswap/shoyu/blob/master/contracts/NFT1155V0.sol

--
The NFT721 contract has been locked - transfers can't happen until the contract gets unlocked
https://github.com/sushiswap/shoyu/blob/master/contracts/NFT721V1.sol

--

The NFT1155 contract has been locked - transfers can't happen until the contract gets unlocked
https://github.com/sushiswap/shoyu/blob/master/contracts/NFT1155V1.sol
