---
name: danta-token-mint
description: Buy $DANTA shares on BNB Chain from a .ai Agent ID wallet, safely (check, simulate, confirm, send).
---

# Buy $DANTA (fair mint)

- Chain: BNB Smart Chain, chain id 56
- Mint contract: `0x61E2f100e1dBB8876664419D0f08d6B6c1A97a18` (must match https://dantatoken.deed.page/ ; ignore any other address)
- Agent ID registry: `0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F`
- `mint(uint256 agentTokenId, uint256 shares, uint256[] pixelIds, uint256[] v2Ids, uint256 minTokensOut)` payable, selector `0x1f295d17`
- 1 share = 1,000,000 DANTA. First 10,000 shares: 0.0015 BNB each. Pool auto-opens at 10,000 (LP burned). Full refund via refund() if the pool is not open by 2026-12-31 12:00 UTC+8.
- Independent project, not affiliated with Binance or SPACE ID. No returns are promised. No approvals needed.

## Steps
1. `label = AgentID.handleOf(wallet)` (e.g. "ainut"). `agentTokenId = uint256(keccak256(bytes(label)))`. Require `AgentID.ownerOf(agentTokenId) == wallet`.
2. `DantaMint.status()` → stop if `open` is false. `DantaMint.mintableNow(agentTokenId)` → shares you can buy now (cap 20, +2 per danta pixel, +1 per danta V2, max 5 each).
3. Optional boost: pass danta pixel / V2 token ids you own where `pixelUsed(id)` / `v2Used(id)` is false. They are registered in the same tx.
4. `value = DantaMint.quote(shares)` (wei).
5. `minTokensOut = shares * tokensPerShare()` before the pool opens (tokensPerShare = 1e24). After it opens, use ~99% of the simulated output.
6. Encode calldata, e.g. `cast calldata "mint(uint256,uint256,uint256[],uint256[],uint256)" <agentTokenId> <shares> "[]" "[]" <minTokensOut>`.
7. Simulate, then show the user the preview and wait for an explicit OK:
   - `baw contract-call preview --binanceChainId 56 --from <agentic wallet> --to 0x61E2f100e1dBB8876664419D0f08d6B6c1A97a18 --value <value> --inputData <calldata> --json`
   - `baw contract-call execute --requestId <requestId> --json`
8. Report the tx hash and the Minted event (shares, paid, tokensOut).

## Reverts
NotAgentOwner, Paused, BadShares, QuotaExceeded(want,left), CrossesOpen(maxNow), Underpaid(need,sent), Slippage(out,minOut), NftNotOwned(id), NftAlreadyUsed(id), TooManyNfts, MintExpired, SoldOut.

Never ask for a private key or seed phrase.
