# Smart Contracts on Base

<figure><img src="/files/YYq78pKNyJPymtSUYYwK" alt=""><figcaption></figcaption></figure>

Four smart contracts are deployed and verified on Base mainnet (Chain ID: 8453):

**DatasetNFT (ERC-721, UUPS Proxy)**&#x20;

Represents ownership of tokenized datasets. One NFT is minted per dataset. The NFT holder is the revenue beneficiary for all future purchases of that dataset.

**DatasetRegistry**&#x20;

Maps human-readable dataset slugs to on-chain token IDs. Enables discovery and lookup of datasets by name rather than raw contract addresses.

**PaymentRouter**&#x20;

Handles all dataset purchase transactions. When a buyer pays for a dataset, the PaymentRouter:

1. Verifies the payment amount
2. Transfers 85% to the dataset creator (NFT holder)
3. Transfers 10% to the protocol treasury
4. Transfers 5% to the referrer (if applicable)
5. Grants the buyer download access
6. Emits a PurchaseCompleted event

**ClusterToken (ERC-20)**&#x20;

The native protocol token on Base. Used for inference payments, dataset purchases, compute provisioning, staking, and governance.

`All contracts use OpenZeppelin libraries and the UUPS (Universal Upgradeable Proxy Standard) pattern for safe upgradeability.`


---

# 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://cluster-protocol.gitbook.io/whitepaper/technical-architecture/smart-contracts-on-base.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.
