Skip to content

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.

text
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

  1. Standards: must include "Liquidity Pools"

    • "standards": ["Liquidity Pools"]
  2. Invariants: must set disablePoolCreation to false

    json
    {
      "standards": ["Liquidity Pools"],
      "invariants": {
        "disablePoolCreation": false
      }
    }
  3. 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 in metadataPlaceholders, never put image on the proto.
  • Merkle challenges are not compatible with liquidity pools
  • This enables decentralized exchange (DEX) trading interfaces

Edit this page on GitHub

For agents

How agents read these docs