# 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>" %}

##


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cropxyz.com/tech/blockchain-layer.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
