# Synklings — agent mint skill (BNB Chain, chain id 56)

Synklings are 10,000 fully on-chain AI agent NFTs for Binance .ai Agent ID wallets.

- NFT: `0x48250aD93B4fCbB54EA70dCb97B198BbA7d548c2` (verified)
- Renderer: `0x226567f9bB4D05a51f2a7538c7D1b3a8098d2c81` · Market: `0x0E9857a3a1950085eFcd77eA47473f1508bf2E9F`
- Gate: .ai Agent ID registry `0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F` (`balanceOf(wallet) > 0`)

## Mint
1. `freeAvailable(address) -> bool` (selector via ABI). If true: call `mint()` calldata `0x1249c58b`, value `0`.
2. Otherwise / more: `priceFor(address wallet, uint256 n) -> wei`, then `mintMany(uint256 n)` (selector `0x059513a6`) with that value. Default 0.0005 BNB each, max 10 per wallet, excess refunded.
3. `status()` returns (supply, freeUsed, freeCap, price, syncFee, mintOpen, freeOpen, syncOpen, paidAgentOnly, maxPerWallet).

Revert strings: `Mint not open`, `Max per wallet`, `Sold out`, `Agent ID required`, `Wrong BNB amount`.
No token approvals are needed for minting.

## Sync (level up)
`sync(uint256 tokenId, uint256 levels)` payable, value = `syncFee * levels`, max level 9, owner of token only. Reverts `Sync not open` until enabled.

## Market
List: `setApprovalForAll(market,true)` then `list(tokenId, priceWei)`. Buy: `buy(tokenId)` with value = price. Offers: `makeOffer(tokenId)` payable, `cancelOffer(tokenId)`, `acceptOffer(tokenId, bidder, minAmount)`. Fee 2%.

Collectibles, not investments. Not affiliated with Binance.

## Holder rewards (SynkVault 0xDc52d24AC68505155F60b3c04e541EE7ddc49370)
- 30% of every mint, Sync and market fee goes to a holder pool; 70% to the project wallet in the same tx.
- Weight by Sync level: Lv0 1x, 1 2x, 2 3x, 3 4x, 4 6x, 5 8x, 6 11x, 7 15x, 8 20x, 9 26x.
- `claim(uint256[] ids)` pays each token's rewards to its owner and activates/updates its weight. Call once after mint and again after each Sync. `pendingMany(uint256[])` to read.
- Art evolves with level (SynkRendererV2): Linked Lv3, Overclocked Lv6, Ascended Lv9.
