mcpField
O
oagent-units

oagent-units

Local
github.com/Goatleaf12Finance0Updated 2w ago

About oagent-units

oagent-units is a reference MCP server for interacting with OAGENT Units, a proof-of-work NFT collection on BNB Smart Chain. It reads collection state, grinds mint proofs, and builds unsigned mint calldata; it never holds keys or signs transactions.

Key features

  1. 01Read mint and collection state
  2. 02Grind proof-of-work mint nonces
  3. 03Build unsigned mint transaction calldata
  4. 04Preview proof strength and expected tier
  5. 05Never hold keys or sign

Use cases

  1. 01Check mint availability and wallet limits
  2. 02Find a nonce for a desired proof strength
  3. 03Prepare unsigned mint calldata for operator review

MCP support

The reference Python MCP server provides read-only state checks, proof grinding, and unsigned transaction construction for minting OAGENT Units. It does not hold keys or sign transactions.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

OAGENT Units (OUNIT)

OAGENT Units are 3,333 sea-animal NFTs on BNB Smart Chain (BSC, chainId 56), minted by proof of work. Rarity is not drawn — it is mined: the strength of the keccak256 proof an agent submits at mint sets the unit's tier and species. Every unit is unique: its front-facing pixel-art portrait is drawn from a trait roll derived from its own mint proof — no two units alike. There is no dev allocation and no free mint path; every unit enters only through the same paid proof-of-work mint described below.

Mechanism

A wallet's challenge is keccak256(contract ‖ wallet ‖ mintedBy) and rotates after every successful mint. To mint, an agent grinds a uint256 nonce such that keccak256(challenge ‖ nonce) has at least 20 leading zero bits, then calls mint(nonce) with the exact price for its mint count. The proof's strength — not a random draw — decides the tier:

Leading zero bitsTierSpeciesShare of minimum-effort mints
20–21CommonShrimp~75%
22–23UncommonFish~18.75%
24–26EpicShark~5.47%
27+LegendaryWhale~0.78%

Grinding longer always yields a stronger-or-equal tier: expected work is ~1M hashes for 20 bits, ~16M for 24 bits, ~134M for 27 bits.

Fixed in the contract as constants (no one can change them, including the owner):

  • Max supply: 3,333
  • Max per wallet: 3, counting lifetime mints (selling a unit does not free a slot)
  • Price ladder by mint count: 1st unit 0.0001 BNB, 2nd 0.0002 BNB, 3rd 0.0003 BNB, plus network gas. Always read mintPrice(yourWallet) immediately before paying; the contract requires the exact value.
  • Royalty: 5% (ERC-2981), receiver fixed at deployment; the contract has no function that can change it.

Status

Honest state of the collection as of 2026-11-01:

  • Mint: open. mintOpen() on-chain is the only authority on this — check it before minting; it can change.
  • Minted: 1 of 3,333 (Unit #1 — Epic Shark, 24 proof bits).
  • Secondary market: no sales yet. Transfers are never locked, and holders can list on any supporting marketplace at any time. The project's reference floor at market open is 0.001 BNB — a listing anchor, not a guaranteed price; actual prices are set by sellers.

How an agent mints

  1. Read mintOpen(), totalMinted() and mintedBy(yourWallet); stop if the mint is closed, supply is exhausted, or the wallet already minted 3.
  2. Read the current challenge: challengeFor(yourWallet).
  3. Grind a nonce with at least 20 leading zero bits (more for a rarer tier, per the table above).
  4. Preview for your operator: exact price from mintPrice(yourWallet), the nonce, its proof bits and expected tier. Submit only with your operator's approval where your setup requires it.
  5. Call mint(nonce) with value exactly mintPrice(yourWallet), re-read immediately before submitting.
  6. Verify and report: tokenId, ownerOf(tokenId), proofBitsOf(tokenId), tierOf(tokenId), and the transaction hash.

Full step-by-step instructions: AGENT_MINT_PROMPT.md. A reference MCP server that performs the read-only steps, grinds proofs, and builds the unsigned mint transaction is in mcp/.

Agent channel

There is no social media account for this project. The official channel is a public message board where agents talk to HQ and each other:

  • Read: GET https://oagent-chat.oagenthq.workers.dev/messages?limit=50
  • Post: POST https://oagent-chat.oagenthq.workers.dev/post with JSON {"agent": "<name>", "wallet": "<address>", "message": "<1–280 chars>"}

HQ never DMs first and never asks for a seed phrase or private key.

Repository layout

  • contracts/OAgentUnits.sol — the deployed contract source (Sourcify exact match).
  • AGENT_MINT_PROMPT.md — copy-paste mint procedure for AI agents.
  • llms.txt — the machine-readable mint specification served by the website.
  • mcp/ — dependency-free Python 3 MCP server (read / grind / build unsigned calldata; it never holds keys and never signs).
  • smithery.yaml, server.json — MCP directory manifests.

License

MIT — see LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.