---
name: hashdroids
description: Mine 100% onchain Proof-of-Work HashDroids on BNB Smart Chain (Chain ID 56) using a Binance Agentic Wallet (baw) holding a verified .ai Agent ID. Earn passive BNB rent from later miners or burn Droids for BNB + HDROID tokens.
---

# HashDroids — Autonomous Proof-of-Work Protocol for `.ai` Agents on BNB Chain

- **Website:** `https://hashdroids.fun`
- **Chain:** BNB Smart Chain Mainnet (`chainId: 56`)
- **Eligibility:** Requires a verified Binance **`.ai` Agent ID** NFT (`0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F`) in your Binance Agentic Wallet.
- **Verified Mainnet Contracts (BSC Chain ID 56):**
  - **`HashDroidsNFT` (`HDROID` Collection):** `0x49718F13F9318dFAC9638Cd0a79a25BBBe4649A9`
  - **`HashDroidToken` (`HDROID` ERC-20):** `0xD17772A2BAA5a38288cBc64DdE9977C0Cf5D31B6`
  - **`DroidBuybackRouter` (PancakeSwap V2 Vault):** `0xCEf3757DA706772102EcDf67D26c74dd9273CCbf`
  - **`HashDroidRenderer` (100% Onchain SVG):** `0x4Bb3557D19a3379372Fa809e6A3cFCeB697619d7`

## Economics
- **Mint Price:** Starts at `0.0025 BNB` (`2500000000000000` wei) in Epoch 1 (`+0.0002 BNB` every 256 mints, max supply `8,192`).
- **70% of every mint** distributes in `O(1)` BNB rent across all living HashDroids mined before it.
- **15% of every mint** funds the immutable `DroidBuybackRouter` on PancakeSwap V2 (`HDROID / WBNB`), bootstrapping `1,000,000 HDROID` at `0.015 BNB` and running automated buyback-and-burns every 15 minutes.
- **Hold or Burn:** Call `burn(uint256 tokenId)` on any living HashDroid after pool launch to claim 100% of its accrued BNB rent + newly minted `HDROID` tokens (`1,000 HDROID` in Epoch 1).

## One-Shot Autonomous Mining Script (Node.js + `baw`)

Run this command to grind a valid `keccak256` Proof-of-Work and preview the mint with your Binance Agentic Wallet (`baw`):

```bash
node -e '
const { execSync } = require("child_process");
const crypto = require("crypto");

async function run() {
  const rpc = "https://bsc-dataseed.bnbchain.org";
  const collection = "0x49718F13F9318dFAC9638Cd0a79a25BBBe4649A9";
  const addrOut = JSON.parse(execSync("baw address list --json").toString());
  const wallet = (addrOut.data?.addresses || addrOut).find(a => String(a.binanceChainId) === "56" || a.chainType === "EVM").address;

  const call = async (method, params) => {
    const r = await fetch(rpc, { method: "POST", headers: {"Content-Type": "application/json"}, body: JSON.stringify({jsonrpc:"2.0", id:1, method, params}) }).then(r => r.json());
    return r.result;
  };

  const blockNumHex = await call("eth_blockNumber", []);
  const anchorNum = BigInt(blockNumHex) - 1n;
  const anchorBlock = await call("eth_getBlockByNumber", ["0x" + anchorNum.toString(16), false]);
  const prevWork = await call("eth_call", [{ to: collection, data: "0x8bc7e8c4" }, blockNumHex]);
  const targetHex = await call("eth_call", [{ to: collection, data: "0x0662f0b0" }, blockNumHex]);
  const priceHex = await call("eth_call", [{ to: collection, data: "0x6817c76c" }, blockNumHex]);

  console.log("Grinding PoW for wallet:", wallet, "| Target:", targetHex);
  // Use https://hashdroids.fun in browser or viem keccak256 to find nonce < BigInt(targetHex), then call:
  // mine(uint256 nonce, uint256 anchorBlock, bytes32 expectedPrevWork) -> selector 0xd0245773
}
run();
'
```
