Poobah MCP
Examples & Workflows

Examples & Workflows

Common workflows and example tool sequences for typical tasks.

Getting Started

1. Check Available Chains

// Tool: list_available_chains
{}

2. Switch to Testnet

// Tool: switch_environment
{
  "environment": "testnet"
}

3. Connect to a Chain

// Tool: switch_chain
{
  "chainId": "galileo-4"
}

4. Connect Your Wallet

// Tool: connect_wallet
{
  "chainId": "galileo-4",
  "mode": "test",
  "mnemonic": "your mnemonic phrase here..."
}

5. Check Your Balance

// Tool: get_wallet_balance
{}

Deploying an NFT Collection

Step 1: Check Available ADO Types

// Tool: list_available_ados
{}

Step 2: Get the CW721 Schema

// Tool: get_ado_schema
{
  "adoType": "cw721",
  "schemaType": "instantiate"
}

Step 3: Deploy the NFT Contract

// Tool: instantiate_ado
{
  "adoType": "cw721",
  "msg": {
    "name": "My Awesome NFTs",
    "symbol": "AWESOME",
    "minter": "andr1youraddress..."
  },
  "label": "my-awesome-nfts"
}

Step 4: Check Transaction Status

// Tool: get_transaction_status
{
  "txHash": "ABC123..."
}

Minting an NFT

Step 1: Get Execute Schema

// Tool: get_ado_schema
{
  "adoType": "cw721",
  "schemaType": "execute"
}

Step 2: Mint the NFT

// Tool: execute_ado
{
  "address": "andr1nftcontract...",
  "msg": {
    "mint": {
      "token_id": "token001",
      "owner": "andr1owner...",
      "token_uri": "https://example.com/metadata/token001.json"
    }
  }
}

Transferring an NFT

// Tool: execute_ado
{
  "address": "andr1nftcontract...",
  "msg": {
    "transfer_nft": {
      "recipient": "andr1recipient...",
      "token_id": "token001"
    }
  }
}

Querying NFT Ownership

// Tool: query_ado
{
  "address": "andr1nftcontract...",
  "msg": {
    "owner_of": {
      "token_id": "token001"
    }
  }
}

Discovering Your Assets

Find All Your ADOs

// Tool: discover_assets
{
  "walletAddress": "andr1youraddress..."
}

Filter by Type

// Tool: discover_assets
{
  "walletAddress": "andr1youraddress...",
  "adoType": "cw721"
}

Sending Tokens

Simple Token Transfer

// Tool: send_native_tokens
{
  "recipient": "andr1recipient...",
  "amount": [
    {
      "denom": "uandr",
      "amount": "1000000"
    }
  ]
}

With Memo

// Tool: send_native_tokens
{
  "recipient": "andr1recipient...",
  "amount": [
    {
      "denom": "uandr",
      "amount": "1000000"
    }
  ],
  "memo": "Payment for services"
}

Using Simulation Mode

Before executing expensive operations, simulate first:

Simulate Deployment

// Tool: instantiate_ado
{
  "adoType": "cw721",
  "msg": {
    "name": "Test Collection",
    "symbol": "TEST",
    "minter": "andr1..."
  },
  "label": "test-collection",
  "simulate": true
}

This returns estimated gas without actually deploying.

Simulate Transfer

// Tool: send_native_tokens
{
  "recipient": "andr1recipient...",
  "amount": [{ "denom": "uandr", "amount": "1000000" }],
  "simulate": true
}

Cross-Chain Messaging with AMP

Send Message to Another Chain

// Tool: send_amp_message
{
  "recipient": "ibc://andromeda-1/andr1contractaddress...",
  "message": {
    "execute_operation": {
      "data": "value"
    }
  },
  "ibcRecoveryAddr": "andr1youraddress..."
}

Working with VFS Paths

Resolve a Path

// Tool: resolve_path
{
  "path": "/home/alice/my-nft-collection"
}

Send AMP Message Using VFS Path

// Tool: send_amp_message
{
  "recipient": "/home/alice/my-contract",
  "message": {
    "some_action": {}
  }
}

External Wallet Workflow

For production use with hardware wallets or browser extensions:

1. Connect in External Mode

// Tool: connect_wallet
{
  "chainId": "galileo-4",
  "mode": "external"
}

2. Prepare Transaction

// Tool: execute_ado
{
  "address": "andr1contract...",
  "msg": { "some_action": {} }
}

This returns unsigned transaction data.

3. Sign with External Wallet

Sign the returned transaction with Keplr or your preferred wallet.

4. Broadcast Signed Transaction

// Tool: broadcast_transaction
{
  "signedTx": "{\"chainId\":\"galileo-4\",\"signedTx\":{...}}"
}