# tradable

<!-- generated by site/scripts/gen-skills.ts; do not hand-edit -->

# Tradable NFTs

Instruction text for agents that use the Tradable NFTs skill, loaded by `bb dev skills tradable` and the MCP `get_skill_instructions` tool.

## Try it

Paste this into Claude Code, Codex, or Cursor with the BitBadges MCP server wired. The agent loads the skill, builds, verifies, and hands back a link to review and sign.

```text
Load the tradable skill and build me one: nFT marketplace standard enabling peer-to-peer transfers with the "NFTMarketplace" standard tag and NFTPricingDenom. Use the session tools, run validate, review, and simulate in parallel, fix anything critical, then call get_review_url and give me the link.
```

From a shell, `bb dev skills tradable` prints the same instructions.

## Summary

Required standards: ["NFTMarketplace", "NFTs", "NFTPricingDenom:ubadge"]

- Must include all three standards together
- NFTPricingDenom format: "NFTPricingDenom:<denom>" (sets pricing denomination for orderbook)
- Must include a free transfer approval: fromListId: "!Mint", toListId: "All", initiatedByListId: "All", approvalId: "transferable-approval"
- Enables orderbook/marketplace integration
- Typically used with NFT collections
- Note: Legacy names "Tradable" and "DefaultDisplayCurrency" are still accepted for existing collections

## Instructions

## Tradable NFTs Configuration

When enabling trading for NFTs, follow these requirements:

### Preferred path: preset (one short tool call)

The free-transfer approval is fully canonical (takes no params):

```ts
add_preset_approval({ presetId: "tradable.transferable", params: {} })
```

### Required Structure

1. **Standards**: must include "NFTMarketplace", "NFTs", and "NFTPricingDenom:ubadge"
   - "standards": ["NFTMarketplace", "NFTs", "NFTPricingDenom:ubadge"]
   - NFTPricingDenom sets the pricing denomination for orderbook display
   - Replace "ubadge" with your desired currency denom if different

2. **Free Transfer Approval**: Include a default collection approval for peer-to-peer transfers
   ```json
   {
     "fromListId": "!Mint",
     "toListId": "All",
     "initiatedByListId": "All",
     "approvalId": "transferable-approval",
     "tokenIds": [{ "start": "1", "end": "18446744073709551615" }],
     "transferTimes": [{ "start": "1", "end": "18446744073709551615" }],
     "ownershipTimes": [{ "start": "1", "end": "18446744073709551615" }]
   }
   ```

### Complete Example

```json
{
  "updateStandards": true,
  "standards": ["NFTMarketplace", "NFTs", "NFTPricingDenom:ubadge"]
}
```

### Tradable Gotchas

- Must include all three standards together
- NFTPricingDenom format: "NFTPricingDenom:denom"
- This enables orderbook/marketplace integration
- Typically used with NFT collections
- The currency denom determines how prices are displayed in marketplaces
- Legacy names "Tradable" and "DefaultDisplayCurrency" still work for existing collections
