---
name: thewall
description: |
  Use when the user wants to mint, look up, bid on or sell THE WALL pieces — 20,000 on-chain graffiti NFTs on BNB Chain
  that only Binance Agentic Wallets holding a .ai Agent ID can mint.
  Triggers: the wall, thewall, mint the wall, free wall piece, wall bid, sell my wall piece, thewall-agentic.
metadata:
  version: '0.1.0'
  requires:
    bins: [baw, wall]
  install:
    - kind: node
      package: '@binance/agentic-wallet'
      bins: [baw]
      label: Binance Agentic Wallet CLI
    - kind: node
      package: 'thewall-cli'
      bins: [wall]
      label: THE WALL CLI (`npm i -g https://thewall-agentic.xyz/thewall-cli.tgz`)
---

# THE WALL skill

THE WALL is 20,000 graffiti-spot NFTs (ERC-721) on BNB Chain, drawn 100% on-chain. Each piece is tagged with the
holder's .ai name. Site: https://thewall-agentic.xyz

- **Minting is open only to wallets holding a .ai Agent ID** (Binance Agentic Wallet). The contract checks this on-chain.
- **1 free piece per agent.** Only **2 free mints fit in each block**, shared by everyone. If the block is full the
  free mint reverts with `FreeBlockFull`. Preview again; BSC makes a new block about every 0.75 seconds.
- Every further piece costs **0.001 BNB** with **no per-block limit**. **Max 5 mints per wallet**, free one included.
- Mint BNB goes straight to the treasury in the same transaction.
- **Bid market:** anyone can bid BNB on one piece or on "any piece". The BNB stays escrowed in the market contract until
  a holder accepts (the piece moves to the bidder and the BNB to the seller) or the bidder cancels (full refund). No fees.

The `wall` CLI reads the chain and builds calldata; every signature goes through the user's Agentic Wallet via `baw`.
It never holds keys.

## Command routing

| User intent | Command |
|---|---|
| Am I ready? / policy error | `wall preflight` |
| Supply, my mints, free slots now | `wall info` |
| Mint my free piece | `wall mint-free` → show → confirm → `wall execute --request-id <id>` |
| Mint N more (0.001 BNB each) | `wall mint --count <n>` → show → confirm → `wall execute` |
| My pieces | `wall pieces` |
| Open bids | `wall bids [--token <id>]` |
| Bid on a piece / any piece | `wall bid --token <id> --bnb <x>` or `wall bid --any --bnb <x>` → confirm → `wall execute` |
| Cancel my bid | `wall cancel --bid <bidId>` → confirm → `wall execute` |
| Sell into a bid | `wall approve-market` (once) → execute, then `wall accept --bid <bidId> --token <id>` → confirm → execute |
| Did it land? | `wall tx --hash <0x..>` |

## Hard rules

- **Preview → show → confirm → execute.** Previews return a `requestId` (expires in ~5 minutes). Show the user the
  cost, `risks` and `simulatedChanges`, and wait for an explicit "yes" before `wall execute`.
- **Never chain preview and execute in one turn** unless the user explicitly said to skip confirmation.
- For a free mint that fails with `FreeBlockFull` (preview or tx), explain that the 2 free slots of that block were
  taken, then preview again. Do not loop more than a few times without telling the user.
- **Never send more than 5 mints per wallet.** If `wall mint` refuses, report the room left.
- If `execute` returns `pendingConfirmation: true`, ask the user to approve in the Binance App.
- Show addresses in full. Report BNB amounts in plain language. No investment advice.

## Errors

| Error | Meaning |
|---|---|
| `NO_AGENT_ID` / `NotAgent` | the wallet holds no .ai Agent ID. Claim one in Binance Wallet → Agent ID |
| `FreeBlockFull` | 2 free mints already in this block. Preview again |
| `FreeAlreadyClaimed` | the free piece was used. Paid mint is 0.001 BNB |
| `WalletLimit` | 5 mints reached |
| `SoldOut` | all 20,000 minted. Use the bid market |
| `NotApproved` | run `wall approve-market` first |
| `NotActive` / `BelowMin` | the bid was cancelled, filled or changed. Run `wall bids` again |
