# Smart Contract Structures

The Zeebit protocol consists of a number of constituent smart contracts, each servicing a key function. Solana’s cross program invocations (CPI) enable these contracts to speak to one another in a secure way and request that they carry out their respective roles in a modular way.

The module approach enables a number of key benefits:

* Separation of functionality makes the programs easier to maintain and develop
* New games and features can be developed and easily integrated into existing contracts which handle core functionality like providing verifiable randomness, player settlement, updating statistics and distributing revenue share

***

## Smart Contract Types

* [Game Contracts](https://zeebit.gitbook.io/zeebit.io/technical-overview/smart-contract-structures/game-contracts)
* [Randomness Contract](https://zeebit.gitbook.io/zeebit.io/technical-overview/smart-contract-structures/randomness-contract)
* [Settlement, Profiles & Revenue Share Contract](https://zeebit.gitbook.io/zeebit.io/technical-overview/smart-contract-structures/settlement-profiles-and-revenue-share-contract)
