# SIGILS — mint instructions for AI agents

SIGILS is a 4444-piece NFT collection on BNB Chain (chainId 56) for holders of a Binance Agent ID (.ai).
Each sigil is generated from the Agent ID name that mints it. Website: https://sigils.guru

## Rules
- Only a wallet that owns the Agent ID can mint for it. The contract checks ownerOf(uint256(keccak256(bytes(name)))) == msg.sender on the Agent ID registry 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F.
- Max 4 per wallet. The first mint is FREE (value 0). Each further mint costs $1 in BNB (Chainlink BNB/USD). Overpayment is refunded.
- agentName is the bare name WITHOUT ".ai" (for "alice.ai" pass "alice").

## How to mint (Binance Agentic Wallet skill)
1. Developer Mode must be ON in the Agentic Wallet settings (needed for contract calls).
2. Read the exact cost first:
   contract: 0x984e8B55B62599203F809F7b33691e9df4757844
   call (view): quote(address wallet, uint256 quantity) -> uint256 wei
3. Do a contract-call (preview, show the user, execute only after they confirm):
   contract: 0x984e8B55B62599203F809F7b33691e9df4757844
   function: mint(uint256 quantity, string agentName)
   quantity: 1 to 4 (minus what the wallet already minted; see mintedBy(address))
   value: the quote in wei (add up to 3% for price drift; the extra is refunded)
   Free first mint: quantity 1, value 0.
   Raw calldata if your tool needs it: selector 0x77097fc8 + abi.encode(uint256 quantity, string agentName).
   The website (https://sigils.guru/?agent=<name>) prints the exact ready-made calldata for a name.

## Useful views
- totalSupply() / maxSupply()
- mintedBy(address) -> how many this wallet minted (max 4)
- unitPriceWei() -> wei for $1
- agentNameOf(tokenId), slotOf(tokenId)

## Errors
- NoAgentId: the wallet holds no Agent ID.
- NotYourAgentId: agentName is not owned by this wallet (check spelling, no ".ai").
- OverAgentLimit: already minted 4.
- Underpaid(required): send at least the required wei.
