# Blockchain Layer

## Game Engine

#### Main System Controller

This is the blockchain “brain” for a game. For example, in CropXYZ, all the requests that users make, in one way or another, goes through this set of smart contracts.

#### Contract Address:&#x20;

`0xaa8f7ada9e9cdcdbcc7e816047915c9ee8462d57`

#### Polygon Link (Migrating):

{% embed url="<https://polygonscan.com/address/0xaa8f7ada9e9cdcdbcc7e816047915c9ee8462d57>" %}

## Economic Engine

#### Complete automated market maker

This is a UniSwap-inspired constant product, automated market maker that hosts 24 different liquidity pools for CropXYZ. This is extensible enough to support any ERC20 token in relation to the internal currency (“zGOLD”).

#### Contract Address:

`0xb36233e579d397bb3fc51a808f72d9ff2f187af7`

#### Polygon Link (Migrating):

{% embed url="<https://polygonscan.com/address/0xb36233e579d397bb3fc51a808f72d9ff2f187af7#tokentxns>" %}

## Address Store

#### Locate other contracts on-chain

This can be thought of as an on-chain log of the other blockchain parts a game. Inspired by ENS, it maps human-readable words to blockchain addresses. This makes it easier for developers to reference other contracts without knowing the actual addresses.

#### Contract Address:

`0x12f885808f616b8056a37be00fdd029e1c59ab08`

#### Polygon Link (Migrating):

{% embed url="<https://polygonscan.com/address/0x12f885808f616b8056a37be00fdd029e1c59ab08>" %}

## Role Registry

#### Access control for users and contracts

When dealing with so many different contracts, there needs to be a way to manage which have access to certain functions. Within the smart contracts, there are checks with the role registry to verify that those permissions are allowed for said contract or user invocation.

#### Contract Address:

`0x22df7c0df774c04C70d3d27b1000BcF877aFfF12`

#### Polygon Link (Migrating):

{% embed url="<https://polygonscan.com/address/0x22df7c0df774c04C70d3d27b1000BcF877aFfF12>" %}

##
