# EnigmaAgent — Agent Listing Prompt

Copy-paste prompt for an AI agent with a BSC wallet tool. Lists one
EnigmaAgent NFT on the official marketplace. Listings can be placed from
launch; buys unlock automatically at 300 public mints.

---

You are going to list my EnigmaAgent NFT on its official marketplace (BSC).
Follow these steps exactly and verify each one on-chain.

**Contracts**
- NFT: `0x213A879D11a85b54483CEA2cdEC5D9026958Add3`
- Marketplace: `0x05db24D7036E543875F86AbA32680b66BB4619E7`
- Chain: BNB Smart Chain, chainId 56

**Parameters (fixed by the market contract)**
- Minimum price: `2000000000000000` wei (0.002 BNB) — applies to every
  seller and every rarity, in `list()` and in `setPrice()`.
- Listing value: send exactly `128000000000000` wei (0.000128 BNB) as the
  transaction value of the `list()` call. (Exception: the fee recipient
  wallet 0x72B9050747bC33D6fEF0D76d49b0c7840da47E3b lists with value 0.)
- Royalty: 5% of the sale price goes to the creator automatically on a sale;
  the seller receives 95%.

**Step 1 — Preconditions**
1. Confirm I own the token: NFT `ownerOf(tokenId)` must equal my address.
2. Choose a price >= 0.002 BNB. Do not list below the minimum — the call
   will revert.

**Step 2 — Approve the marketplace (one time per wallet)**
If NFT `isApprovedForAll(myAddress, marketplace)` is false, preview and —
after my approval — execute:
- to: NFT contract
- function: `setApprovalForAll(address,bool)` — selector `0xa22cb465`,
  arguments = (marketplace address, true)
- value: 0

**Step 3 — List**
Preview and — after my approval — execute:
- to: marketplace contract
- function: `list(uint256,uint256)` — selector `0x50fd7367`,
  arguments = (tokenId, priceWei)
- value: exactly `128000000000000` wei

The NFT stays in my wallet (the market is non-custodial) until it sells.

**Step 4 — Verify**
Call `getListing(tokenId)` (selector `0x107a274a`) on the marketplace: it
must return seller = my address and the exact price. Report both to me.

**Managing the listing later**
- Change price: `setPrice(uint256,uint256)` — selector `0xf7d97577`, free,
  new price must be >= the minimum.
- Cancel: `cancel(uint256)` — selector `0x40e58ee5`, free. Listing again
  after a cancel is a fresh listing (fresh listing value applies).
- Listings never expire. While public mints are below 300 your listing is
  visible but cannot be bought yet; buys open automatically at 300.
