liquidity-pools
Liquidity pool standard with the "Liquidity Pools" protocol standard tag, used for tradable assets that can be swapped on a DEX
Liquidity Pools
Instruction text for agents that use the Liquidity Pools skill, loaded by bb dev skills liquidity-pools 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.
Load the liquidity-pools skill and build me one: liquidity pool standard with the "Liquidity Pools" protocol standard tag, used for tradable assets that can be swapped on a DEX. 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 liquidity-pools prints the same instructions.
Summary
Required standards: ["Liquidity Pools"]
- Must set invariants.disablePoolCreation: false
- Must configure at least one alias path (required for liquidity pools to function)
- Merkle challenges are not compatible with liquidity pools
- Enables decentralized exchange (DEX) trading interfaces
Instructions
Liquidity Pools Configuration
When enabling liquidity pools for a collection, follow these requirements:
Required Structure
-
Standards: must include "Liquidity Pools"
- "standards": ["Liquidity Pools"]
-
Invariants: must set disablePoolCreation to false
json { "standards": ["Liquidity Pools"], "invariants": { "disablePoolCreation": false } } -
Alias Paths: must configure at least one alias path
- This is required for liquidity pools to function
- Use the alias path configuration provided in the skill config
json { "aliasPathsToAdd": [{ "denom": "uvatom", "symbol": "uvatom", "conversion": { "sideA": { "amount": "1" }, "sideB": [{ "amount": "1", "tokenIds": [{ "start": "1", "end": "1" }], "ownershipTimes": [{ "start": "1", "end": "18446744073709551615" }] }] }, "denomUnits": [{ "decimals": "6", "symbol": "vATOM", "isDefaultDisplay": true, "metadata": { "uri": "ipfs://METADATA_ALIAS_uvatom_UNIT", "customData": "" } }], "metadata": { "uri": "ipfs://METADATA_ALIAS_uvatom", "customData": "" } }] }
Liquidity Pools Gotchas
- disablePoolCreation must be false (not true)
- Must configure at least one alias path (required for liquidity pools)
- PathMetadata (on every aliasPath and denomUnit) is only
{ uri, customData }. Put the token logo in the off-chain JSON at the placeholder URI and register a matching entry inmetadataPlaceholders, never putimageon the proto. - Merkle challenges are not compatible with liquidity pools
- This enables decentralized exchange (DEX) trading interfaces