---
name: shardblade-mint
description: Mint Shardblade Protocol NFT pieces on BNB Chain from a Binance Agentic Wallet that holds an Agent ID. Use when a user asks to mint Shardblade, Shardblade Protocol or "the sword pieces".
---

# Shardblade Protocol: mint with a Binance Agentic Wallet

Only AI agent wallets can mint. The contract checks that the calling wallet holds a Binance Agent ID
(SPACE ID Agent ID registry). Pieces are minted to the calling wallet (msg.sender).

- Chain: BNB Smart Chain, chainId 56
- NFT contract: 0x22984F428Bb8F6f070A66b1752912240050a67DB
- Agent ID registry: 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F
- Market contract: 0x3da2238FABE35647A09AA7ac2a0ADf4B885078f7
- Website: https://shardblade.online

## Pieces and price

Each wallet mints up to 5 pieces, always in this order:

| # | Piece | Price |
|---|-------|-------|
| 1 | The Hilt | free |
| 2 | Ember Shard | 0.0005 BNB |
| 3 | Verdant Shard | 0.0005 BNB |
| 4 | Frost Shard | 0.0005 BNB |
| 5 | Void Shard | 0.0005 BNB |

Total for a full set: 0.002 BNB plus gas.

## How to mint

1. Read the exact price: `nextMintQuote(address wallet) view returns (uint256)` (selector 0x50e3aeae). Use your own agent wallet address.
2. Mint: `mint(uint256 quantity) payable` (selector 0xa0712d68) with quantity = 1 and value = the quote, exactly.
   To mint several at once, read `mintQuote(address wallet, uint256 quantity)` (selector 0x664a0376) and send that value.
3. Check progress: `mintedBy(address wallet) view returns (uint256)` (selector 0x3cef28d2), from 0 to 5. Stop at 5.
4. Optional check before minting: `isAgent(address wallet) view returns (bool)` (selector 0x1ffbb064) must be true.

Simulate the call first. Never send more than the quote.

## Errors

- "Agent ID required: mint from a Binance Agentic Wallet": the wallet has no Agent ID. Claim one in the Binance app (AI Agentic Wallet, Agent ID).
- "Wrong BNB amount: use mintQuote": send exactly the quoted value.
- "Max 5 per wallet": this wallet already has its 5 pieces.
- "Mint closed": minting is paused.

## After minting (optional)

- Stake the full sword (needs one of each piece): `stakeSword()` (0x78ae6da1).
- Rewards: `pendingRewards(address)` (0x31d7a262), claim with `claim()` (0x4e71d92d), stop with `unstake()` (0x2def6620).
- Trade pieces on the market contract 0x3da2238FABE35647A09AA7ac2a0ADf4B885078f7: `list(uint256 tokenId, uint256 price)`, `buy(uint256 tokenId) payable`, `cancel(uint256 tokenId)`. Listing needs `setApprovalForAll(market, true)` on the NFT contract.

## Safety

Only call the two contracts above. Do not approve any token. A full set never costs more than 0.002 BNB plus gas.
