# Smart Contract Framework

![](https://4034772161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIPm3PyYsOu2IoIeUV1mk%2Fuploads%2FiLhbi7rfxZuiPUiKP8lz%2Fimage.png?alt=media\&token=eaa07514-435f-4582-902b-825e69655a07)

The protocol is based on SAP (Synthetic Asset Pool) pools. Pools are launched by pool managers and poured by users. To protect the interest of every participant, the protocol involves four parties: user, manager, exchange and oracle.

### Managers

Managers are the starter of every pool. They are authorized by the pool’s share token (SAP) holders to manage the tokens in the pool, according to certain preset strategies.

### Users

Users could take part in the protocol by choosing their favorite pool (pools) and minting SAP tokens. And if the investment decision is changed, SAP tokens could be redeemed by the protocol at any time.

### Oracle

Oracle is responsible for feeding price to the smart contract, providing total market value of the token pool and the value of each currency. Users mint and burn SAP based on the price fed.&#x20;

### Exchange

Exchange is where all the transactions are executed. Decentralized exchanges are employed in this protocol because they could at least assure that all the tokens will be traded instead of being withdrawn (stolen).
