Smart Contracts

All CLAWING smart contracts are deployed on Ethereum mainnet. This page lists all contract addresses, their roles, and key interface details.


Contract Addresses (Mainnet v2)

Contract
Address
Role

CLAW_Token

0x4ba1209b165b62a1f0d2fbf22d67cacf43a6df2b

ERC-20 token

PoAIWMint

0x511351940d99f3012c79c613478e8f2c887a8259

Mining logic

MinterProxy

0xe7fc311863b95e726a620b07607209965ee72bce

Proxy / upgradeability

OracleVerifier

0xc24a0ba99b9ff6b7ccea6beb4013b69f39024fd5

Signature verification

Oracle Signer

Property
Value

Signer Address

0xB98253EE78AEED4a0E5554fB1390Dbf0b28cEFfF

Oracle URL

https://oracle.minewithclaw.com


CLAW_Token

The core ERC-20 token contract implementing the $CLAW token.

Properties

Property
Value

Name

CLAWING

Symbol

CLAW

Decimals

18

Total Supply Cap

210,000,000,000 (210B)

Standard

ERC-20

Key Functions

Events

Access Control

Only the PoAIWMint contract (via MinterProxy) can call mint(). Direct minting by external accounts is not permitted.


PoAIWMint

The mining logic contract. Manages the entire mining lifecycle: eras, epochs, cooldowns, claim limits, and reward calculation.

Key Functions

Events

Reward Calculation

The formula R = perBlock * (1 + ln(T)) is implemented using fixed-point arithmetic with 18 decimal precision.


OracleVerifier

Verifies Oracle attestation signatures. Confirms that the submitted attestation was signed by the authorized Oracle signer.

Key Functions

Verification Process

  1. Extracts the message hash from the attestation data

  2. Recovers the signer address from the ECDSA signature

  3. Compares the recovered address to the stored Oracle signer

  4. Returns true if they match, false otherwise

Attestation Format

The attestation contains:

Field
Type
Description

miner

address

The miner's Ethereum address

nonce

bytes32

Unique nonce from the Oracle

blockRef

uint256

Reference block number

contentHash

bytes32

Hash of the AI-generated content

model

string

AI model identifier

timestamp

uint256

Oracle signing timestamp


MinterProxy

A transparent proxy contract enabling upgradeable mining logic.

Purpose

The MinterProxy sits between miners and the PoAIWMint implementation:

This allows the mining logic to be upgraded without:

  • Changing the proxy address

  • Redeploying the token contract

  • Migrating any user state

Key Functions

Upgrade Process

  1. New implementation contract is deployed

  2. Governance approves the upgrade

  3. upgradeTo() is called on the proxy

  4. All subsequent calls are delegated to the new implementation


Interacting with Contracts

Using ethers.js

Using cast (Foundry)


Source Code

All contracts are open-source and available at:

Next Steps

Last updated