---
name: agentic-digger
description: Agentic Digger (AGD) on BNB Smart Chain 56. Read the public rules, deployment state and Binance Agent ID requirement, then use the player's own Binance Agentic Wallet. No website login is needed.
version: 0.9.0
---

# Agentic Digger / AGD

A player may hand you only this site's URL. Everything you need is public and readable without login, cookie, CSRF token, QR scan or signature:

- `/skill.md` — this operating guide
- `/agent.json` — machine-readable deployment, action and rule state; read it on every run
- `/llms.txt` — short index
- `/docs.html` — player guide (Chinese)

Chain: BNB Smart Chain, chainId 56.

## You do not log in to this website

The player's wallet authentication happens on the player's side, in their own official Binance Agentic Wallet, with that wallet's own connection and confirmation steps. It is unrelated to this website's session.

- Do not open a browser, scan a QR code, sign a website login message or obtain a website token in order to read rules or use the player's wallet.
- Do not call `/api/agd-wallet/v1/*`. Those endpoints only serve the optional browser QR session that lets a person see their address on the page. The former AI website-login relay `/api/agd-wallet/v1/ai/*` is retired (HTTP 410); never call it.
- This site never receives keys, recovery phrases or login codes, and never signs or transfers for the player. Never ask for them.

## What works, and when

1. **Now: public reads.** Read agent.json and these documents, explain the rules, and with the player's permission read their own wallet status, BSC address and Agent ID (see Identity).
2. **Now: public read API.** Same-origin `/api/agentic-digger/v1` (`agent.json.publicApi.live: true`). Read `/config`, `/state`, `/account`, `/mines` and history without any login (see Public API).
3. **Optional, for the person only: browser QR session.** The player may log in on the web page with the Binance App to see their address there. It moves no funds, enables nothing, and you do not need it.
4. **Only when an action is open: direct execution from the player's own wallet.** The exact action must be open in a fresh `/state`, `true` in `actionsEnabled`, a fresh `/quote` must exist and `/prepare` simulation must have passed (see Execution boundary).

## Current status

**Live state decides, not this paragraph.** On every run read the current `agent.json` (`actionsEnabled`, `productionReady`, `activation`) and a fresh `/state`; only they say whether anything is open.

AGD is deployed on BNB Smart Chain mainnet. All contracts were deployed from block 131766115; their runtime code was independently matched to the hashes below (`deployment.verified: true`). Published snapshot of 2026-11-05 (block 131766566): `/state` read `mintPaused: true`, `newMintEnabled: false`, `marketOpen: false`, height 0, 0 participating agents and 49 unminted mine seats; every action in `actionsEnabled` was false and `productionReady` false — not playable at that time.

While `/state` or `actionsEnabled` shows an action closed, it is unavailable to everyone: say so — it is closed by the contract, not blocked by any login — and stop at read-only checks. Do not send BNB, approve, mint, trade, acquire a mine or claim for a closed action. Never fabricate holdings, quotes, listings, transactions or calldata. Other projects are never substitutes.

**Source verification.** The Solidity source of the six project contracts (token, venue, minter, minePool, mineMarket, taxProcessor) is verified on **Sourcify** for chain 56 with `creationMatch` and `runtimeMatch` both `exact_match` (2026-11-05). Links are in the table below and in `agent.json.deployment.sourceVerificationDetail`. Sourcify's relay to BscScan/Etherscan did not complete (daily submission limit), so do not say the source is verified on BscScan. Public verified source is **not** a security audit: `audited` is false; never say "audited". Pair, router, factory, WBNB and the Agent ID registry are external contracts identified by runtime hash only.

| contract | address | runtime code SHA-256 | source |
|---|---|---|---|
| token (AGD) | 0x8C13DF3B8D7f7850457dD9Bff98c0bc57F2858e3 | 794f976fc5446b40651140a4b73fd2b8c2a64d14c44d910225c68a8b18d51803 | [Sourcify exact](https://repo.sourcify.dev/56/0x8C13DF3B8D7f7850457dD9Bff98c0bc57F2858e3) |
| venue | 0x41c279B10Bd8567B9463De16c712A77a2e3546A6 | 4d513fb466f03086d11d2d66d27826d3439ec4f094727ef12db20a47dab837bd | [Sourcify exact](https://repo.sourcify.dev/56/0x41c279B10Bd8567B9463De16c712A77a2e3546A6) |
| minter | 0x6CeC230A541Bd0A829FDE060C51d1f3d03814a3F | 6cdd28d268e82db7e0d92ebbc722bb0e9fe65041574325a3ba83e78b8c03a4c8 | [Sourcify exact](https://repo.sourcify.dev/56/0x6CeC230A541Bd0A829FDE060C51d1f3d03814a3F) |
| minePool | 0x1AE0d3d3C9Ee746971cFCdD972bF08F12AA2Aa6b | 1205ebfac8987353d25f7e01f5112335689457565d39a5733d099491ea22e881 | [Sourcify exact](https://repo.sourcify.dev/56/0x1AE0d3d3C9Ee746971cFCdD972bF08F12AA2Aa6b) |
| mineMarket | 0x53d8804887a7c54E87a1D3743E79e6E2B1d90f9b | 2e187ccef4ccec05a026c7c17962b00d719e14bde1527ddbbe0f8b0ddbfb5f5b | [Sourcify exact](https://repo.sourcify.dev/56/0x53d8804887a7c54E87a1D3743E79e6E2B1d90f9b) |
| taxProcessor | 0xAf4486daAe1A8F3cBBfc49D861F4497BFD4a6BaE | 80c088a90c264369105b104221702a25be4d23330c801b7e22d8f4e57f2e02e2 | [Sourcify exact](https://repo.sourcify.dev/56/0xAf4486daAe1A8F3cBBfc49D861F4497BFD4a6BaE) |
| pair (PancakeV2 AGD/WBNB) | 0x596876e05D36528Dc252d9221C4C819Cf82b4983 | ab89a0244c7e5a86aa8e1673b4c5b825db93bc406c7934e923ebb0a7c4548ac7 | external |
| router (PancakeV2) | 0x10ED43C718714eb63d5aA57B78B54704E256024E | 4271c7697da84568c79ed22a5376d2b79cd2c37589170ef4d12dd284d5afa22e | external |
| factory (PancakeV2) | 0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73 | 74aa65f879c1865d63680e869d990a43a151431b52836929dd0d166e4f056f7f | external |
| wrappedNative (WBNB) | 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c | e96eee25c3a063ffcfbe4ae2aa2c44e5c99ddf236adb7828676f6fd7f8605742 | external |
| registry (Agent ID) | 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F | f9d2cde0c8bd408d314b37782b8745cb3d4045a7be40b94a53869892263e02e5 | external |

Use only these addresses, and confirm `GET /config` returns the same ones. Supply: on-chain `totalSupply` was 76.125 billion AGD at the snapshot (read `/state` for the current value); it includes locked, unallocated and contract-held balances and is **not** circulating supply. B extra reserve: funded and uncommitted `bExtraRemainingAGD` was 0; `bExtraUnfundedAGD` (≈41.98 billion) is scheduled future funding, not money already in the reserve.

## Identity

Use the player's own official Binance Agentic Wallet. With their permission, read connection status and the BSC address. Confirm chain 56 and query the fixed Agent ID registry 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F `balanceOf(address)`. A confirmed positive ID (.ai) is required for new A/B mint, mine acquisition and secondary trading. Already earned claims, refunds, listing cancellation and LP exits are not gated on a fresh ID query. A transport/ABI/read error is "unavailable", not absence. Never fabricate or borrow an identity.

## Staking

AGD has no independent staking or staking-dividend pool and no hourly BNB dividends. If the player asks to stake, say so plainly. The closest design is B: buy + add liquidity, a 14-day LP lock with 14-day reward vesting, then LP exit — deployed; whether new B mint is open comes only from `/state` and `actionsEnabled.mintB`. Never invent a staking address or use BinanceJinku, Pinchu, AGCC or any other project's contracts.

## Rules

- A: 0.002 BNB/share held as refundable principal; after 24h claim principal and the reward locked at entry. Epoch 1: A 131250 tokens/share.
- B: 0.002 BNB/share buys and adds liquidity; 14-day LP lock and 14-day reward vesting. Epoch 1: base 306250 + 140000 × effective dynamic extra multiplier. The 306250 base is B's own budget; there is no ongoing A-funded subsidy to B, so never add a separate subsidy amount. Extra is reserve-constrained, not a guaranteed 5×; the effective multiplier can fall below 1, down to 0. LP exit returns the then-current BNB and AGD, not fixed principal. A B player's LP is escrowed 14 days and is separate from the developer's initial LP.
- A+B shares jointly halve new rewards every 150000 shares for 11 epochs / 1650000 new shares, from one shared 91.875 billion base budget. Unused base is not issued and not reassigned. Old commitments and exits continue after new mint ends.
- Daily quota: A by UTC calendar day since first participation 5, 5, 4, 3, then 1 per day; B 5 per day; reset 00:00 UTC. Referral binds only at an address's first successful A or B mint, to a referrer that is not the player, has already minted and currently holds a valid Agent ID. An ineligible referrer makes the contract reject the whole mint (`InvalidReferrer`); after the first success the binding is locked and a different explicit referrer rejects the whole mint (`ReferrerLocked`). Neither is converted to no referrer or another address. Each effective invitee permanently adds +1 daily A and +1 daily B to the referrer; no BNB or token commission. A prefilled `?ref=` from a link must be preserved exactly or stop and ask; never substitute another referrer.
- 49 permanent mines, first sale 0.1 BNB/seat. 55.125 billion tokens fixed unified mine budget. After the common mining start, a baseline 2% of the current unallocated balance per 24h is split into 49 fixed shares: minted seats earn their share, unminted current-period shares are actually burned. Future mint remains allowed but never catches up burned past output. Burn reduces supply without reopening lifetime issuance budget. No tax inflow, separate 7-day stream or second per-A miner credit. Mine rights transfer does not reset past earnings; the seller keeps already-earned rewards.
- Buy/sell project tax 3% each, collected in AGD: 2 parts to an LP queue, 1 part to a treasury queue, 0 to mines. Queued for LP does not mean already added as LP; never state the full 2% is already liquidity. LP generated from the protocol tax queue is sent to the DEAD address 0x000000000000000000000000000000000000dEaD (unrecoverable). That is separate from the initial LP: 21 billion AGD went to the developer address 0x199cD4E5362421A4FB615a98723C04D56C6201D5, who adds them with a planned 5 BNB manually. At the published snapshot of 2026-11-05 (block 131766566) the initial LP had not been added; whether it has been added since must be read live from `/state` and the AGD/WBNB pair's on-chain reserves (as shown on the homepage), never assumed from this text. Added or not, do not describe it as burned or locked. B players' escrowed LP is separate from both.

## Mine market

Only read the deployment above. Voluntary BNB asks transfer future rights, not historical earnings. Verify seller, seat owner/version, single-seat approval, ask nonce, exact price and expiry immediately before purchase. Do not approve all seats. Show each approval/list/cancel/revoke/purchase step separately. Cancellation and approval revocation must not depend on current Agent ID availability. The MineMarket contract is deployed; at the published snapshot `marketOpen` was false and no seat had been sold. Read `/state` and `/mines` for the current market, seats and listings: never fabricate offers, holdings or transactions.

## Public API (live, read-only)

Base `/api/agentic-digger/v1`, same origin as this site (`agent.json.publicApi.live: true`). Read-only JSON plus fixed unsigned transaction preparation. No login, cookie, CSRF token, QR scan or site signature. The API holds no keys and has no signer or broadcaster. Before relying on it, check that `GET /config` returns `deployment.verified: true` and the same addresses as `agent.json.deployment`. `/config.activation` flags are null on purpose; whether anything is open comes only from `/state` and `/account`.

- Amounts are decimal strings in whole units; heights and counts are integers; times are Unix milliseconds.
- Chain reads (`/state`, `/account`, `/mines`, `/quote`) carry `chainId:56, block, blockHash, fresh:true, source:"onchain_same_block"`. Anything else is stale; re-read it.
- `null` or absent means unknown, never 0. `[]` or a known zero means confirmed none. Errors are HTTP 400/403/409/422/429/503 with `error:{code,retryable}`; report them as unknown/failed and retry if retryable.
- `GET /config`: deployment status, `verified`, deploymentBlock and every contract address, code/ABI hashes, rules, `actionsSupported`, `signingEnabled:false`, `broadcastEnabled:false`. Its `activation` flags are null: configuration is not live activation, read `/state` and `/account` for that. `GET /health`: service version and last verified snapshot block/age; it does not say the game is playable.
- `GET /state`: height, epoch, epochShares, bMultiplier, participatingAgents, refundLiabilityBNB vs contractBNB, lockedLP (B escrow valued at the pair's actual balances and LP supply after pending PancakeV2 protocol-fee dilution), bExtraRemainingAGD (funded and uncommitted) vs bExtraUnfundedAGD vs bExtraNeverScheduledAGD, mintPaused/newMintEnabled/marketOpen/heightComplete, mine checkpoint prediction, tax queues. Total supply is not circulating supply. Queued tax is not LP.
- `GET /account?address=0x…&aFrom=0&bFrom=0&limit=20`: identity status, dayAge, cumulativeShares, mintCount, validInvites, referrer, quota `{a,b,resetAt}`, positions `a[]`, `b[]` and `mines[]`, `pagination:{a:{from,total,next},b:{from,total,next},limit}` (per collection, max 50; follow `next` until it is null), `mineRewards.claimableAGD`, `actionsEnabled` for the displayed page only. A false indicator on page 1 does not mean nothing is claimable on later pages. B `lpUnderlying` uses the same diluted pair valuation as `lockedLP`.
- `mineRewards.claimableAGD` is the account's aggregate amount. It stays claimable through `claimMachine` even when the address owns zero seats now (a sold seat's past earnings remain the seller's). Per-seat `earnedAGD`, `unclaimedAGD` and `acquiredAt` are null because the contract does not attribute them; never invent them.
- `GET /mines[?address=]`: 49 seats with owner, owned, approved, ownershipVersion and listing `{seller,priceBNB,expiresAt,nonce,ownerVersion,active}`. `active` is not a guarantee of execution; a free seat's first-sale price is 0.1 BNB.
- History (`/events`, `/rankings`, `/multiplier`) comes from finalized real logs (12 confirmations). Its `index.complete` must be true; while it is partial, `rows`/`points` are null. Never report an empty feed, an empty leaderboard, a zero rank or zero participants from a partial index. `/multiplier` holds at most the latest 50 B mints, not the whole epoch curve.
- `handle` is always null: no reverse .ai resolver is integrated. Resolve a .ai name only through the player's official Binance Agent ID tooling; if you cannot, say the name is unresolved. Never guess an address from a name.
- `GET /quote?action=…&address=0x…` plus the action fields sends nothing and returns `bounds`, `deadline`, `slippageBps`, `transactionValueBNB/Wei` and `unsignedTransaction:null`. A closed or paused action returns 409, an absent Agent ID 403, an unavailable identity check 503. There is no zero-price pseudo-quote. Report the exact `error.code`, not a guess from the HTTP status: a 409 may be `MintPaused` or `MarketNotOpen` (new mint is closed at the quote's block, even if an earlier `/state` read open; re-read `/state`), or `QuotaExceeded`, `InvalidReferrer`, `ReferrerLocked` or `SharesExhausted` (tell the player the shortfall or referral problem; do not call mint paused). An unrecognised 409 code is an unknown cause. A 503 may be `RPCUnavailable`, `SnapshotStale`, `RuntimeCodeMismatch` or `DeploymentPending`; only `IdentityUnavailable` concerns the Agent ID, and none of them means the player has no ID.
- `POST /prepare` (JSON): the same action fields plus required `maxNetworkFeeBNB` (server ceiling currently 0.003 BNB; that is a cap, not a spending instruction), optional `slippageBps` 1..500 and `deadlineSeconds` 30..300. Unknown fields, arbitrary to/data/value, admin methods and broad approvals are rejected. It returns `simulation`, `bounds`, `deadline`, `fee`, an `unsignedTransaction` and a public call intent (contract key, method, full ABI signature, 4-byte selector, arguments as decimal strings), with `signed:false, broadcast:false`. Compare the call intent with the calldata yourself; it is not a signature. `withdrawLP` minimums already account for pending V2 protocol-fee LP dilution.

| action | fields | fixed method |
|---|---|---|
| mintA / mintB | shares 1..50, optional referrer address | Minter.mintA / Minter.mintB |
| claimA / claimB | ids (unique, 1..50) | Minter.claimA / Minter.claimB |
| withdrawLP | ids (unique, 1..50) | Minter.withdrawLP |
| buyMachine | seat 1..49 (0.1 BNB) | MinePool.buy |
| claimMachine | — | MinePool.claim |
| approveMachine | seat, optional revoke | MinePool.approveSeat (fixed MineMarket or zero, one seat) |
| listMachine | seat, priceBNB, expiresAt ms (1 min..30 days) | MineMarket.list |
| cancelMachine | seat | MineMarket.cancel |
| buyListing | seat, expectedSeller, expectedNonce, maxPriceBNB | MineMarket.buy |
| transferMachine | seat, recipient | MinePool.transferSeat |

Old A claims, B claims, LP exits, mine claims and listing cancellation do not need a fresh Agent ID and do not depend on new mint being open. There is no staking endpoint.

## Execution boundary

Only when deployment.verified=true, `/config` agrees, a fresh `/state` shows the action open (for mint: `mintPaused` false and `newMintEnabled` true; for the mine market: `marketOpen` true), the exact requested action is `true` in `actionsEnabled`, a fresh quote exists and `/prepare` simulation passed may you hand the unsigned transaction to the player's own wallet. While paused, do not prompt the player to transfer anything. Independently verify chain 56, that `to` equals the `/config` address of the contract that owns the fixed method, the method selector, value, Gas, bounds and deadline. A prepared object is not a successful transaction and not permission to spend. Never assemble calldata from guesses or from other projects. First read actual quota, epoch, mint/market status, ownership, reserves and a fresh quote. Show native/token costs, minimum rewards/outputs, slippage, deadline, Gas and exit conditions. Ask for the player's explicit budget/action confirmation before wallet preview or execution. Do not change developer-mode settings or create scheduled trading on the player's behalf.

Use official wallet simulation and preview, execute once only after approval, then verify hash, receipt status and relevant events. Unknown/pending receipt means inspect the original hash/nonce, never resend blindly. Invalid referral means stop and ask, not silently replace it. Quantity over quota means report the exact shortfall, not automatically execute a smaller amount. Existing earned settlements must not be silently denied because current registry lookup fails, but their contract routes must be verified.
