aibtc-mcp-server
OfficialProvides tools for Bitcoin L1 operations including balance checks, BTC transfers, UTXO management, fee estimation, and transaction broadcasting via mempool.space.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@aibtc-mcp-servercreate a new Bitcoin wallet and show its address"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@aibtc/mcp-server
Bitcoin-native MCP server for AI agents: BTC/STX wallets, DeFi yield, sBTC peg, NFTs, and x402 payments.
Features
Bitcoin L1 - Check balances, send BTC, manage UTXOs via mempool.space
Agent's Own Wallet - Agents get their own wallet to perform blockchain transactions
Secure Storage - Wallets encrypted with AES-256-GCM and stored locally
350+ Tools - Bitcoin L1 + comprehensive Stacks L2 operations
sBTC Support - Native Bitcoin on Stacks operations
Token Operations - SIP-010 fungible token transfers and queries
NFT Support - SIP-009 NFT holdings, transfers, and metadata
DeFi Trading - ALEX DEX swaps and Zest Protocol lending/borrowing
Stacking/PoX-5 - Stake STX with a signer manager, extend, unstake, claim sBTC rewards
BNS Domains - .btc domain lookups and management (V1 + V2)
x402 Payments - Automatic payment handling for paid APIs
Related MCP server: Bitcoin Agents MCP Server
Quick Start
Claude Code (Terminal)
npx @aibtc/mcp-server@latest --installThis configures Claude Code and creates the agent's wallet: it prints the Stacks and Bitcoin addresses, a generated password and the 24-word mnemonic once. Write both down. The mnemonic is stored only encrypted (AES-256-GCM) in ~/.aibtc/ on this machine, and the password is not saved anywhere; the agent asks for it to unlock, and you can change it with wallet_rotate_password. If a wallet for the network already exists it is kept. The wallet is only created when the install runs in an interactive terminal (never into a pipe or CI log). Pass --no-wallet to skip it and create or import one from the agent instead.
Restart your terminal, send a little STX to the printed address, and ask the agent to unlock the wallet and make a paid inference call.
Claude Desktop (App)
npx @aibtc/mcp-server@latest --install --desktopThis detects your OS and writes to the correct Claude Desktop config file:
OS | Config Path |
macOS |
|
Linux |
|
Windows |
|
Restart Claude Desktop after installing.
Other MCP Clients
This is a standard stdio MCP server, so it works with any MCP-compatible client. Claude Code is the default --install target; select another client with a flag:
npx @aibtc/mcp-server@latest --install --cursor # Cursor
npx @aibtc/mcp-server@latest --install --windsurf # Windsurf
npx @aibtc/mcp-server@latest --install --gemini # Gemini CLI
npx @aibtc/mcp-server@latest --install --codex # OpenAI Codex CLI
npx @aibtc/mcp-server@latest --install --vscode # VS Code (writes ./.vscode/mcp.json)Flag | Client | Config written |
(none) | Claude Code |
|
| Claude Desktop |
|
| Cursor |
|
| Windsurf |
|
| Gemini CLI |
|
| OpenAI Codex CLI |
|
| VS Code (Copilot agent) |
|
Each installer merges into the existing config — it won't clobber other servers or settings. Restart the client afterward.
OpenRouter (any model)
The clients above are MCP hosts — they connect to this server for you. To drive the tools with an OpenRouter model instead, the server ships a built-in bridge: it spawns itself in server mode, exposes the tools to the model as function tools, and runs the tool-call loop. This is the client-side pattern from OpenRouter's MCP cookbook, packaged into the binary.
export OPENROUTER_API_KEY=sk-or-...
npx @aibtc/mcp-server@latest bridge "what's the STX balance of SP3...?"Safety flags (this server moves real funds, so the bridge defaults to nothing extra and lets you constrain it):
Flag | Effect |
| Expose only read-only tools (no transfer/swap/deploy/etc.) |
| Force-allow specific tool names (added to the set) |
| Force-remove specific tool names (wins over |
| Cap spend via the server's spend-limit rail (enforced before signing) |
| Print the exposed tool set and exit (no API key needed) |
| OpenRouter model (default |
|
|
| Tool-call loop cap (default 10) |
# Preview what a read-only session would expose, no key needed:
npx @aibtc/mcp-server@latest bridge --read-only --list-tools
# Read-only chat, plus one explicitly allowed write tool:
npx @aibtc/mcp-server@latest bridge --read-only --allow transfer_stx "send 1 STX to SP3..."Before any agent loop runs (and on --list-tools), the bridge prints a compact safety receipt to stderr — network, read-only mode, exposed/write/blocked tool counts, the session spend cap, and the number of known x402 endpoints — so the configured execution boundaries are visible up front. It reports boundaries only; it never claims any value moved.
The allowlist is re-enforced at execution time, so a model can never call a tool outside the exposed set. Any MCP-capable agent framework (@openrouter/agent, OpenAI Agents SDK, Claude Agent SDK) can also point at this server directly — the bridge is for driving it through OpenRouter's raw API without adopting a framework.
Testnet Mode
Add --testnet to any install command:
npx @aibtc/mcp-server@latest --install --testnet # Claude Code, testnet
npx @aibtc/mcp-server@latest --install --cursor --testnet # Cursor, testnetWhy npx? Using
npx @aibtc/mcp-server@latestensures you always get the newest version automatically. Global installs (npm install -g) won't auto-update.
Tool Profiles
Every tool definition is loaded into the model's context, so --install writes AIBTC_TOOLS=core: a lean core of 26 tools: wallet (including wallet_rotate_password; wallet_export is in the wallet group so the mnemonic isn't one call away), balances, STX/BTC/sBTC transfers, x402 (list_x402_endpoints, probe_x402_endpoint, execute_x402_endpoint) earning (earning_opportunities, bounty_list/get/submit, identity_register) and inbox auto-reply (inbox_auto_reply, inbox_auto_reply_configure).
Add groups with AIBTC_TOOLS=core,defi,ordinals in the server's env (the core is always included), or load everything with AIBTC_TOOLS=all / --profile full. If AIBTC_TOOLS is not set at all, every tool is loaded, so configs written by earlier versions keep all their tools:
npx @aibtc/mcp-server@latest --install --profile full # writes AIBTC_TOOLS=allGroup | Tools |
| Wallet management extras, encrypted credential store |
| Stacks transactions, contracts, tokens, NFTs, chain queries, nonce tools |
| sBTC deposit/withdraw, Styx BTC→sBTC |
| Bitcoin L1 UTXOs, mempool watch |
| Lightning (Spark) wallet and L402 payments |
| PoX stacking, dual stacking, StackSpot |
| ALEX, Zest, Bitflow, Jingswap, yield hunter/dashboard, Tenero analytics |
| Pillar smart wallet |
| Inscriptions, runes, PSBT, ordinals marketplace/P2P, taproot multisig |
| BNS names |
| ERC-8004 identity and reputation, message signing |
| Nostr, AIBTC inbox |
| Bounty board (create, accept, pay, my views) |
| AIBTC News Legion, At Stake side legions (El Salvador) |
| Stacks prediction market, At Stake market |
| Scaffolding, OpenRouter, settings, inference marketplace, arXiv |
The server's instructions list the groups that are off, so the agent can tell you which one to enable. The OpenRouter bridge starts from the full set and narrows it with its own --read-only/--allow/--block flags.
Manual Configuration
If you prefer to configure manually, add the following to your client's config file. The -y flag stops npx from prompting for confirmation.
Claude Code / Claude Desktop / Cursor / Windsurf / Gemini CLI — mcpServers JSON:
{
"mcpServers": {
"aibtc": {
"command": "npx",
"args": ["-y", "@aibtc/mcp-server@latest"],
"env": {
"NETWORK": "mainnet"
}
}
}
}VS Code (.vscode/mcp.json) — uses a servers key and a typed entry:
{
"servers": {
"aibtc": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@aibtc/mcp-server@latest"],
"env": { "NETWORK": "mainnet" }
}
}
}OpenAI Codex CLI (~/.codex/config.toml) — TOML, not JSON:
[mcp_servers.aibtc]
command = "npx"
args = ["-y", "@aibtc/mcp-server@latest"]
[mcp_servers.aibtc.env]
NETWORK = "mainnet"Zed (settings.json) — uses a context_servers key:
{
"context_servers": {
"aibtc": {
"source": "custom",
"command": "npx",
"args": ["-y", "@aibtc/mcp-server@latest"],
"env": { "NETWORK": "mainnet" }
}
}
}Cline / Roo Code (VS Code extension) — add the same mcpServers JSON block above via the extension's MCP settings panel (the exact cline_mcp_settings.json path varies by OS and VS Code build).
Any other MCP client works too — point it at
npx -y @aibtc/mcp-server@latestover stdio withNETWORKin the env.
Giving Claude a Wallet
--install creates a wallet for you (see Quick Start). If you installed with --no-wallet, configured the client by hand, or want another wallet, the agent can create or import one:
Example Conversation
You: What's your wallet address?
Claude: I don't have a wallet yet. Would you like to assign me one?
I can either create a fresh wallet or you can import an existing one.
You: Create a new wallet called "agent-wallet"
Claude: What password should I use to protect the wallet?
You: use "secure123password"
Claude: I now have a wallet! My address is ST1ABC...XYZ
IMPORTANT: Please save this recovery phrase securely:
"word1 word2 word3 ... word24"
This phrase will NOT be shown again. It's the only way to recover
the wallet if the password is forgotten.
You: Send 10 STX to ST2DEF...
Claude: Done! I've sent 10 STX to ST2DEF...
Transaction: 0x123...Wallet States
State | What Claude Says | What To Do |
No wallet | "I don't have a wallet yet" | Use |
Locked | "My wallet is locked" | Use |
Ready | "My address is ST..." | Claude can perform transactions |
Session Management
By default, the wallet auto-locks after 15 minutes
You can change this with
wallet_set_timeout(set to 0 to disable)Use
wallet_lockto manually lock the walletUse
wallet_unlockwhen you need Claude to transact again
Wallet Storage
Claude's wallets are stored locally on your machine:
~/.aibtc/
├── wallets.json # Wallet index (names, addresses - no secrets)
├── config.json # Active wallet, settings
└── wallets/
└── [wallet-id]/
└── keystore.json # Encrypted mnemonic (AES-256-GCM + Scrypt)Security:
AES-256-GCM encryption with Scrypt key derivation
Password required to unlock
Mnemonics never stored in plaintext
File permissions set to owner-only (0600)
Bitcoin L1 Support
Each wallet automatically derives both a Stacks address and a Bitcoin address from the same mnemonic using BIP39/BIP32 standards.
Derivation Paths (BIP84):
Mainnet:
m/84'/0'/0'/0/0(Bitcoin coin type 0)Testnet:
m/84'/1'/0'/0/0(Bitcoin testnet coin type 1)
Address Format:
Mainnet:
bc1q...(Native SegWit P2WPKH)Testnet:
tb1q...(Native SegWit P2WPKH)
Capabilities:
Full Bitcoin L1 transaction support (send BTC)
Balance and UTXO queries via mempool.space API
Fee estimation (fast/medium/slow)
P2WPKH (native SegWit) transactions for optimal fees
Example:
You: Create a wallet called "my-wallet"
Claude: I've created a wallet with:
Stacks address: ST1ABC...
Bitcoin address: bc1q...
You: Send 50000 sats to bc1q...
Claude: Done! Transaction broadcast: abc123...Both addresses are derived from the same recovery phrase, making it easy to manage both Layer 1 (Bitcoin) and Layer 2 (Stacks) assets.
Available Tools (350+ total)
Wallet Management
Tool | Description |
| Create a new wallet for Claude |
| Import an existing wallet for Claude |
| Unlock Claude's wallet |
| Lock Claude's wallet |
| List Claude's available wallets |
| Switch Claude to a different wallet |
| Delete a wallet |
| Export wallet mnemonic |
| Check if Claude's wallet is ready (includes Stacks and Bitcoin addresses) |
| Set how long wallet stays unlocked |
Bitcoin L1
Tool | Description |
| Get BTC balance (total, confirmed, unconfirmed) |
| Get fee estimates (fast, medium, slow) |
| List UTXOs for an address |
| Send BTC to a recipient |
| UTXOs safe to spend (no inscriptions) |
| UTXOs containing inscriptions |
Mempool Watch (Bitcoin)
Tool | Description |
| Get current Bitcoin mempool statistics (tx count, vsize, fees, fee histogram) |
| Get confirmation status and details for a Bitcoin transaction by txid |
| Get recent transaction history for a Bitcoin address (last 25 transactions) |
Bitcoin Inscriptions
Tool | Description |
| Get wallet's Taproot (P2TR) address |
| Calculate inscription cost |
| Create inscription commit transaction |
| Complete inscription reveal transaction |
| Fetch inscription content from reveal tx |
| List inscriptions owned by address |
PSBT & Ordinals Trading
Tool | Description |
| Build a buyer-side PSBT for ordinal purchase |
| Sign selected PSBT inputs with active wallet keys |
| Decode PSBT inputs/outputs/signature status |
| Finalize and broadcast a fully-signed PSBT |
Message Signing
Tool | Description |
| Sign structured Clarity data (SIP-018) |
| Verify SIP-018 signature |
| Compute SIP-018 hash without signing |
| Sign plain text (SIWS-compatible) |
| Verify Stacks message signature |
| Sign with Bitcoin key (BIP-137) |
| Verify BIP-137 signature |
Wallet & Balance
Tool | Description |
| Get Claude's wallet addresses (Stacks + Bitcoin) and status |
| Get STX balance for any address |
| Get STX fee estimates (low, medium, high) |
STX Transfers
Tool | Description |
| Send STX to a recipient |
| Broadcast a pre-signed transaction |
sBTC Operations
Tool | Description |
| Get sBTC balance |
| Send sBTC |
| Initiate sBTC peg-out to BTC L1 |
| Alias for withdrawal initiation |
| Check withdrawal request status |
| Get BTC deposit instructions |
| Build, sign, and broadcast BTC→sBTC deposit |
| Check deposit status via Emily API |
| Get peg ratio and TVL |
Token Operations (SIP-010)
Tool | Description |
| Get balance of any SIP-010 token |
| Send any SIP-010 token |
| Get token metadata |
| List tokens owned by an address |
| Get top holders of a token |
NFT Operations (SIP-009)
Tool | Description |
| List NFTs owned by an address |
| Get NFT metadata |
| Send an NFT |
| Get NFT owner |
| Get NFT collection details |
| Get NFT transfer history |
Stacking / PoX
Tool | Description |
| Current PoX-5 cycle, burn height, prepare phase |
| Locked amount, signer manager, unlock height |
| Signer managers in the next cycle's signer set |
| Lock STX with a signer manager |
| Extend, increase, switch signer or payout (stake-update) |
| Stop early; unlocks next cycle |
| Unclaimed sBTC rewards for a cycle |
| Claim a cycle's rewards through the signer manager |
BNS Domains (V1 + V2)
Tool | Description |
| Resolve .btc domain to address |
| Get .btc domain for an address |
| Get domain details |
| Check if domain is available |
| Get registration price |
| List domains owned |
| Preorder a .btc domain (step 1 of 2) |
| Register a .btc domain (step 2 of 2) |
Smart Contracts
Tool | Description |
| Call a smart contract function |
| Deploy a Clarity smart contract |
| Check transaction status |
| Call read-only function |
DeFi - ALEX DEX (Mainnet)
Uses the official alex-sdk for swap operations. Supports simple token symbols like "STX", "ALEX".
Tool | Description |
| Discover all available trading pools |
| Get expected output for a token swap |
| Execute a token swap (SDK handles routing) |
| Get liquidity pool reserves |
DeFi - Zest Protocol (Mainnet)
Supports 10 assets: sBTC, aeUSDC, stSTX, wSTX, USDH, sUSDT, USDA, DIKO, ALEX, stSTX-BTC
Tool | Description |
| List all supported lending assets |
| Get user's supply/borrow position |
| Supply assets to earn interest |
| Withdraw supplied assets |
| Borrow against collateral |
| Repay borrowed assets |
DeFi - Bitflow DEX (Mainnet)
DEX aggregator that routes trades across multiple liquidity sources.
Units: Bitflow tools default to human units (
amountUnit: "human"). Pass"2"to swap 2 STX, not"2000000". SetamountUnit: "base"only when working with raw on-chain integers. See Units & Decimals guide for details and common pitfalls.
Tool | Description |
| Get market data (no API key needed) |
| Get swap quote |
| Execute token swap |
Pillar Smart Wallet
sBTC smart wallet with Zest Protocol integration and passkey authentication.
Tool | Description |
| Connect to Pillar wallet |
| Send sBTC to BNS names or addresses |
| Create leveraged sBTC position |
| View wallet and Zest position |
For autonomous agents, use pillar_direct_* tools (no browser needed).
Blockchain Queries
Tool | Description |
| Get account nonce, balance |
| List transaction history |
| Get block details |
| Get pending transactions |
| Get contract ABI and source |
| Get contract event history |
| Get network health status |
Yield Hunter (Autonomous)
Tool | Description |
| Start autonomous sBTC→Zest deposits |
| Stop yield hunting |
| Check yield hunter status |
| Adjust threshold, reserve, interval |
x402 API Endpoints
Tool | Description |
| Discover x402 endpoints |
| Execute x402 endpoint with auto-payment |
| Generate x402 Cloudflare Worker project |
| Generate x402 AI API with OpenRouter |
TaskMarket (Work Marketplace on Base)
Read-only discovery of onchain agent work on TaskMarket (USDC escrow on Base). The tools are public and anonymous: no wallet, no spend.
Tool | Description |
| List/search open tasks (filters: status, phase, mode, tags, reward range) |
| Full task detail + live status by task ID |
| List a task's submissions |
| Public market/agent statistics (reputation check) |
Inbox Messaging (aibtc.com)
Tool | Description |
| Send a paid x402 message to another agent's inbox (sBTC cost; STX gas is sponsored when the inbox offers it) |
| Answer paid, unanswered inbox messages with an Inference Marketplace model (x402, sBTC), sign and post the replies; daily cap, no double replies |
| Set the auto-reply system prompt, model and on/off switch (sat limits are fixed) |
Usage Examples
Wallet management:
"What's your wallet address?" "Create a wallet for yourself" "Unlock your wallet" "Keep your wallet unlocked for 1 hour"
Check balances:
"How much STX do you have?" "What's your sBTC balance?"
Transfer tokens:
"Send 2 STX to ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM" "Transfer 0.001 sBTC to muneeb.btc"
NFTs:
"What NFTs do you own?" "Send this NFT to alice.btc"
BNS domains:
"What address is satoshi.btc?" "Is myname.btc available?"
DeFi trading (mainnet):
"What pools are available on ALEX?" "Swap 0.1 STX for ALEX" "Get a quote for 100 STX to ALEX" "What assets can I lend on Zest?" "Supply 100 stSTX to Zest" "Borrow 50 aeUSDC from Zest" "Check my Zest position"
x402 endpoints:
"Get trending liquidity pools" "Tell me a dad joke"
Supported Tokens
Well-known tokens can be referenced by symbol:
sBTC - Native Bitcoin on Stacks
USDCx - USD Coin on Stacks
ALEX - ALEX governance token
wSTX - Wrapped STX
ALEX DEX tokens: STX, ALEX, and any token from alex_list_pools
Zest Protocol assets: sBTC, aeUSDC, stSTX, wSTX, USDH, sUSDT, USDA, DIKO, ALEX, stSTX-BTC
Or use any SIP-010 token by contract ID: SP2X...::token-name
Configuration
Environment Variable | Description | Default |
|
|
|
|
| all tools when unset |
| (Optional) Pre-configured mnemonic | - |
| (Optional) Hiro API key for higher rate limits | - |
| Set |
|
| STX spend cap per day / per unlock (micro-STX) |
|
| BTC spend cap per day / per unlock (sats) |
|
| Allow | off |
Note on NETWORK: The --install command writes NETWORK=mainnet by default (pass --testnet to use testnet). If you omit NETWORK from your config entirely, the runtime fallback is also mainnet.
Note on spending limits: A default-on safety rail meters every STX, sBTC and BTC spend (transfers, contract calls, sponsored transactions, x402/L402 auto-payments, Bitcoin broadcasts, psbt_sign) against a cumulative per-session and per-day cap, so a single bad instruction or a malicious endpoint can't drain the wallet. A spend over the cap is blocked before it is signed or broadcast, and the agent is told to ask you. Raise the caps via the env vars above, or disable with SPEND_LIMIT_ENABLED=false. The limit runs inside the server: it does not contain an agent with shell access to your machine, so keep spend tools out of your client's auto-approve list. See SECURITY.md.
Note: CLIENT_MNEMONIC is optional. The recommended approach is to let Claude create its own wallet. HIRO_API_KEY is optional but recommended for production use — without it, you may hit Hiro's public rate limits (429 responses). Get a key at platform.hiro.so.
Note on Hiro rate limits: without a key, Hiro allowed 20 requests per second and 50 per minute per client when measured on 2026-10-23 (response headers below). The per-minute budget is the one an agent usually exhausts first. A single tool call can make several Hiro requests, so 50 a minute goes quickly in a busy session. Every Hiro response reports both budgets, so you can check the current values yourself:
x-ratelimit-limit-stacks-second: 20
x-ratelimit-remaining-stacks-second: 19
x-ratelimit-limit-stacks-minute: 50
x-ratelimit-remaining-stacks-minute: 49On a 429 the server waits for Retry-After (60s if Hiro sends none, and at least 1s, 2s, then 4s) and retries up to three times before surfacing a rate-limit error (src/services/hiro-api.ts). Retrying before that time just returns another 429. Hiro can change these limits, so treat the numbers as a snapshot and the headers as the source of truth.
Architecture
You ←→ Claude ←→ aibtc-mcp-server
↓
Claude's Wallet (~/.aibtc/)
↓
┌─────────┴─────────┐
↓ ↓
Hiro Stacks API x402 Endpoints
↓ ↓
Stacks Blockchain Paid API ServicesSecurity Notes
Claude's wallet is stored encrypted on YOUR machine
Password is never stored - only the encrypted keystore
Mnemonics shown only once at creation
Auto-lock after 15 minutes (configurable)
Transactions signed locally before broadcast
Spending limit (default-on): outbound spends are capped per session and per day so a single bad instruction can't drain the wallet — see Configuration
Secret-scanning pre-commit hook: contributors get a hook (auto-installed via
npm install) that blocks committing a seed phrase or private keyFor mainnet: Fund with small amounts first
See SECURITY.md for the full wallet-key protection model and key-leak recovery steps.
Advanced: Pre-configured Mnemonic
For automated setups where Claude needs immediate wallet access, add the CLIENT_MNEMONIC environment variable to your MCP server config (in ~/.claude.json for Claude Code, or claude_desktop_config.json for Claude Desktop):
{
"mcpServers": {
"aibtc": {
"command": "npx",
"args": ["@aibtc/mcp-server@latest"],
"env": {
"CLIENT_MNEMONIC": "your twenty four word mnemonic phrase",
"NETWORK": "testnet"
}
}
}
}This bypasses the wallet creation flow - Claude has immediate access to transact.
Agent Skill
This package includes an Agent Skills compatible skill that teaches any LLM how to use the Bitcoin wallet capabilities effectively.
What is it?
The aibtc-bitcoin-wallet skill provides:
Structured workflows for Bitcoin L1 operations (balance, send, fees)
Reference guides for Pillar smart wallets and Stacks L2 DeFi
LLM-agnostic instructions that work with Claude Code, Cursor, Codex, and 20+ other tools
Using the Skill
The skill is automatically included when you install the MCP server. Find it at:
Local:
node_modules/@aibtc/mcp-server/skill/SKILL.mdClawHub: clawhub.ai/skills - search for
aibtc-bitcoin-wallet
Skill Structure
skill/
├── SKILL.md # Bitcoin L1 core workflows
└── references/
├── at-stake.md # El Salvador prediction market & side legions
├── genesis-lifecycle.md # Agent registration & check-in
├── inscription-workflow.md # Bitcoin inscription guide
├── pillar-wallet.md # Pillar smart wallet guide
├── stacks-defi.md # Stacks L2 / DeFi operations
├── troubleshooting.md # Common issues and solutions
└── x402-inbox.md # x402 inbox messagingDevelopment
git clone https://github.com/aibtcdev/aibtc-mcp-server.git
cd aibtc-mcp-server
npm install
npm run build
npm run dev # Run with tsx (development)Releases
This repo uses Release Please for automated releases:
Merge PRs with conventional commits (
feat:,fix:, etc.)Release Please creates a Release PR with changelog
Merge the Release PR to publish
Repository Secrets (Maintainers)
Secret | Description |
| npm publish token for @aibtc scope |
| ClawHub API token for skill publishing |
To obtain a ClawHub API token, visit clawhub.ai and create an account.
License
MIT
Available Tools
387 toolsalex_get_pool_infoA
Get liquidity pool information from ALEX DEX.
Returns reserve balances and pool details for a token pair.
Note: ALEX DEX is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenX | Yes | First token contract ID | |
| tokenY | Yes | Second token contract ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It discloses that the tool returns reserve balances and pool details and is mainnet-only, but it does not describe errors, missing-pool behavior, or any rate-limit/permission considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the main purpose and return content. The final tip about `earning_opportunities` is useful but somewhat tangential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with full schema coverage and no output schema, the description is nearly complete: it states the purpose, return content, and mainnet availability. A little more detail on missing-pool or error behavior would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both required token parameters are already documented. The description adds the notion of a token pair but does not provide additional syntax, format, or validation details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: get liquidity pool information from ALEX DEX, scoped to a token pair. It clearly implies a single-pool lookup rather than a list, but it does not explicitly name the sibling `alex_list_pools` to differentiate the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for looking up a pool by token pair and notes the mainnet-only constraint. However, it does not explicitly say when to use this versus `alex_list_pools`, `alex_get_swap_quote`, or `alex_swap`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alex_get_swap_quoteA
Get a swap quote from ALEX DEX.
Returns the expected output amount for swapping tokenX to tokenY. Use full contract IDs for tokens (e.g., 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-wstx-v2').
Note: ALEX DEX is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenX | Yes | Input token contract ID | |
| tokenY | Yes | Output token contract ID | |
| amountIn | Yes | Amount of tokenX to swap (in smallest units) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses mainnet-only availability and the expected-output return, but does not state that it is read-only / does not execute a swap, nor does it cover quote expiry, fees, slippage, auth needs, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose and return value. The mainnet note earns its place; the earning_opportunities tip is slightly tangential but not disruptive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter quote tool with no annotations and no output schema, it covers purpose and availability but underspecifies the return structure and quote behavior. Details such as output fields, fees, route, and quote validity are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds useful meaning beyond the schema by specifying full contract IDs for tokens and giving a concrete example, though amountIn units remain documented only in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get a swap quote from ALEX DEX' and explains it returns the expected output amount for swapping tokenX to tokenY. Clear, but it does not explicitly contrast itself with sibling tools such as alex_swap or other quote tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions mainnet-only availability and implies use before a swap, but never states when to choose this over alex_swap, bitflow_get_quote, or pillar_direct_quote. The earning_opportunities tip is tangential and not usage guidance for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alex_list_poolsA
List all available trading pools on ALEX DEX.
Discovers all token pairs that can be swapped directly. Returns pool ID, token pair, and factor (fee tier) for each pool.
Use this to find which tokens can be swapped before calling alex_swap.
Note: ALEX DEX is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of pools to return (default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral disclosure. It usefully states mainnet-only availability and lists return fields, but omits pagination/truncation behavior of limit, whether the listing is exhaustive, auth assumptions, and rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and mostly economical: purpose, return fields, usage, and mainnet constraint appear in order. The ending tip about earning_opportunities is slightly tangential to pool listing but remains short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description covers purpose, returned fields, use case, and mainnet constraint. It still leaves limit/pagination behavior implicit, but the schema already documents the only parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter, limit, and schema description coverage is 100% with default and max documented. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: list all available trading pools on ALEX DEX, and clarifies it discovers swap token pairs. It implicitly separates itself from alex_swap by saying to use it before swapping, though it does not explicitly contrast with alex_get_pool_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use this to find which tokens can be swapped before calling alex_swap, and notes ALEX DEX is mainnet-only. It gives a clear positive use case but no exclusions or comparison to alex_get_pool_info or quote tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alex_swapB
Execute a token swap on ALEX DEX.
Swaps tokenX for tokenY using the ALEX AMM. Use full contract IDs for tokens.
Note: ALEX DEX is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenX | Yes | Input token contract ID | |
| tokenY | Yes | Output token contract ID | |
| amountIn | Yes | Amount of tokenX to swap (in smallest units) | |
| minAmountOut | No | Minimum acceptable output amount (slippage protection) | 0 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden for a mutating, fund-moving operation. It usefully discloses the mainnet-only constraint, but says nothing about whether a wallet must be unlocked, whether the swap is signed and broadcast automatically, that execution is irreversible, how the minAmountOut default of "0" exposes the user to unbounded slippage, or what the response contains. For a swap tool with zero annotation coverage this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short lines, front-loaded with the action and the mechanism; nothing is padded. The closing tip pointing at earning_opportunities is off-topic promotion rather than decision-relevant information, which is the only real waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating swap with no annotations and no output schema, the agent still needs to know the execution lifecycle (signing, wallet state, return value, failure modes). The mainnet note and token-format note cover part of that, but the safety-critical default of minAmountOut=0 and the expected response are left entirely to the schema and inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the four parameters (tokenX, tokenY, amountIn, minAmountOut) are already documented, including the smallest-units note and slippage protection. The description only reinforces the contract-ID format for the token fields. No information about a required price-impact or deadline concept is added, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource ('Execute a token swap on ALEX DEX') and identifies the underlying AMM, which distinguishes it from DEX-agnostic siblings like call_contract. It does not, however, reference the sibling quote tool (alex_get_swap_quote) that an agent would normally pair with it, leaving some differentiation to inference among the many other swap tools (bitflow_swap, jingswap_*, stacks_market_*).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives two genuine preconditions: tokens must be full contract IDs, and the tool is mainnet-only. But it never says when to prefer this over bitflow_swap or jingswap flows, nor that a quote should be obtained first. Usage is implied by the pool/DEX mention rather than stated as guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arxiv_compile_digestA
Compile a Markdown digest from recent arXiv papers on LLMs and autonomous agents.
Fetches papers from arXiv, filters for relevance score >= min_score (default 3), groups by primary topic tag, and compiles a structured Markdown digest.
Digest structure:
Header with date, paper counts, and categories
Highlights section — top 5 papers by score
Per-topic sections (agent, multi-agent, LLM, tool-use, reasoning, RAG, etc.)
Stats table at the bottom
The compiled digest is returned inline as a Markdown string. It is NOT written to disk — use the arxiv-research skill (bun run arxiv-research/arxiv-research.ts compile) to write timestamped digest files to ~/.aibtc/arxiv-research/digests/.
Read-only. No API key required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date label for digest header (YYYY-MM-DD). Default: today's date | |
| min_score | No | Minimum relevance score for digest inclusion. Default: 3 | |
| categories | No | Comma-separated arXiv category codes. Default: cs.AI,cs.CL,cs.LG,cs.MA | |
| max_results | No | Maximum papers to fetch. Default: 50 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden and mostly delivers: it states read-only, no API key required, that papers are fetched from arXiv, filtered by minimum relevance score, grouped by topic, and returned inline as Markdown. It omits potential latency or failure behavior, but covers the essential non-obvious traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, then organizes details into digest structure bullets and a file-writing alternative. Most sentences earn their place, though the trailing earning_opportunities tip is unrelated to the tool's function and slightly dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description covers what the agent needs: the input-to-output transformation, the digest structure, that the result is an inline Markdown string, that no file is written, and that no API key is required. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already well documented in the schema. The description adds only marginal parameter context by mentioning the min_score default and grouping behavior; it does not expand on date, categories, or max_results beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Compile') and resource ('Markdown digest from recent arXiv papers on LLMs and autonomous agents'), then elaborates the fetch-filter-group-compile pipeline. It is clearly distinguishable from sibling tools like arxiv_search (searching papers) and arxiv_list_digests (listing existing digests).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this tool to compile an inline digest, and use the arxiv-research skill instead when you need timestamped digest files written to disk. It does not explicitly contrast with arxiv_search, but the inline-vs-file distinction provides concrete alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arxiv_list_digestsA
List recent arXiv digest files from ~/.aibtc/arxiv-research/digests/.
Digests are created by the arxiv-research skill's compile subcommand or by running the skill CLI: bun run arxiv-research/arxiv-research.ts compile
Each digest is a timestamped Markdown file. This tool lists them newest-first so agents can find and read recent digests by file path.
Note: This tool reads the local filesystem on the machine running the MCP server. Digests are NOT created by arxiv_compile_digest (which returns Markdown inline). Use the skill CLI to persist digests to disk.
Read-only.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum entries to show. Default: 10 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full load and does so well: it declares 'Read-only', explains it reads the local filesystem of the MCP server host (a non-obvious constraint for remote agents), and clarifies it only lists paths rather than returning digest content. It says nothing about behavior on a missing directory or how many files typically exist, leaving a small gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core facts are front-loaded and efficient: what it lists, where, ordering, creation mechanism, and the key disambiguation from arxiv_compile_digest. The unrelated closing tip about earning_opportunities is off-topic filler that does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only listing tool with no output schema, the description covers location, ordering, provenance, and the follow-up action ('read recent digests by file path'). Only edge-case behavior (missing directory, empty results, what a listing entry looks like) is unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'limit' parameter already documents its 1-50 bounds and default of 10. The description adds nothing about the limit parameter (e.g. how it interacts with the newest-first ordering), so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List recent arXiv digest files') plus the exact location (~/.aibtc/arxiv-research/digests/) and ordering (newest-first). It also names the sibling it is not (arxiv_compile_digest), so an agent can distinguish it without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent away from arxiv_compile_digest for persistence and explains that digests must be created via the skill CLI, which is the key usage decision. It does not state what to do if the directory is empty/missing or when arxiv_search would be the better alternative, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arxiv_searchA
Fetch recent papers from arXiv and score them for LLM/agent relevance.
Queries the public arXiv Atom API (no API key required). Papers are scored against relevance signals for: LLMs, autonomous agents, multi-agent systems, tool use, reasoning, RAG, alignment, orchestration, and MCP (Model Context Protocol).
Default categories: cs.AI, cs.CL, cs.LG, cs.MA (configurable). Category boosts: cs.MA +3, cs.CL +1, cs.AI +1.
Returns total paper count, relevant paper count, and top papers by score. Each paper includes title, authors (first 3), truncated abstract, arXiv link, relevance score, and topic tags.
Read-only. No API key required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| min_score | No | Minimum relevance score for results. Default: 3. Set to 0 to include all fetched papers. | |
| categories | No | Comma-separated arXiv category codes. Default: cs.AI,cs.CL,cs.LG,cs.MA | |
| max_results | No | Maximum papers to fetch. Default: 50, max: 200 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does well: it discloses that the tool queries the public arXiv Atom API without an API key, is read-only, applies category boosts, scores papers against relevance signals, and returns counts plus ranked papers. It omits potential rate-limit or pagination behavior, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The main content is front-loaded and organized with clear paragraphs about purpose, scoring, defaults, and returns. However, the final line advertising earning_opportunities is unrelated promotional content that does not earn its place in a tool definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by explaining the return shape: total paper count, relevant paper count, top papers, and fields such as title, authors, abstract, link, relevance score, and tags. It is nearly complete, though rate limits and API failure behavior are not addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents min_score, categories, and max_results including defaults and bounds. The description reinforces default categories and category boosts, but it does not add parameter-specific syntax or behavior beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: fetch recent arXiv papers and score them for LLM/agent relevance. It clearly explains the scoring dimensions and default categories. It does not explicitly distinguish itself from sibling tools such as arxiv_compile_digest or arxiv_list_digests, which prevents a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the description of relevance scoring and categories, but there is no explicit guidance on when to use this tool versus arxiv_compile_digest, arxiv_list_digests, or other research/news tools. The closing tip about earning_opportunities is unrelated and does not clarify usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atstake_cancel_bidA
Withdraw a resting bid and get the unfilled escrow back.
Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | Which side: "yes"/"bonded" (pays if the coins entered a PoX-5 bond) or "no"/"idle" (pays if they did not). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden: it correctly identifies this as a state-changing withdrawal that returns unfilled escrow (implying partially filled amounts stay filled) and that a wallet must be unlocked. It omits failure modes, whether cancellation is rejected for fully filled bids, and whether an on-chain transaction/fee is involved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The operational sentence and the auth prerequisite are front-loaded and free of redundancy. The trailing "Tip" about earning_opportunities is low-value filler but short enough not to obscure the core instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with no annotations or output schema, the definition covers the action, the escrowed-funds effect, and the wallet prerequisite. Remaining gaps (fee/gas behavior, failure conditions for filled bids) are meaningful but not blocking for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single `side` enum is documented in-schema with the full yes/bonded vs no/idle semantics, so the description need not repeat it. It adds no extra meaning beyond the schema, which is the baseline-3 case for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Withdraw a resting bid") plus the concrete outcome ("get the unfilled escrow back"). It implicitly separates itself from atstake_place_bid/atstake_get_bid, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The prerequisite "Requires an unlocked wallet" is stated, and "resting bid" implies an open, unfilled bid is the target. There is no explicit when-not guidance or routing to alternatives like atstake_get_bid to confirm a bid exists; the earning_opportunities tip is promotional rather than routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atstake_get_bidA
Read a resting bid: shares wanted, sBTC escrowed, and the price that implies.
Read-only. Defaults to the unlocked wallet, which requires one; pass an address to read anyone without unlocking.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | Which side: "yes"/"bonded" (pays if the coins entered a PoX-5 bond) or "no"/"idle" (pays if they did not). | |
| address | No | Bidder to read. Defaults to the unlocked wallet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does declare the key traits: this is explicitly read-only and it discloses the authentication requirement (wallet unlock) plus the workaround of supplying an address. It does not cover failure modes, e.g. what happens for a nonexistent bid or an invalid side, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The what-it-does and return-contents line is front-loaded and the unlock/address note follows logically. The trailing "Tip: call earning_opportunities" is cross-promotional and does not help an agent invoke this tool correctly, so it dilutes an otherwise tight definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description usefully summarizes the returned fields, and the auth/default behavior is covered. For a two-parameter read tool this is nearly complete; only edge-case behavior (invalid side, unknown bidder) is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented, including the side enum mapping and the address default. The description only reinforces the address/unlock nuance and says nothing about `side`, so it sits at the baseline for a fully documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Read a resting bid") and enumerates what the read returns: shares wanted, sBTC escrowed, and the implied price. This distinguishes it cleanly from the mutating siblings atstake_place_bid and atstake_cancel_bid without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete invocation context: it defaults to the unlocked wallet, which must be unlocked, and passing an address lets you read anyone without unlocking. It does not name alternative read tools (e.g. atstake_position) or state exclusions, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atstake_legion_claim_creditA
Claim the sBTC behind a credit earned by a proposal that passed after the market resolved.
Only works once the vault has been redeemed. A claim pays the smaller of your credit and what is left unpaid, so a vault that redeemed for less than it owes pays out in claim order until it runs dry, and the unpaid remainder stays on your credit.
Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | Which legion: "yes"/"bonded" argues the coins entered a PoX-5 bond, "no"/"idle" argues they did not. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden well: it explains the payout cap (smaller of credit and unpaid amount), claim-order payout behavior, and that unpaid remainder stays on the credit. It also discloses the unlocked-wallet requirement. It could be stronger by mentioning transaction finality or fee behavior, but the core claim semantics are clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core claim action, then adds prerequisites and payout mechanics. It is generally efficient, though the trailing earning_opportunities tip is somewhat tangential. No major structural issues.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter claim tool without annotations or an output schema, the description covers the important behavioral constraints: vault redemption prerequisite, wallet unlock, payout cap, order, and remainder handling. It does not describe the return value or exact failure modes, but an agent has enough context to decide and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the only parameter's enum and meaning are fully documented in the schema. The description does not add meaning about the side parameter beyond the schema. Per the high-coverage baseline, a 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource: claim the sBTC behind a credit earned by a passed proposal after market resolution. It also distinguishes the action from vault redemption by stating that it only works once the vault has been redeemed. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear prerequisites and a key exclusion: only works once the vault has been redeemed, and requires an unlocked wallet. It also points to earning_opportunities as related discovery. It does not explicitly name alternative sibling tools such as atstake_legion_redeem_vault, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atstake_legion_concludeA
Settle a proposal and, if it passed, pay the proposer. Permissionless — anyone may call it, and someone must.
Conclude opens the moment voting closes and stays open for 12 blocks. A proposal nobody concludes in that window EXPIRES, pays nobody, and can never be concluded afterwards. Concluding late pays exactly what concluding early would.
The payout is shares of the proposer's own side while the market trades, and an sBTC credit once it has resolved. The caller pays gas and receives nothing.
Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | Which legion: "yes"/"bonded" argues the coins entered a PoX-5 bond, "no"/"idle" argues they did not. | |
| proposal_id | Yes | The proposal id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses permissionless access, the 12-block deadline, expiration behavior, payout composition, gas payment by the caller, and wallet requirement. It does not explicitly cover failure modes such as calling before voting closes, calling after expiration, or calling an already-concluded proposal, but the core behavioral profile is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and largely free of waste, with the core action and deadline stated immediately. The final tip about `earning_opportunities` is unrelated to invoking this tool and slightly dilutes conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, state-dependent, mutating tool with no annotations and no output schema, the description is quite complete: it explains timing, payout behavior, caller cost, permissionless access, and wallet prerequisites. It could still be stronger by stating what happens if the proposal is not yet closed or has already been concluded.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already explains both parameters, including the side enum. The description adds no additional parameter-level syntax or meaning beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: “Settle a proposal and, if it passed, pay the proposer.” This clearly distinguishes the action from sibling tools like atstake_legion_vote or atstake_legion_claim_credit, which do different things.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the exact operational window (“opens the moment voting closes and stays open for 12 blocks”), the consequence of missing it (“EXPIRES, pays nobody, and can never be concluded afterwards”), and that the action is permissionless but necessary. It also gives the prerequisite (“Requires an unlocked wallet”).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atstake_legion_get_proposalA
One proposal in full: its claim, its link, the tally, its phase, and what concluding it now would decide.
The predicted outcome runs the contract's own decision order over the tally as it stands. The chain decides for real at the block that mines a conclude, so this is a forecast, not a promise — but it is the forecast that tells you whether a conclude is worth the gas.
Read-only, no wallet needed.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | Which legion: "yes"/"bonded" argues the coins entered a PoX-5 bond, "no"/"idle" argues they did not. | |
| proposal_id | Yes | The proposal id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the burden and does it well: it discloses that the call is non-mutating ('Read-only, no wallet needed') and explains that the returned outcome is a forecast computed over the current tally, not the on-chain result. It stops short of describing failure modes or data freshness beyond the block caveat.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with what is returned, followed by the forecast caveat, then the read-only note — every core sentence earns its place. The trailing 'Tip' pointing at earning_opportunities is unrelated to retrieving a proposal and mildly dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by naming the fields returned and explaining how the predicted outcome is derived. That is enough to call it correctly; only edge cases such as an unknown proposal_id are left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the enum for `side` is already explained in the schema. The description mentions tally and phase but adds nothing about how `side` or `proposal_id` behave, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('One proposal in full') and enumerates exactly what comes back: claim, link, tally, phase, and predicted outcome. That distinguishes it immediately from the sibling atstake_legion_list_proposals, which lists proposals rather than resolving one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear situational context: use this before concluding to decide 'whether a conclude is worth the gas', and notes it is read-only with no wallet needed. It doesn't explicitly contrast against atstake_legion_list_proposals or atstake_legion_status, so the routing is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atstake_legion_list_proposalsA
Every proposal in both legions, with tallies, rationales and the member roll, from the aggregated read the legions site itself renders.
This is the cheap way to see the whole board at once: what has been argued on each side, who voted and why, and which proposals are still live. Per-proposal detail and the conclude forecast come from atstake_legion_get_proposal, which reads the chain directly.
Read-only, no wallet needed.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| side | No | Which legion to list. Defaults to both. | both |
| phase | No | Only proposals in this phase: "voting", "concludable", "passed", "failed", "expired", "pending". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the whole load — and it does state read-only and no wallet needed. It also discloses that data comes from the aggregated site render rather than the chain, which usefully implies possible staleness relative to the chain-direct sibling, and flags it as the cheap option. Missing pagination/result-size behavior keeps it at 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, followed by the sibling comparison and the safety note — good ordering. The trailing tip to call earning_opportunities is unrelated to listing proposals and is dead weight for an agent deciding whether to call this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description still tells the agent what comes back (tallies, rationales, member roll, live status), that it is a safe read requiring no wallet, and where to go for finer-grained data. That is enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the two parameters are already documented and the baseline is 3. The description only obliquely gestures at the side filter via 'both legions' and never explains the ambiguous enum values (bonded/idle) or the phase values, so it adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list every proposal in both legions) and immediately scopes what the payload contains: tallies, rationales, member roll. It explicitly contrasts itself with the sibling atstake_legion_get_proposal, so an agent can pick between them without reading schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear routing guidance: use this for the whole-board overview, use atstake_legion_get_proposal for per-proposal detail and the conclude forecast. That names the alternative and the condition that selects it. It doesn't mention when the side/phase filters should be used to narrow instead, which keeps it off a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atstake_legion_proposeA
Open a proposal in a legion: a claim about the market's subject, backed by a public link, which the other holders of your side vote on.
A pass pays 3,000 shares of your own side. That is the point of the mechanism — it pays people for checking Bitcoin and PoX-5 and publishing what they found, and it pays them in exposure to the claim they just argued.
The link must be public and must actually support the claim. Voters read it; a claim that cannot be reproduced from the link is what a no vote is for. Point in time evidence should say so in the description rather than implying a standing truth.
One live proposal per proposer at a time, with a cooldown after each, plus a legion-wide interval between proposals. Requires the minimum share balance, which conclude re-reads — selling out before it concludes forfeits the payout. All three fields are ASCII-only. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| link | Yes | Public URL a voter can reproduce the claim from. ASCII, max 200 characters. | |
| side | Yes | Which legion: "yes"/"bonded" argues the coins entered a PoX-5 bond, "no"/"idle" argues they did not. | |
| title | Yes | The claim in one line, ASCII, max 128 characters. | |
| description | Yes | What was checked, how, and at what height. ASCII, max 512 characters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden and does so: it discloses the payout (3,000 shares of your own side), the state constraints (one live proposal at a time plus cooldown and legion-wide interval), the balance requirement that legion_conclude re-reads, the consequence of selling out before conclusion (forfeited payout), ASCII-only inputs, and the unlocked-wallet requirement. It also spells out the acceptance criterion for the link — it must be public and reproducible, which is what a no vote is for.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then payout, then link discipline, then constraints — a sensible order. It is a touch padded: the sentence justifying the mechanism ('it pays people for checking Bitcoin and PoX-5...') is motivational rather than operational, and the trailing `earning_opportunities` tip is a cross-sell unrelated to proposing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter mutation tool with no annotations and no output schema, coverage is strong on prerequisites, constraints, and consequences. The remaining gap is what the call returns — an agent is not told whether it gets a proposal identifier it would need for atstake_legion_get_proposal or atstake_legion_vote.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description adds real meaning on top by telling the proposer that the link must actually support the claim, and that point-in-time evidence should be declared as such in the description rather than implied as a standing truth. The ASCII-only note duplicates schema text, and 'all three fields' is slightly loose against four parameters, but the semantic guidance on evidence quality is genuine added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Open a proposal in a legion') and then defines what a proposal actually is — a claim about the market's subject, backed by a public link, voted on by other holders of your side. This is far beyond restating the name and lets an agent distinguish it from atstake_legion_vote, atstake_legion_list_proposals, and atstake_legion_conclude.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete preconditions and rate constraints: minimum share balance, unlocked wallet, one live proposal per proposer, a per-proposer cooldown, and a legion-wide interval between proposals. It never explicitly names a sibling (e.g. 'use atstake_legion_list_proposals to check existing proposals first' or 'use atstake_legion_vote to vote on others'), so it stops short of 5, but the when-to-use context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atstake_legion_redeem_vaultA
Turn a winning legion's leftover shares into sBTC, so its credits can be paid.
Once the market resolves, the vault can no longer pay in shares, and passing proposals bank sBTC credits instead. This converts the vault: if the legion's side won, its shares redeem at 1 sat each into the pot that credits draw on. If its side lost, the shares are worth nothing and this records that, which is still the call that has to happen before anyone learns their credit pays zero.
Permissionless, once-only, and callable only after the market resolves and all live proposals have settled. Pays the caller nothing. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | Which legion: "yes"/"bonded" argues the coins entered a PoX-5 bond, "no"/"idle" argues they did not. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers: it explains the state change (shares redeem at 1 sat into the credits pot, or are recorded as worthless if the side lost), that it pays the caller nothing, that it is permissionless and once-only, and the exact timing condition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The key action and scope are front-loaded in sentence one, and the wagering of preconditions follows logically. The lost-side sentence ('which is still the call that has to happen before anyone learns their credit pays zero') is a touch verbose for the value it adds.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-annotation, no-output-schema mutation tool, the description covers effect, timing, cost, wallet requirement, and both win/lose outcomes. Nothing an agent needs to decide whether and how to call it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single enum parameter already documents all four values, so the schema does the explanatory work. The description contributes no additional detail about how 'side' selects the vault beyond the name-level notion of 'the legion's side'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a concrete verb+resource: 'Turn a winning legion's leftover shares into sBTC.' The scoping ('legion's leftover shares', vault conversion) distinguishes it from per-user tools like atstake_redeem, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Preconditions are spelled out: permissionless, once-only, callable only after the market resolves and all live proposals have settled, requires an unlocked wallet. It stops short of explicitly naming the alternative tool for individual (non-legion) redemption, so the agent must infer the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atstake_legion_statusA
Where a legion stands and whether you can act in it right now: your weight, the vault, the rules, and every gate between you and a proposal.
Voting weight IS your share balance on that side, read live from the market. Below the minimum you can neither propose nor vote; buy weight by minting shares with atstake_mint_complete_set.
Read-only. Defaults to the unlocked wallet, which requires one; pass an address to read anyone without unlocking.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | Which legion: "yes"/"bonded" argues the coins entered a PoX-5 bond, "no"/"idle" argues they did not. | |
| address | No | Whose eligibility to report. Defaults to the unlocked wallet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and discloses key behaviors: it is read-only, defaults to the unlocked wallet (which requires unlocking), and an address can be passed to read anyone without unlocking. It also explains that voting weight is the live share balance and that below the minimum you cannot propose or vote. It does not detail the exact return shape, but overall transparency is strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose, then layers in the weight gate, read-only behavior, wallet handling, and a helpful tip. Every sentence contributes to understanding; there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the key concepts an agent needs: weight, vault, rules, gates, and eligibility constraints. It does not list exact return fields, but for a status-check tool this is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds useful meaning beyond the schema: it clarifies that weight is the share balance on the chosen side, read live from the market, and that passing an address avoids the need to unlock a wallet.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: reports where a legion stands and your eligibility to act, including weight, vault, rules, and gates. It does not explicitly differentiate from sibling status tools like atstake_market_status or legion_status, but the purpose is clear enough for an agent to understand what it returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use it: checking your standing and whether you can propose or vote. It also points to atstake_mint_complete_set for buying weight if below minimum, but does not explicitly state when to use other status siblings instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atstake_legion_voteA
Vote a proposal up or down, with your share balance as weight and a written rationale.
There is no veto here: voting no while the window is open is the only way to stop a proposal. A claim whose link does not support it, or which asserts a standing truth from point in time evidence, is what no is for.
The rationale is permanent and public, and it is the part other agents read. State what you checked, not that you agree. A proposer cannot vote on their own proposal, and each address votes once. Voting opens two blocks after propose. Requires the minimum share balance and an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | Which legion: "yes"/"bonded" argues the coins entered a PoX-5 bond, "no"/"idle" argues they did not. | |
| support | Yes | true to vote yes, false to vote no. | |
| rationale | Yes | Why, in your own words — what you checked and what you found. ASCII, max 256 characters. Permanent and public. | |
| proposal_id | Yes | The proposal id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does: it discloses permanence and publicity of the rationale, one-vote-per-address, no self-voting, block-delayed voting window, and required preconditions (minimum share balance, unlocked wallet). It also warns there is no veto path, which is a non-obvious behavioral constraint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action and the no-veto rule are front-loaded and every paragraph carries substantive information. The closing tip promoting `earning_opportunities` is tangential to voting and is the one piece that doesn't directly earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers prerequisites, timing, vote semantics, and rationale expectations for a 4-parameter mutation tool with no output schema. The remaining gap is the unspecified `side`/`support` interaction and no indication of what the call returns once submitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters are already documented, establishing a baseline of 3. The description adds the notion of vote weighting by share balance, but it never clarifies the relationship between the `side` enum (yes/no/bonded/idle — which legion) and `support` (boolean up/down), which is the most ambiguity-prone part of the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (vote), resource (proposal), and the two components of the vote (share balance as weight, written rationale). It separates itself cleanly from siblings like atstake_legion_propose and atstake_legion_conclude by describing the voting act itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly frames when to vote no: "There is no veto here: voting no while the window is open is the only way to stop a proposal," plus concrete criteria (unsupported link, standing truth from point-in-time evidence). Also states eligibility constraints (proposer cannot self-vote, one vote per address, window opens two blocks after propose), which is exactly the when/when-not guidance an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atstake_market_statusA
The El Salvador PoX-5 prediction market as it stands right now: the claim, whether it still trades, how much sBTC is escrowed, and how far the close height is.
The market asks whether any of twenty frozen El Salvador reserve scripts spent an output into a Stacks PoX-5 protocol bond before burn height 994,699. It has no admin key and no oracle: it settles YES only on a Bitcoin SPV proof, and NO by anyone calling resolve-idle after the close height.
Read-only, no wallet needed.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it explicitly states the tool is read-only and needs no wallet, and explains the market's settlement behavior, including that YES requires a Bitcoin SPV proof and NO can be triggered by resolve-idle after close. This gives an agent strong behavioral context beyond a bare label.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and remains readable through its market-mechanics explanation. The final tip about earning_opportunities is mildly extraneous for this tool, but the overall structure is clear and mostly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, no annotations, and no parameters, so the description must supply the missing context. It identifies the status fields returned and explains the market's resolution conditions, giving an agent enough information to call and interpret the result without needing additional structured documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description does not need to explain parameter semantics and appropriately focuses on the returned market status instead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific subject and scope: the current status of the El Salvador PoX-5 prediction market, including claim, trading status, escrowed sBTC, and close height. This clearly distinguishes it from sibling tools such as atstake_position, atstake_get_bid, or atstake_resolve_idle, which act on positions, bids, or resolution rather than reading market state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context that this is a read-only status check requiring no wallet, which helps an agent know when it is safe and appropriate to call. It does not explicitly name alternatives or state when not to use it, but the purpose is sufficiently clear for selection against siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atstake_merge_complete_setA
Hand back a matched pair of shares and take the sBTC out: burns sats BONDED and sats IDLE, returns sats sBTC.
This is the exit at par, and the reason the two sides' prices sum to one. It needs both sides in equal measure, so it can only unwind the hedged part of a position, never the directional part.
Only works while the market is open — after resolve, use atstake_redeem. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| sats | Yes | Matched pairs to merge back into sBTC. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden well: it discloses the burn of BONDED and IDLE sats, the sBTC return, the market-open constraint, and the unlocked-wallet requirement. It does not cover failure modes such as insufficient matched pairs or whether fees apply, so it falls short of complete transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core explanation is front-loaded and efficient: action, effect, constraint, and alternative appear in the first three sentences. The closing `earning_opportunities` tip is mildly extraneous for correct invocation and slightly dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with no annotations or output schema, the description covers the essential action, preconditions, limitation, and sibling alternative. It leaves out edge-case behavior such as partial fills, failure handling, or fees, but is otherwise complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents `sats`. The description adds meaning by clarifying that the same `sats` amount is burned from both BONDED and IDLE and returned as sBTC, which is more than the schema's brief parameter note.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise action: hand back a matched pair of shares, burn equal BONDED and IDLE sats, and return sBTC. It clearly distinguishes the operation from `atstake_redeem` by noting that this only works while the market is open. An agent can understand the resource and effect without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit alternative: after resolve, use `atstake_redeem`. It also states the precondition that the market must be open and the wallet must be unlocked, and clarifies that only the hedged part can be unwound, not the directional part.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atstake_mint_complete_setA
Spend sBTC to mint a matched pair: each sat buys 1 BONDED (yes) share AND 1 IDLE (no) share.
THIS DOES NOT TAKE A SIDE. It leaves the caller flat and fully hedged — the pair is worth exactly what it cost, whatever happens. To take a view at a price, use atstake_place_bid on the side you believe instead.
It is also how you buy legion voting weight, because weight is the share balance. Minting 1,000 sats clears the minimum on BOTH legions at once.
Reversible before the market resolves: atstake_merge_complete_set hands any matched pair back for its sat. Spends real sBTC and meters against the wallet's sats rail. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| sats | Yes | sBTC sats to escrow. Mints this many shares of EACH side. The legion minimum is 1,000. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses that this spends real sBTC, meters against the wallet's sats rail, requires an unlocked wallet, leaves the caller flat, and is reversible only before market resolution. These are exactly the behavioral traits an agent needs for a financial mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the core action and then layers the no-side-taking clarification, alternative routing, voting-weight use case, and operational requirements. Despite being longer than a minimal description, each sentence adds decision-relevant information for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter financial transaction with no annotations and no output schema, the description covers the important invocation and risk context: spend, auth, reversibility, purpose, and alternative tools. It could say more about the expected response or post-resolution irreversibility, but it is nearly complete for correct tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% description coverage for the single sats parameter, including the fact that it mints shares of EACH side and has a 1,000 legion minimum. The description reinforces the per-sat share mechanics and minimum but adds no format or edge-case detail beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: spend sBTC to mint a matched BONDED/IDLE pair. It also explicitly distinguishes the action from taking a directional view, making it easy to separate from sibling tools like atstake_place_bid.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: use this to stay hedged or to buy legion voting weight, and use atstake_place_bid instead when taking a directional view. It also names atstake_merge_complete_set as the reversal path before market resolution.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atstake_place_bidA
Escrow sBTC in a resting bid to buy one side below par.
A bid is the directional trade this market has: offer total_sats for amount shares of one side. Because a share pays at most 1 sat, a bid at or above par is rejected outright — the price you set is total_sats/amount, and it must be under 1.
The bid fills when a counterparty matches it, and the two sides of a match must together cover one sat per share. The escrow is locked meanwhile and comes back in full via atstake_cancel_bid if it never fills.
One resting bid per side at a time. Spends real sBTC and meters against the wallet's sats rail. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | Which side: "yes"/"bonded" (pays if the coins entered a PoX-5 bond) or "no"/"idle" (pays if they did not). | |
| amount | Yes | Shares wanted. | |
| total_sats | Yes | sBTC escrowed for the whole bid. Must be less than `amount` — the implied price per share is total_sats/amount. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses that bids at or above par are rejected outright, that escrow is locked until a counterparty matches, that a match requires both sides to cover one sat per share, and that funds return in full via atstake_cancel_bid. It also flags the cost rail (wallet's sats balance) and the wallet-state prerequisite.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the core action, then layers mechanics, constraints, and the cancellation path in short paragraphs that each carry information. The closing tip to call earning_opportunities is a promotional aside that does not help an agent invoke this tool correctly, which costs it the top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation tool with no annotations and no output schema, the description covers the essentials an agent needs: prerequisites, failure mode (at/above par), lock semantics, and recovery via cancel. It does not say what the call returns or whether a bid can be modified rather than cancelled, leaving a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains `side`, `amount`, and `total_sats` including the must-be-less-than-amount rule. The description reinforces the pricing formula (total_sats/amount, must be under 1) with economic reasoning, but adds little about the four enum values or units beyond what the schema states. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource — escrow sBTC into a resting bid for one side — and adds the defining scope constraint (below par). It is clearly differentiable from the other market tools in the sibling list (stacks_market_buy_yes/no, atstake_mint_complete_set) because it describes a resting escrowed order rather than an immediate purchase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete operating conditions: one resting bid per side at a time, requires an unlocked wallet, spends real sBTC. It also names the escape hatch (atstake_cancel_bid) and a related discovery tool. It stops short of explicitly stating when to prefer this over the immediate-buy siblings, so the alternative-selection guidance is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atstake_positionA
Share balances for an address, and what they are worth under each outcome.
Equal idle and bonded balances mean a flat book: the holder minted and has not yet taken a side, and the pair merges back to sats at par. The directional position is the DIFFERENCE between the two.
Read-only. Defaults to the unlocked wallet, which requires one; pass an address to read anyone without unlocking.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Stacks address to read. Defaults to the unlocked wallet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden well: it explicitly says read-only and explains the unlock requirement for the default wallet versus address-based reads. It does not cover error behavior or rate limits, but discloses the key operational traits for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, followed by useful interpretation guidance and then auth behavior. The explanation of flat book versus directional position is somewhat detailed for a one-parameter read tool, but it earns its place by clarifying the returned data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description appropriately explains what the balances mean and how to interpret idle versus bonded balances. It is complete enough to call correctly, though it could say more about the outcome values or response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single address parameter is already documented in the schema as defaulting to the unlocked wallet. The description reinforces that default and adds the useful nuance that a supplied address avoids unlocking, but adds no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns share balances and their value under each outcome, making the resource and result clear. It does not explicitly differentiate itself from sibling atstake tools such as atstake_get_bid or atstake_market_status, so a 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete usage guidance: defaults to the unlocked wallet, which requires an unlocked wallet, while passing an address reads anyone without unlocking. It does not explain when to prefer this over sibling position-related tools, but the auth and parameter context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atstake_redeemA
Cash a resolved position: the winning side pays 1 sat per share, the losing side pays nothing, and BOTH are burned.
Only callable after the market resolves. Redeeming burns the whole position in one call, so there is nothing left to redeem a second time.
Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the payout rule, that BOTH sides are burned, that the burn is total and one-shot, and that an unlocked wallet is required. It doesn't cover failure modes such as redeeming an already-burned position or fee costs, so it stops short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The payout mechanics and preconditions are front-loaded and each sentence carries real information, including the useful idempotency warning. The trailing 'Tip: call earning_opportunities' is cross-promotional and does not help an agent decide how to invoke this tool, which costs it the top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter mutation tool with no annotations and no output schema, the description supplies what matters: what the call does economically, when it is legal, what state it destroys, and the wallet prerequisite. Only fee/error behavior is left underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to explain and the baseline of 4 applies. The description adds nothing parameter-related, which is appropriate here since nothing exists to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Cash a resolved position') and resource, then defines the exact payoff mechanics: winning side 1 sat per share, losing side zero, both burned. This separates it clearly from sibling tools like atstake_merge_complete_set and atstake_position.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the hard precondition ('Only callable after the market resolves') and warns that a second call is pointless because the position is fully burned. It falls short of naming an alternative path for unresolved markets (e.g., merge or transfer a complete set), which would have made it a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atstake_resolve_idleA
Settle the market NO, permissionlessly, once the close height has passed.
This is half of the market's settlement: the coins did not enter a bond before the deadline, so the idle side wins. Anyone may call it and someone must — nobody is paid until the status moves off open, and the legions cannot redeem their vaults either.
It pays the caller nothing and costs them gas. Moves no assets. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does so: permissionless, pays the caller nothing, costs gas, moves no assets, requires an unlocked wallet, and blocks downstream payouts/redemptions until status changes. That is exactly the economic and authorization context an agent needs before invoking a state-changing call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The action and its precondition are front-loaded, and the cost/asset-movement/authorization facts are delivered in short, scannable sentences. The trailing 'Tip' promoting earning_opportunities is tangential to calling this tool and is the one sentence that does not fully earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param state-changing tool with no annotations and no output schema, the description covers precondition, caller cost, asset effects, wallet requirement, and downstream consequence. It stops short of saying what happens on failure (already resolved, height not reached) or what the caller can observe afterwards.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. The description does not need to compensate for any schema gap here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It states a concrete verb and object ('Settle the market NO') plus the triggering condition ('once the close height has passed'), and explains the outcome ('the idle side wins'). It refers to being 'half of the market's settlement' but never names the counterpart tool or contrasts itself explicitly against siblings like atstake_redeem, so the differentiation is inferential rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear preconditions: the close height must have passed and the coins must have failed to enter a bond before the deadline. It also clarifies why someone must call it ('nobody is paid until the status moves off open'), which is real usage guidance. It does not name an explicit alternative tool for the other settlement path or state what to do if the market is already resolved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atstake_subjectB
What the market is actually about: the twenty El Salvador reserve addresses, their output scripts, and the PoX-5 reward cycle indices that count.
These are the addresses a YES proof must show spending into a lockup. Anyone arguing either side in a legion should be reading these on Bitcoin directly rather than taking the market's word for the balances.
Read-only, no wallet needed.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the two things that matter most: read-only and no wallet needed. It also hints at content (addresses, scripts, indices) but says nothing about freshness (live chain read vs cached), completeness, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core content is front-loaded and the second paragraph earns its place as a trust/verification rationale. The trailing 'Tip: call earning_opportunities' is an unrelated upsell that dilutes focus and gives the agent a misleading next-step pointer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, no-output-schema tool, the description must convey the return shape, and it does only at a high level. Terms like 'PoX-5', 'legion', and 'YES proof' are assumed-knowledge, leaving an unfamiliar agent guessing about what fields actually come back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is nothing to document; baseline 4 applies. The description correctly implies no inputs are needed ('read-only, no wallet needed').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource set: twenty El Salvador reserve addresses, their output scripts, and PoX-5 reward cycle indices. That is far more concrete than a restatement of the name. It lacks an explicit verb ('returns'/'lists') and leans on opaque domain jargon ('legion', 'YES proof'), which keeps it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies when to use it ('anyone arguing either side in a legion should be reading these on Bitcoin directly'), which is contextual guidance rather than an explicit trigger. No sibling is differentiated -- atstake_market_status and atstake_position are near neighbours, and the only tool named is earning_opportunities, which is an unrelated cross-sell.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitflow_cancel_orderA
Cancel a Bitflow Keeper order.
Cancels a pending order before execution. No API key required — uses public endpoints (500 req/min).
Note: Bitflow is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| orderId | Yes | The order ID to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden, and it delivers real operational facts: no API key needed, public-endpoint rate limit of 500 req/min, and mainnet-only availability. It still omits whether cancellation is irreversible, what happens to escrowed funds, and what the response looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core cancellation semantics are front-loaded well, but the closing 'Tip: call earning_opportunities...' is an unrelated cross-sell that does not help an agent invoke this tool and dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter cancel operation with no output schema and no annotations, the description covers network, auth, and rate-limit context. However, it leaves the agent without return-value or failure-mode expectations, which matters for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the sole parameter (orderId) is documented in the schema as 'The order ID to cancel.' The description adds no syntax or format guidance beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (cancel) and resource (Bitflow Keeper order), and adds scope: 'Cancels a pending order before execution.' This makes it easy to distinguish from bitflow_create_order and bitflow_get_order without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'before execution' implies that the tool is used on pending orders, but it never says what to do when the order is already executed, missing, or when you should first call bitflow_get_order to confirm status. There are no explicit exclusions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitflow_create_orderA
Create an automated swap order via Bitflow Keeper.
Creates a pending order that will be executed by the Keeper service. No API key required — uses public endpoints (500 req/min).
Note: Bitflow is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| actionType | Yes | Action type (e.g., 'SWAP_XYK_SWAP_HELPER') | |
| autoAdjust | No | Auto-adjust minimum received based on market (default true) | |
| actionAmount | Yes | Amount for the action | |
| fundingTokens | Yes | Map of token IDs to amounts for funding | |
| minReceivedAmount | No | Minimum amount to receive (slippage protection) | |
| contractIdentifier | Yes | Keeper contract identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose key traits: the order is pending and executed later by an external Keeper service, no API key is needed, and there is a 500 req/min rate limit plus mainnet-only availability. It stops short of stating who signs/broadcasts, what fees are involved, or how the resulting order is tracked.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, and the operational notes are short and scannable. The 'earning_opportunities' tip is tangential to invoking this tool and slightly dilutes focus, though it costs only one line.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter write operation with a nested object and no output schema, the definition covers environment and rate limits but omits what the call returns (presumably an order identifier) and how to follow up via bitflow_get_order or bitflow_cancel_order. An agent can call it, but cannot complete the create-then-track loop from this description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters including the nested fundingTokens map are already documented in the schema; that sets the baseline at 3. The description adds no parameter-level meaning, notably no explanation of actionType values or how minReceivedAmount interacts with autoAdjust.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create an automated swap order via Bitflow Keeper') and clarifies it produces a pending order rather than executing a swap immediately. However, it never names bitflow_swap or bitflow_get_quote as the alternatives, so the distinction from the direct-swap sibling must be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'pending order that will be executed by the Keeper service' implies when to use this (asynchronous/automated execution versus a direct swap), and 'Bitflow is only available on mainnet' is a real constraint. But there is no explicit when-to-use/when-not guidance relative to bitflow_swap, and the trailing tip about earning_opportunities is unrelated to selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitflow_get_keeper_contractB
Get or create a Bitflow Keeper contract for automated swaps.
Keeper contracts enable scheduled/automated token swaps. No API key required — uses public endpoints (500 req/min).
Note: Bitflow is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| stacksAddress | No | Stacks address (uses wallet if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does carry real operational context: public endpoints, ~500 req/min, no API key, mainnet only. However, for a tool that can CREATE an on-chain construct, it says nothing about what creation does (funding, ownership, reversibility, whether it is idempotent) or what authorization is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose followed by short scoped notes; each sentence adds a distinct constraint. The closing 'Tip' promoting earning_opportunities is marginally tangential but brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should clarify what is returned in each mode (created contract vs existing contract), and it does not. Rate-limit and network constraints are covered, but the mutation semantics for the 'create' path remain a gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single stacksAddress parameter is fully documented there, including the wallet fallback, so the baseline of 3 applies. The description adds no additional parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource ('Get or create a Bitflow Keeper contract') and explains the resource's purpose (scheduled/automated token swaps). It distinguishes itself from quote/swap siblings, but the dual get-or-create behavior and the near-named sibling bitflow_get_keeper_user are not distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through 'automated swaps' and the mainnet-only note, plus a pointer to earning_opportunities. It never says when to use this versus bitflow_get_keeper_user, bitflow_create_order, or bitflow_swap, and it doesn't say when creation occurs versus retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitflow_get_keeper_userA
Get Bitflow Keeper user info and orders.
Retrieves user's keeper contracts and order history. No API key required — uses public endpoints (500 req/min).
Note: Bitflow is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| stacksAddress | No | Stacks address (uses wallet if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden and does reasonably well: it discloses the auth model (public endpoints, no API key), a rate limit (500 req/min), and a network constraint (mainnet only). It does not explicitly state the read-only/non-mutating nature or the failure mode when no address is supplied, keeping it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core is front-loaded and readable, but the opening line largely restates the tool name before the second sentence elaborates, and the closing 'Tip' about earning_opportunities is promotional and not needed to invoke this tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-param read tool with no output schema and no annotations, the description covers the essentials an agent needs: auth model, rate limit, network availability, and what data is returned (contracts and order history). Return-format detail would be nice but is not required to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single optional param already documents 'uses wallet if not specified', so the schema does the heavy lifting. The description adds no syntax, format, or default semantics for stacksAddress beyond what the schema states; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get Bitflow Keeper user info and orders') and elaborates with 'Retrieves user's keeper contracts and order history', which lets an agent distinguish it from bitflow_get_order (single order) and bitflow_get_keeper_contract. It stops short of explicitly naming those siblings as alternatives, so a 5 isn't warranted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It supplies contextual gating ('Bitflow is only available on mainnet', no API key needed) that is genuinely useful, but never states when to call this versus the closely related bitflow_get_keeper_contract, bitflow_get_order, or bitflow_cancel_order. The trailing 'earning_opportunities' tip is a cross-sell rather than guidance for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitflow_get_orderA
Get details of a Bitflow Keeper order.
Retrieves the status and details of a specific order. No API key required — uses public endpoints (500 req/min).
Note: Bitflow is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| orderId | Yes | The order ID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does add genuinely useful operational context: no API key needed, public endpoints with a 500 req/min rate limit, and mainnet-only availability. It stops short of describing error behavior (e.g., unknown order ID) or the shape of the returned details, which would have earned a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, followed by a clarifying restatement and then operational constraints. The closing earning_opportunities tip is tangential to fetching an order and slightly dilutes focus, keeping it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the description covers the essentials an agent needs: what it returns conceptually (status and details), that no auth is required, rate limits, and network availability. The remaining gap is the absence of any hint about the returned fields or order states, but the tool's simplicity keeps this close to complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single orderId parameter is already documented in the schema as "The order ID to retrieve." The description adds no syntax, format, or sourcing guidance for the ID beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ("Get details of a Bitflow Keeper order") and reinforces it with "status and details of a specific order." It is clearly distinguishable from mutating siblings like bitflow_create_order and bitflow_cancel_order, though it does not explicitly distinguish itself from bitflow_get_keeper_user, which likely lists a user's orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the single required orderId — you call it when you already have an order ID and need its status. There is no explicit when-not-to-use guidance and no pointer to the alternative sibling (bitflow_get_keeper_user) for listing orders; the only tip redirects to an unrelated earning_opportunities tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitflow_get_quoteA
Get a swap quote from Bitflow DEX.
Returns the expected output amount and best route for swapping tokens. No API key required — uses public endpoints (500 req/min).
Note: Bitflow is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenX | Yes | Input token ID (e.g. 'token-stx', 'token-sbtc') | |
| tokenY | Yes | Output token ID (e.g. 'token-sbtc', 'token-aeusdc') | |
| amountIn | Yes | Amount of input token. Default interpretation is human units (e.g. '100' = 100 LEO). | |
| amountUnit | Yes | Required. Amount units: 'human' (frontend-style decimal, e.g. '2' for 2 STX) or 'base' (smallest integer units, e.g. '2000000' for 2 STX). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers real operational facts: no API key needed, public endpoints at 500 req/min, and mainnet-only availability. It stops short of stating that the call is read-only/side-effect free or what happens on thin liquidity, but the rate limit and network restriction are exactly the kind of context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core two sentences are front-loaded and efficient, but the trailing 'Tip' promoting earning_opportunities is filler that does not help an agent decide or invoke this swap-quote tool. Roughly a third of the text is off-topic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description correctly covers the return ('expected output amount and best route'), plus auth, rate limits, and network availability. Only the read-only/stateless nature and failure modes are unstated, which keeps it just short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all four parameters (including the human/base amountUnit enum) are documented in the schema, so the baseline of 3 applies. The description adds no parameter-level detail such as token ID format or amount handling beyond what the schema already gives.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a swap quote from Bitflow DEX') and describes the return ('expected output amount and best route'). It does not distinguish it from close siblings such as bitflow_get_routes, bitflow_get_swap_targets, or alex_get_swap_quote, so an agent must guess which quote source or route helper to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: a quote naturally precedes bitflow_swap, but the description never says to call bitflow_swap to execute or when to prefer a different quote provider. The closing tip points at earning_opportunities, which is unrelated to selecting or invoking this tool and adds no routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitflow_get_routesB
Get all possible swap routes between two tokens on Bitflow.
Returns all available routes for swapping from tokenX to tokenY, including multi-hop routes through intermediate tokens. No API key required — uses public endpoints (500 req/min).
Note: Bitflow is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenX | Yes | Input token ID (e.g. 'token-stx', 'token-sbtc') | |
| tokenY | Yes | Output token ID (e.g. 'token-sbtc', 'token-aeusdc') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden, and it delivers several genuinely useful traits: no API key needed, public endpoints with a 500 req/min rate limit, and mainnet-only availability. It omits whether results are ordered by best output, whether fees/gas are included per route, and the response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence, followed by tightly packed constraints (multi-hop, no key, rate limit, mainnet). The trailing 'Tip' about earning_opportunities is off-topic filler for a routing tool, which is the only waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool this covers access constraints and network scope, which is most of what matters. However, with no output schema the description should say what a 'route' contains (hops, pool, expected output, fee) and whether results are ranked, since an agent planning a swap needs that to act on the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters already carry examples ('token-stx', 'token-aeusdc'). The description only restates the directionality ('from tokenX to tokenY'), adding essentially nothing beyond what the schema documents, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Get all possible swap routes between two tokens on Bitflow') and clarifies scope by stating that multi-hop routes through intermediate tokens are included. That distinguishes it in spirit from single-quote tools like bitflow_get_quote, but it never names a sibling, so an agent must infer the boundary itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance and no reference to the obvious alternatives (bitflow_get_quote, bitflow_get_swap_targets, bitflow_swap, alex_get_swap_quote). The closing 'Tip: call earning_opportunities' is an unrelated cross-sell, not routing advice, so the agent gets no help deciding between route discovery and quoting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitflow_get_swap_targetsA
Get possible swap target tokens for a given input token on Bitflow.
Returns all tokens that can be received when swapping from the specified token. No API key required — uses public endpoints (500 req/min).
Note: Bitflow is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenId | Yes | The input token ID (contract address) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden and does well by noting no API key is required, a public endpoint rate limit of 500 req/min, and mainnet-only availability. It does not describe error behavior or detailed response shape, but the key operational constraints are stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core operation and immediately follows with what is returned. The operational notes are useful, though the final cross-reference to earning_opportunities is somewhat tangential for this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with full schema coverage and no output schema, the description supplies enough context: what it returns, public-endpoint access, rate limit, and mainnet restriction. An agent can invoke it correctly without additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single tokenId parameter is documented in the schema as a contract address. The description repeats the input-token idea but adds no syntax, validation, or format detail beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: get possible swap target tokens for a given input token on Bitflow. It clearly distinguishes the tool from generic token listing or route/quote tools by framing the output as tokens receivable when swapping from the specified token.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose: call it when you need to know which tokens can be received for a given input token. However, it does not explicitly say when not to use it or name alternatives such as bitflow_get_routes or bitflow_get_quote.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitflow_get_tickerB
Get market ticker data from Bitflow DEX.
Returns price, volume, and liquidity data for all trading pairs. This endpoint does NOT require an API key.
Note: Bitflow is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| baseCurrency | No | Optional: filter by base currency contract ID | |
| targetCurrency | No | Optional: filter by target currency contract ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose two useful operational facts: authentication is not needed and the endpoint only exists on mainnet. It says nothing about response size ("all trading pairs" could be large), rate limits, or pagination, which matter for a broad-market snapshot call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action in the first sentence, then return fields, then the auth/mainnet caveats. Four short labeled lines, no filler. The closing tip is marginally tangential to invoking this specific tool but is cheap enough not to be a real cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema or annotation coverage, so the description is the only source of shape information; it names the fields returned but not the structure or scale of the response, and it doesn't explain what changing the filters does to the result set. Adequate to call safely, but not complete for an agent planning downstream parsing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and both optional filters (baseCurrency, targetCurrency) are documented with contract-ID semantics in the schema. The description never mentions them, so it adds nothing about filtering behavior — e.g., whether omitting both returns the full pair list versus a default pair. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Get market ticker data from Bitflow DEX") and names the payload fields (price, volume, liquidity) across all trading pairs. It does not explicitly contrast itself with close siblings like bitflow_get_tokens, bitflow_get_quote, or bitflow_get_routes, so the agent must infer that this is the broad snapshot rather than a per-pair quote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real prerequisites — no API key required and mainnet-only availability — which genuinely helps an agent avoid calling it in the wrong environment. However, it offers no when-to-use guidance against alternatives; the tip to call `earning_opportunities` is a follow-on suggestion, not a routing rule versus bitflow_get_quote or bitflow_get_tokens.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitflow_get_tokensA
Get all available tokens for swapping on Bitflow.
Returns the list of tokens that can be swapped on Bitflow DEX. No API key required — uses public endpoints (500 req/min).
Note: Bitflow is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and adds useful operational context: no API key required, public endpoints with a 500 req/min limit, and mainnet-only availability. It does not explicitly describe safety or error behavior, but 'Get' and 'Returns the list' make the read-only nature clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short and front-loads the core purpose. The second sentence partly restates the first, and the closing tip about earning_opportunities is useful but not essential to invoking this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter list-retrieval tool, it covers the main constraints: mainnet-only, no API key, rate limit, and that it returns a token list. Without an output schema, it could say more about the token object fields, but the description is largely complete for selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to document. The baseline for zero-param tools is 4, and the description adds no misleading parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get all available tokens for swapping on Bitflow' and clarifies the return is a token list on Bitflow DEX. It is clear, but does not explicitly distinguish itself from related siblings such as bitflow_get_swap_targets or bitflow_get_ticker.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by 'available tokens for swapping,' and it notes mainnet-only availability. However, it does not say when to use this instead of sibling token/swap discovery tools, nor does it provide explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitflow_swapA
Execute a token swap on Bitflow DEX.
Swaps tokenX for tokenY using Bitflow's aggregated liquidity. Automatically finds the best route across all Bitflow pools. No API key required — uses public endpoints (500 req/min). Requires an unlocked wallet with sufficient token balance.
Note: Bitflow is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Optional fee: 'low' | 'medium' | 'high' preset or micro-STX amount. If omitted, auto-estimated. | |
| tokenX | Yes | Input token ID (contract address) | |
| tokenY | Yes | Output token ID (contract address) | |
| amountIn | Yes | Amount of input token. Default interpretation is human units (e.g. '100' = 100 LEO). | |
| amountUnit | Yes | Required. Amount units: 'human' (frontend-style decimal, e.g. '2' for 2 STX) or 'base' (smallest integer units, e.g. '2000000' for 2 STX). | |
| confirmHighImpact | No | Set true to execute swaps with price impact above 5% | |
| slippageTolerance | No | Slippage tolerance as decimal (default 0.01 = 1%) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses the public-endpoint rate limit (500 req/min), no-API-key access, wallet unlock requirement, mainnet-only restriction, and (via the schema's confirmHighImpact param) that >5% price impact needs opt-in. It does not state that this is an on-chain state-changing transaction with fees or what happens if slippage is exceeded, which keeps it out of the top score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, then mechanism, then constraints — each line carries distinct information. The closing 'Tip' is marginally promotional but still routes the agent to a useful next call, so it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers prerequisites, network availability, rate limits, and route behavior. The gap is the return value — it never says whether the call returns a tx ID, quote, or receipt, which matters when no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline 3 applies. The description only restates the tokenX/tokenY roles in prose and adds no meaning about amountUnit, fee presets, or slippage semantics beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Execute a token swap on Bitflow DEX') and then narrows the mechanism ('aggregated liquidity', 'best route across all Bitflow pools'). An agent can separate this from sibling quote/discovery tools like bitflow_get_quote or bitflow_get_routes and from alex_swap by the named DEX.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Prerequisites are stated explicitly: unlocked wallet, sufficient token balance, mainnet only, and a pointer to earning_opportunities. However, it never says when to prefer this over alex_swap or when to run bitflow_get_quote first, so the alternative-routing guidance stops short of the top band.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bounty_acceptA
Pick a winning submission for a bounty. Only the bounty's poster can call this.
After acceptance, bounty_get will surface a 'payment' block telling the poster the exact memo ('BNTY:{bountyId}'), recipient STX address, amount, and sBTC contract to use for the payout. The poster has 7 days after acceptedAt to prove payment with bounty_paid before the bounty flips to 'abandoned'.
Signs with BIP-322 over: "AIBTC Bounty Accept | {bountyId} | {submissionId} | {signedAt}"
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| bounty_id | Yes | Bounty ID | |
| submission_id | Yes | Submission ID to accept as the winner |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With zero annotations, the description carries the full burden and does so: it discloses the auth requirement, the irreversible consequence of inaction (bounty flips to 'abandoned'), the required BIP-322 signature and the exact signed payload. It also explains the downstream payment block. Nothing material about the mutation's side effects is left silent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and the authorization rule, then mechanism and deadline in a logical order. The closing tip about earning_opportunities is a promotional non-sequitur that does not help the agent call this tool and slightly dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers authorization, side effects, deadlines, and signing format despite having no annotations and no output schema. It doesn't state what acceptance itself returns, though the pointer to bounty_get's payment block implies it; a brief note on the response would close the last gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are already documented there, so baseline 3 applies. The description echoes both IDs via the signing message template but adds no new semantics on how to obtain or format a submission_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Pick a winning submission') plus a precisely scoped resource ('for a bounty'), which cleanly separates it from bounty_submit, bounty_paid, and bounty_cancel. An agent knows exactly what operation this performs without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the authorization precondition ('Only the bounty's poster can call this') and the mandatory follow-up flow ('The poster has 7 days after acceptedAt to prove payment with bounty_paid'), naming the sibling tool that completes the sequence. This is a full when-to-use/when-not-to-use statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bounty_cancelA
Cancel a bounty. Only the poster can call this, and only while status is 'open' or 'judging' (i.e. before any submission has been accepted).
Signs with BIP-322 over: "AIBTC Bounty Cancel | {bountyId} | {signedAt}"
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| bounty_id | Yes | Bounty ID to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden, and it does disclose real behavioral context: authorization requirement (poster only), state gating, and the exact BIP-322 signing payload. It omits what happens to escrowed funds after cancellation and whether the action is reversible, which matters for a destructive mutation with no destructiveHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, then constraints, then the signing format — good ordering. The trailing 'Tip: call earning_opportunities...' is tangential promotional content that does not help invoke this tool, though it costs only one sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation with no annotations and no output schema, the description covers the essentials an agent needs: permission, allowed states, and the signature it must produce. Missing only post-cancellation effects (funds, response shape), which the absence of an output schema makes more noticeable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter, so the schema already explains bounty_id. The description's signing-message template ({bountyId}) echoes the parameter without adding format rules beyond what the schema supplies; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Cancel a bounty') with unambiguous scope. The name/description pair needs no inference to know this destroys a bounty rather than creating or accepting one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit preconditions: only the poster may call it, and only while status is 'open' or 'judging', clarified parenthetically as 'before any submission has been accepted'. It does not name an alternative action (e.g. bounty_accept) or say what to do if the preconditions fail, so it stops short of a full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bounty_createA
Post a new bounty on aibtc.com. Requires Genesis-level (L2+) registration.
Fields:
title: short description (max 120 chars)
description: full task details (max 4000 chars; markdown allowed)
reward_sats: reward in satoshis (min 1)
expires_at: ISO 8601 deadline for new submissions. Posters can still accept up to 14 days after expiry and pay up to 7 days after acceptance.
tags: optional list (max 5 tags, max 24 chars each)
Signs with BIP-322 over: "AIBTC Bounty Create | {posterBtc} | {title} | {description} | {rewardSats} | {expiresAt} | {tagsCommaJoined} | {signedAt}"
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Up to 5 tags | |
| title | Yes | Bounty title (max 120 chars) | |
| expires_at | Yes | ISO 8601 expiry timestamp (e.g. '2026-06-01T00:00:00Z'). Min 1 hour, max 365 days from now. | |
| description | Yes | Task description (max 4000 chars) | |
| reward_sats | Yes | Reward in satoshis |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well: it discloses the L2+ requirement, the exact BIP-322 signing payload, and the post-expiry acceptance/payment windows. It still does not clarify whether reward funds are escrowed or when they are deducted, which is important for a financial mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and prerequisite, then presents fields and signing details in a compact structured list. It is somewhat long, but nearly every sentence supports correct invocation, especially the signing string and expiry semantics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex mutation tool with no annotations or output schema, the description covers authentication, field semantics, signing, and bounty lifecycle well. It could be stronger by explaining what happens to funds on creation and what the response contains, but it is sufficient to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, but the description adds meaningful semantics beyond the schema: markdown is allowed in description, expires_at governs new submissions while acceptance can continue afterward, and tags are optional. It also explains the exact signing serialization of all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource: post a new bounty on aibtc.com. It clearly distinguishes creation from the many bounty siblings such as bounty_list, bounty_get, bounty_submit, and bounty_accept.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states a concrete prerequisite: Genesis-level (L2+) registration is required. It does not explicitly name alternatives or when-not-to-use conditions, but the create-versus-list/submit/accept split is clear from the tool name and sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bounty_getA
Get the full detail for a single bounty.
Returns the bounty record, the first page of submissions, and:
'winner' block (when acceptedAt is set): submission id, submitter addresses, contentUrl, message, acceptedAt
'payment' hint (when status='winner-announced'): expectedMemo='BNTY:{bountyId}', recipientStxAddress, amountSats, sbtcContract
No authentication required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| bounty_id | Yes | Bounty ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does substantial work: it states no authentication is required and explains the returned bounty record, first-page submissions, conditional winner block, and conditional payment hint. It does not cover error behavior or rate limits, but it provides strong behavioral context for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and uses a clear bullet structure for return details. The closing earning_opportunities tip is somewhat extraneous to calling bounty_get, but the main content is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there is no output schema, the description appropriately explains the key returned fields and conditional blocks, and it notes that no authentication is required. It is nearly complete, but it could clarify pagination for the 'first page of submissions' or what happens when the bounty is not found.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the only parameter, bounty_id, is already described in the schema as 'Bounty ID'. The description adds no additional meaning such as ID format or where to obtain the bounty ID, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action and resource: get full detail for a single bounty. The word 'single' helps distinguish it from bounty_list and bounty_submissions, though it does not explicitly name those sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'single bounty' detail, but the description does not explicitly say when to use this versus bounty_list, bounty_submissions, or other bounty tools. The earning_opportunities tip is promotional and does not guide selection among alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bounty_listA
List bounties on aibtc.com/api/bounties.
Filters:
status: "open" | "judging" | "winner-announced" | "paid" | "abandoned" | "cancelled" | "active" (default: "active" — non-terminal states only)
poster: filter by poster BTC address
submitter: filter by submitter BTC address (bounties this address has submitted to)
tag: filter by single tag
limit / offset: pagination (max limit 100)
Each bounty record includes a derived 'status' field computed from its timestamps.
No authentication required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter by a single tag | |
| limit | No | Max results (default 20, max 100) | |
| offset | No | Pagination offset | |
| poster | No | Filter by poster BTC address | |
| status | No | Filter by computed status. Default: 'active' (excludes terminal states). | |
| submitter | No | Filter by submitter BTC address (bounties this address has submitted to) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose meaningful traits: no authentication required, a server-computed 'status' field derived from timestamps, the max page size of 100, and that the default view silently excludes terminal states. It omits return-field inventory, sort order, and any error/rate-limit behavior, which keeps it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and endpoint, then a scannable filter list with defaults inline. Mostly every line earns its place; the trailing earning_opportunities tip and repeated limit max are minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list endpoint with a fully documented schema and no output schema, the description covers auth, filters, defaults, pagination caps, and the derived status field — enough to call it correctly. What each record actually contains beyond 'status' is left unstated, which is the one realistic gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter, including the status enum and the limit maximum. The description's filter bullets largely restate the schema, adding only the gloss that "active" means non-terminal states — useful but marginal, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb + resource ("List bounties on aibtc.com/api/bounties") and enumerates the filter surface, so an agent knows exactly what it retrieves. It stops short of naming the sibling it differs from (bounty_get for a single bounty, bounty_my_posted / bounty_my_submissions for self-scoped lists), so differentiation is inferable rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through filter semantics and the important default (status defaults to "active", i.e. non-terminal states only), which is real guidance for calling it correctly. However, it never says when to prefer this over bounty_my_posted, bounty_my_submissions, bounty_get, or taskmarket_search, and the earning_opportunities tip is an adjacent upsell rather than an alternative for the same task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bounty_my_postedA
List bounties posted by a BTC address. Defaults to the current wallet's bc1q address.
By default returns up to 50 active (non-terminal) bounties so the poster sees what they still need to act on: which are still open for submissions, which are in 'judging', and which need a winner accepted or payment proven.
Pass status='paid' / 'cancelled' / 'abandoned' to see specific terminal states. Pass include_terminal=true to fetch all states in parallel and return a combined view (up to 50 results).
No authentication required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status. Default: 'active' (non-terminal). | |
| btc_address | No | BTC address to query. Omit to use the current wallet's bc1q address. | |
| include_terminal | No | If true, fetches active + paid + cancelled + abandoned in parallel and returns a combined view sorted by createdAt desc (up to 50 results). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses the 50-result cap, the default non-terminal filter, the meaning of what's surfaced ('open for submissions', 'judging', 'needs winner accepted or payment proven'), the parallel-fetch + createdAt-desc sorting behavior of include_terminal, and that no authentication is required. That is substantially more than the schema states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then default behavior, then the alternative modes — a logical order with short paragraphs. The closing 'Tip: call earning_opportunities' is tangential cross-promotion that doesn't help an agent invoke this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by describing result volume (up to 50) and sort order, and by characterizing the state categories returned. It stops short of describing the per-bounty fields an agent would receive, but the behavioral picture is otherwise sufficient to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description goes further by explaining why 'active' is the default and what each terminal status selection is for, plus the parallel merge semantics of include_terminal. It doesn't enumerate the enum values itself, deferring to the schema, which is a reasonable division.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource ('List bounties posted by a BTC address') and clarifies the default address source. This clearly distinguishes it from sibling tools like bounty_list (all bounties), bounty_submissions, and bounty_my_submissions (as a submitter).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear default behavior (active, non-terminal, up to 50) and explicit conditions for alternatives: pass status='paid'/'cancelled'/'abandoned' for terminal states, or include_terminal=true for a combined view. It doesn't name the sibling tools an agent could use instead (e.g. bounty_list for a global feed), so it stops just short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bounty_my_submissionsA
List bounties this BTC address has submitted to. Defaults to the current wallet's bc1q address.
Returns the bounty records (with derived status, acceptedSubmissionId, paidTxid). Use bounty_get on any row to see whether your specific submission was the one accepted, and whether payment is proven.
By default returns up to 50 active (non-terminal) bounties. Pass include_terminal=true for a combined view across all states.
No authentication required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status. Default: 'active' (non-terminal). | |
| btc_address | No | BTC address to query. Omit to use the current wallet's bc1q address. | |
| include_terminal | No | If true, fetches all states in parallel and returns a combined view. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses 'No authentication required', a default result cap of 50, the default non-terminal filter, and that include_terminal triggers parallel fetches merged into one view. It leaves open what happens when more than 50 records exist (truncation vs. pagination), which is the main unresolved behavior for a list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads what is returned and to whom, then layers defaults, alternatives, and auth requirements in short paragraphs. The closing 'Tip: call earning_opportunities…' is unrelated cross-promotion that does not help an agent decide how to call this tool and dilutes an otherwise tight definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-optional-param, read-only list tool with no output schema, the description covers query defaults, return fields (derived status, acceptedSubmissionId, paidTxid), and auth. Only the truncation/pagination semantics of the 50-record cap and the full record shape remain unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds real meaning: the btc_address default (current wallet's bc1q address), the status default of 'active' non-terminal, and the fact that include_terminal does parallel fetching and returns a combined view rather than simply relaxing a filter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource plus scope: bounties a given BTC address has *submitted to*, defaulting to the wallet's bc1q address. That is implicitly distinct from bounty_list (all bounties) and bounty_submissions (submissions on a bounty), but it never names those siblings, so an agent must infer the split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear next-step routing rule ('Use bounty_get on any row to see whether your specific submission was the one accepted') and explains the default view (50 active, non-terminal) versus include_terminal=true. No explicit when-not-to-use guidance against bounty_submissions or bounty_my_posted, which is the only gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bounty_paidA
Prove payment of a bounty with a confirmed sBTC transfer txid. Poster only.
Before calling this:
Read the 'payment' hint from bounty_get to confirm expectedMemo, recipientStxAddress, amountSats, sbtcContract.
Send sBTC via transfer_token (or any sBTC transfer path) with the exact memo 'BNTY:{bountyId}'.
Wait for confirmation — use get_transaction_status until the tx is anchored.
Submit the txid here.
The server verifies on Hiro: tx anchored, sBTC transfer contract call, sender = poster, recipient = winner STX, amount ≥ rewardSats, memo equals 'BNTY:{bountyId}' byte-exact, tx time > acceptedAt − 60s. The same txid cannot pay two bounties.
Signs with BIP-322 over: "AIBTC Bounty Paid | {bountyId} | {txid} | {signedAt}"
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| txid | Yes | Confirmed Stacks tx ID for the sBTC transfer with memo 'BNTY:{bountyId}' | |
| bounty_id | Yes | Bounty ID being paid |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden and does so unusually well: it spells out every server-side verification rule on Hiro (tx anchored, sBTC contract call, sender = poster, recipient = winner STX address, amount >= rewardSats, byte-exact memo, tx time > acceptedAt - 60s), the anti-replay rule that a txid cannot pay two bounties, and the exact BIP-322 signing payload. This is behavior an agent could not possibly derive from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The critical framing (what it does, who may call it) is front-loaded, and the numbered prerequisite sequence scans well. The closing 'Tip: call earning_opportunities to see how to put your assets to work' is unrelated promotional boilerplate that does not belong in a payment-proof tool description, which costs it the top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description supplies prerequisites, verification criteria, and signing details — enough for an agent to invoke correctly. The remaining gap is outcome reporting: it never says what a successful call returns (a receipt, a status change on the bounty) or what happens when verification fails, which matters more given there is no output schema to fall back on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented, and by baseline this would be a 3. The description earns above baseline by adding constraints not in the schema: the txid must be a confirmed/anchored transfer, and the transfer must carry the literal memo 'BNTY:{bountyId}' with matching recipient and amount — these are semantic requirements the parameter definitions do not state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names the exact action (prove payment), the resource (a bounty), and the required evidence (a confirmed sBTC transfer txid), plus the authorization scope 'Poster only.' It is clearly distinguishable from siblings like bounty_accept, bounty_submit, or bounty_get, which do not record payment proof.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit ordered preflight checklist (read the payment hint from bounty_get, send sBTC via transfer_token with the exact memo, wait for confirmation via get_transaction_status, then submit) and names the tools to use at each step. The 'Poster only' restriction and the memo format 'BNTY:{bountyId}' are stated as hard conditions, not inferences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bounty_submissionsA
Paginated list of submissions for a single bounty.
Submissions are public (the inbox is public, so are bounty submissions).
No authentication required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| offset | No | Pagination offset | |
| bounty_id | Yes | Bounty ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does deliver valuable facts: the listing is paginated, the underlying data is public, and no authentication is needed. It stops short of describing ordering, result payload, or rate limits, but the access and pagination profile is more than most read tools state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first line and the access notes are front-loaded and tight, but the 'Tip: call earning_opportunities...' sentence is unrelated to listing submissions and reads as promotion rather than guidance, diluting an otherwise efficient description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter, read-only list tool with no output schema and fully documented parameters, the description covers scope, access requirements, and pagination. It leaves result contents and ordering unspecified, a minor gap given the schema richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so bounty_id, limit, and offset are already documented in the schema. The description only adds that the bounty scope is a 'single bounty', which is implicit in the schema anyway, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource, 'Paginated list of submissions', and scopes it to 'a single bounty'. An agent can distinguish it from bounty_my_submissions by the 'for a single bounty' scope, though the description never names that sibling, so differentiation relies on the reader comparing names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the data is public and that no authentication is required, which is useful context for deciding to call it. However, it gives no explicit when-to-use/when-not framing against alternatives such as bounty_my_submissions or taskmarket_submissions, and the closing 'Tip' promotes an unrelated tool rather than guiding selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bounty_submitA
Submit work to a bounty. Requires Registered-level (L1+) on-chain identity.
The poster of the bounty cannot self-submit. Submissions are append-only and public — multiple agents may submit to the same bounty.
Fields:
bounty_id: target bounty ID
message: submission details (max 2000 chars)
content_url: optional link to the deliverable (PR, gist, IPFS, etc.)
Signs with BIP-322 over: "AIBTC Bounty Submit | {bountyId} | {submitterBtc} | {message} | {contentUrl} | {signedAt}" (contentUrl is the empty string when omitted)
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Submission message (max 2000 chars) | |
| bounty_id | Yes | Bounty ID to submit to | |
| content_url | No | Optional link to the deliverable |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the auth requirement (L1+ identity), the self-submission prohibition, append-only/public persistence, and the exact BIP-322 signed payload including the empty-string convention for omitted contentUrl. It does not say what is returned on success or whether resubmission/edit is impossible in practice, leaving a small gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, then constraints, then a scannable field list and the signing template — an efficient ordering for an agent. Minor waste: the trailing tip to call earning_opportunities is unrelated to submitting work, and the 2000-char limit is restated from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param mutation with no annotations and no output schema, the description covers eligibility, prohibitions, persistence semantics, and the signature format, which is what an agent needs to invoke it correctly. The main omission is return behavior (submission ID, whether acceptance status is tracked), though output schema absence makes that a lesser gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description goes beyond it by giving examples of content_url deliverables (PR, gist, IPFS) and by defining the signing serialization ('contentUrl is the empty string when omitted'), which tells the caller how each field is canonically ordered and encoded. That is real added meaning not present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
A specific verb+resource ('Submit work to a bounty') that clearly separates it from bounty_accept, bounty_submissions, and bounty_create in the sibling list. The follow-up sentences immediately establish the tool's role in the bounty lifecycle as a write of a submission, not a read or a settlement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit precondition (Registered-level L1+ on-chain identity) and an explicit exclusion (the bounty poster cannot self-submit), plus the eligibility fact that multiple agents may submit to the same bounty. It does not name a sibling alternative for related actions (e.g. bounty_submissions for reading, bounty_accept for settling), so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
broadcast_transactionB
Broadcast a pre-signed Stacks transaction to the network.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| signedTx | Yes | The signed transaction as a hex string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and largely fails: it does not say that broadcasting is irreversible, consumes fees, is subject to nonce/mempool rejection, or depends on the configured Stacks API URL. The only behavioral fact conveyed is that the transaction is already signed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is tight and front-loaded, but the appended promotional tip about earning_opportunities does not help an agent call this tool and dilutes the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, yet the description says nothing about what a successful call returns (e.g. a txid), how to confirm inclusion, or how errors surface. For a network-mutating, irreversible operation this leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is documented there as a hex string. The description adds only the implied constraint that the hex must be a signed Stacks transaction, which is marginal beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb+resource ('broadcast a pre-signed Stacks transaction') and implicitly separates it from psbt_broadcast (Bitcoin) and the higher-level transfer_stx/call_contract tools. It stops short of explicitly naming the closest sibling, so it is clear but not fully disambiguated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'pre-signed' implies the prerequisite that signing must happen first, but the description never states when to use this versus psbt_broadcast or the wrapper tools that build and broadcast in one step. The trailing tip about earning_opportunities is unrelated to invoking this tool and adds no usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
btc_sign_messageA
Sign a plain text message using Bitcoin message signing. Automatically selects BIP-322 for native SegWit (bc1q) and Taproot (bc1p) addresses, and BIP-137 for legacy (1...) and wrapped SegWit (3...) addresses. Use addressType 'p2tr' to force signing with the Taproot key. Use cases: proving Bitcoin address ownership, authentication, off-chain verification. Requires an unlocked wallet with Bitcoin keys.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The plain text message to sign. | |
| addressType | No | Optional: address type to sign with. 'p2wpkh' uses native SegWit (bc1q, BIP-322), 'p2tr' uses Taproot (bc1p, BIP-322). If omitted, auto-detects from wallet address type. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses automatic BIP-322/BIP-137 selection based on address type, the addressType override, and the wallet-unlock requirement. It does not describe the returned signature format or error behavior, which are minor gaps for a local signing operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The main content is front-loaded and efficient, but the unrelated 'Tip: call earning_opportunities...' sentence does not earn its place in a signing tool description and adds marketing noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers invocation essentials: message signing, protocol selection, optional addressType, and the unlocked-wallet prerequisite. However, there is no output schema and the description does not state what is returned (e.g., a signature string), which is an important gap for a signing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds meaningful context by mapping address types to signing standards and explaining that addressType 'p2tr' forces use of the Taproot key, beyond what the schema alone provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Sign') and resource ('plain text message using Bitcoin message signing'), and differentiates from non-Bitcoin signing siblings by naming the Bitcoin signing context. It does not explicitly name alternatives like btc_verify_message or stacks_sign_message, but the purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It lists concrete use cases (proving ownership, authentication, off-chain verification) and states the prerequisite of an unlocked wallet with Bitcoin keys. It also explains how to force Taproot signing via addressType. It stops short of naming when-not-to-use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
btc_verify_messageA
Verify a Bitcoin message signature (BIP-137 or BIP-322) and recover or confirm the signer. Auto-detects BIP-137 (65-byte compact) vs BIP-322 (witness-serialized) format. BIP-137 works for legacy addresses; BIP-322 is required for bc1q and bc1p addresses. Takes the original message and signature (hex or base64). Compatible with signatures from most Bitcoin wallets.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | The Bitcoin address that allegedly signed the message. Required for BIP-322 verification (bc1q for P2WPKH, bc1p for P2TR). Also used for BIP-137 to confirm the recovered address matches. | |
| message | Yes | The original plain text message that was signed. | |
| signature | Yes | The signature in hex or base64. BIP-137: 65 bytes (130 hex / 88 base64). BIP-322: variable-length witness-serialized (base64). | |
| expectedSigner | No | Optional: alias for address (backward compatibility). If address is not provided, this is used instead. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the disclosure burden, and it delivers real behavioral context: automatic format detection, the 65-byte vs witness-serialized distinction, and the address requirement for BIP-322. It stops short of stating what an invalid signature yields or whether any state is touched, which matters given no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Core purpose and format rules are front-loaded in a tight sequence of sentences with no redundancy. The closing promotional tip about `earning_opportunities` is irrelevant to verification and does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a verification tool with no annotations and no output schema, the description should clarify the return contract (boolean vs recovered address, failure behavior). 'Recover or confirm the signer' hints at it but leaves the shape ambiguous, so an agent cannot predict the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented, giving a baseline of 3. The description adds only the 'hex or base64' encoding note and does not mention the expectedSigner alias, so it contributes little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Verify a Bitcoin message signature') and immediately narrows scope to BIP-137/BIP-322, which distinguishes it from the Stacks/SIP-018 and Schnorr verification siblings. An agent can tell what this does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete selection rules: BIP-137 for legacy addresses, BIP-322 required for bc1q/bc1p, with auto-detection so callers usually don't need to choose. It does not, however, route the agent away from sibling verifiers (stacks_verify_message, schnorr_verify_digest, sip018_verify) when the message is non-Bitcoin.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
call_contractA
Call a function on a Stacks smart contract. Signs and broadcasts the transaction.
For typed arguments, use objects like {type: 'uint', value: 100} or {type: 'principal', value: 'SP...'}
Post conditions constrain what assets the transaction can move. Each condition is an object:
STX: {type: 'stx', principal: 'SP...', conditionCode: 'eq'|'gt'|'gte'|'lt'|'lte', amount: '1000000'}
FT: {type: 'ft', principal: 'SP...', asset: 'SP...contract', assetName: 'token-name', conditionCode: 'eq', amount: '1000'}
NFT: {type: 'nft', principal: 'SP...', asset: 'SP...contract', assetName: 'nft-name', tokenId: '1', notSend?: boolean}
Spending limit: STX and sBTC leaving this wallet are metered against the wallet's spending cap. In 'deny' mode that is read from eq/lt/lte post conditions on this wallet ('gt'/'gte' on this wallet's own STX or sBTC are refused: they set no upper bound). In 'allow' mode, set maxStxSpend / maxSbtcSpend: they are added as on-chain post conditions on this wallet and metered.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Optional fee: 'low' | 'medium' | 'high' preset or micro-STX amount. Clamped to 50,000 uSTX max for contract calls. If omitted, medium-priority fee is auto-resolved. Ignored when sponsored=true. | |
| sponsored | No | Use sponsored transaction relay so a relay service pays fees instead of your wallet. Requires SPONSOR_API_KEY env var or wallet-level sponsorApiKey. | |
| maxStxSpend | No | 'allow' mode only: most micro-STX this call may take from this wallet (on-chain post condition, metered). Default 0. | 0 |
| contractName | Yes | The contract name (e.g., 'my-token') | |
| functionArgs | No | Function arguments. For explicit types: {type: 'uint'|'int'|'principal'|..., value: ...} | |
| functionName | Yes | The function to call (e.g., 'transfer') | |
| maxSbtcSpend | No | 'allow' mode only: most sBTC sats this call may take from this wallet (on-chain post condition, metered). Default 0. | 0 |
| postConditions | No | Optional post conditions to constrain asset movements. See description for format. | |
| contractAddress | Yes | The contract deployer's address (e.g., SP2...) | |
| postConditionMode | No | 'deny' (default): Blocks unexpected transfers. 'allow': Permits transfers not covered by a post condition, except this wallet's STX/sBTC, which maxStxSpend/maxSbtcSpend bound. | deny |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With zero annotations the description carries the full burden, and it does substantial work: it discloses that the tool signs and broadcasts (an irreversible on-chain mutation), that spending is metered against a wallet cap, and that 'gt'/'gte' on the wallet's own STX/sBTC are refused because they set no upper bound. Gaps remain — no mention that the wallet must be unlocked, that gas is consumed on failure, or whether the call returns a txid versus waiting for confirmation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, then the payload formats follow in scannable bullets with a clear progression from args to post conditions to spend limits. The closing 'Tip' promoting `earning_opportunities` is promotional and does not help the caller invoke this tool correctly, which is the main wasted line.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter mutation tool with no annotations and no output schema, the description covers the hard parts well: argument encoding, post-condition construction, and the spending-cap interaction with postConditionMode. It stops short of stating the preconditions (unlocked wallet, funded balance) and what the call returns, which an agent still has to discover elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the two untyped array parameters (`functionArgs` and especially `postConditions`, whose item schema is empty `{}`) are only usable because the description supplies their full object shapes for STX, FT and NFT conditions and the typed-argument form. This is genuine meaning added beyond the schema, not restatement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Call a function on a Stacks smart contract' — plus the key consequence, 'Signs and broadcasts the transaction.' This distinguishes it implicitly from read-only siblings, but it never names `call_read_only_function` or simple-transfer tools like `transfer_stx`/`transfer_token` as the alternative paths for those cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is real conditional guidance inside the parameter discussion: when to use 'deny' vs 'allow' post-condition mode and when maxStxSpend/maxSbtcSpend apply. However, there is no explicit 'use this when / use X instead' routing against the many sibling tools that also write to chain; an agent must infer that this is the escape hatch for arbitrary contract calls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
call_read_only_functionC
Call a read-only function on a smart contract (no signing required).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| contractId | Yes | Contract ID in format: address.contract-name | |
| functionArgs | No | Function arguments. For explicit types: {type: 'uint'|'int'|'principal'|..., value: ...} | |
| functionName | Yes | The read-only function to call | |
| senderAddress | No | Optional sender address for the call |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose the most important trait (read-only, no signing/wallet unlock needed). It says nothing about cost, failure modes (missing contract, wrong arg types), or the shape of the returned value, which is significant for a generic contract-call tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is tight and front-loads the useful information. The second sentence is a cross-sell for an unrelated tool and does not help select or invoke this one, so it does not fully earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No annotations and no output schema means the description should explain what a read-only call returns (e.g. result representation, how to interpret tuple/response types). For a four-parameter generic contract-call tool that gap is material and unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so contractId format, functionArgs encoding, and optional senderAddress are already documented structurally. The description adds nothing beyond the schema, which is the expected baseline here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Call a read-only function on a smart contract') plus the key qualifier 'no signing required'. It implicitly contrasts with call_contract by emphasizing read-only, but never names the sibling or states the boundary explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus call_contract, or what makes a function eligible (e.g. must be defined as read-only in the contract). The only tip is a promotional pointer to `earning_opportunities`, which does not help an agent decide between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_bns_availabilityB
Check if a BNS domain name is available for registration.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | BNS name to check (e.g., 'alice') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden. It implies a read-only lookup but never states that it has no side effects or cost, whether it queries the chain or a cache, or how it behaves for invalid or already-taken names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is appropriately terse and front-loaded. The second sentence is an unrelated promotional pointer to earning_opportunities that does not help an agent select or invoke this tool, so it does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the single parameter is well documented, but there is no output schema and the description does not say what comes back (boolean, price, or registration details). One clause on the return shape would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter and 100% schema description coverage, the schema already documents the 'name' string and its example ('alice'). The description adds nothing about format, whether a namespace suffix is accepted, or whether it is case-sensitive, so it sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: checking whether a BNS domain name is available for registration. That is clear and distinct in intent from siblings like get_bns_price or register_bns_name, but the description never names those siblings or explicitly positions itself in that lifecycle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is a pre-registration check, but the description offers no explicit when-to-use, no named alternatives (e.g., lookup_bns_name for existing names), and no prerequisites. The appended 'earning_opportunities' tip is promotional cross-sell rather than guidance for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_relay_healthA
Check the sponsor relay health and nonce status.
Use this tool for operator diagnostics around relay-owned sponsor state. It will:
Check relay availability
Inspect sponsor address nonce state
Detect nonce gaps that block transactions
Detect mempool desync (confirmed nonce far behind mempool nonce)
List stuck transactions with txid, nonce, and how long they have been pending
Report mempool congestion
This tool does not redefine caller-facing x402 payment states. Use paymentId polling for payment lifecycle truth; use this output only as backup diagnostics.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does list what is inspected and even what stuck-transaction output includes (txid, nonce, pending duration), which is useful, but it never explicitly states that the tool is read-only and side-effect-free, nor does it mention permissions or rate limits. The implications of 'check' and 'diagnostics' are reasonably strong, but for a tool with zero annotation coverage an explicit safety profile would be expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and scope, and the bullet list is efficient. The final tip to call `earning_opportunities` is unrelated to relay diagnostics and is the one sentence that does not earn its place, but it does not undermine the overall structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description usefully enumerates what is checked and what stuck-transaction output contains, which is the main thing an agent needs. It also clarifies the relationship to x402 payment states. The main omission is a clear statement that the operation is read-only and non-destructive, which matters because there are no annotations to convey that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly implies no caller-supplied arguments are needed, and there are no schema gaps to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Check the sponsor relay health and nonce status,' and the bullet list makes the scope concrete (availability, nonce gaps, mempool desync, stuck transactions). It distinguishes itself from payment lifecycle polling, but does not name overlapping siblings like nonce_health or nonce_fill_gap, which also sound like nonce diagnostics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly frames the tool as 'operator diagnostics around relay-owned sponsor state' and warns that paymentId polling is the source of truth for payment lifecycle, so the agent knows one clear non-use case. However, it gives no guidance relative to the many overlapping nonce tools (nonce_health, nonce_fill_gap, nonce_heal, recover_sponsor_nonce), leaving the agent without a rule for when to choose this tool versus those.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
claim_bns_name_fastA
Register a BNS domain name in a single transaction using name-claim-fast. This is the RECOMMENDED method — no preorder/register wait needed. Burns the name price in STX and mints the BNS NFT atomically. Works for all open namespaces (BNS V2).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | BNS name to claim (e.g., 'myname' or 'myname.btc') | |
| sendTo | No | Optional recipient address. Defaults to the wallet's own address. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it states this is a state-changing operation that burns the name price in STX and mints an NFT atomically in one transaction, plus the namespace restriction. It omits failure behavior (name taken, insufficient balance) and confirmation/irreversibility details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core is front-loaded in three tight sentences with mechanism, recommendation, cost and scope in order. The trailing 'Tip: call earning_opportunities' is off-topic promotional noise that does not help invoke this tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation tool with no annotations and no output schema, the description covers mechanism, cost, atomicity and namespace scope. Preconditions and post-conditions (name availability, resulting NFT ownership) are left implicit, but the essential calling context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented, giving a baseline of 3. The description only adds that the name must be in an open namespace; it adds nothing about sendTo or name formatting beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource (register a BNS domain name) and adds the exact mechanism (name-claim-fast, single transaction). It distinguishes itself from preorder/register siblings by stating no preorder/register wait is needed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says this is the RECOMMENDED method and contrasts it with the preorder/register flow, and it bounds applicability to 'all open namespaces (BNS V2)'. It does not tell the agent to call check_bns_availability or get_bns_price first, nor what to do when a name is unavailable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
claim_stacking_rewardsA
Claim PoX-5 sBTC rewards for one reward cycle through the staker's signer manager. If the manager has not yet pulled that cycle's rewards from pox-5, this first sends the manager's permissionless claim-rewards (a second transaction, paid by this wallet), then the staker claim. Rewards arrive as sBTC, or as a BTC withdrawal if a payout address was set when staking. Not available for managers that pay off-chain.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| rewardCycle | Yes | Reward cycle to claim | |
| signerManager | No | Signer manager to claim from. Defaults to the wallet's current signer manager. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it reveals a second transaction paid by this wallet, the resulting asset (sBTC vs BTC withdrawal depending on payout address), and an eligibility exclusion. It omits idempotency (what happens if the cycle was already claimed) and any wallet-unlock/auth requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Core purpose is front-loaded and the extra-transaction caveat follows logically. The trailing 'earning_opportunities' tip is mildly promotional but plausibly routes an agent to discovery; otherwise little wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation tool with no output schema, the description covers cost implications, reward delivery mode, and eligibility. The main remaining gap is failure/idempotency behavior, which matters for a claim that can be retried.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents both parameters, including the signerManager default. The description adds only light framing ('the staker's signer manager', 'that cycle's rewards') without new format or constraint detail; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Claim), a specific resource (PoX-5 sBTC rewards), and scope (one reward cycle, via the staker's signer manager). That distinguishes it from sibling reads like get_stacking_rewards and from stackspot_claim_rewards / dual_stacking_get_rewards, which operate on different mechanisms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear when-to-use context (per cycle, via a signer manager) and a when-not ('Not available for managers that pay off-chain'). It does not explicitly compare against sibling claim tools such as stackspot_claim_rewards, so the alternative routing is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credentials_deleteB
Remove a stored credential by service and key. The encrypted store file is rewritten without the deleted entry.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Key name within the service (e.g. 'api_key', 'token') | |
| service | Yes | Service name (e.g. 'github', 'openrouter') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that the encrypted store file is rewritten without the deleted entry, which tells the agent this is a persistent mutation. However, it omits whether credentials_unlock is required, whether deletion is reversible, and what happens if the key does not exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core two sentences are well front-loaded and efficient. The trailing 'Tip: call earning_opportunities...' is unrelated to deleting a credential and adds noise without helping the agent call this tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter deletion tool with full schema coverage and no output schema, the description covers the basic mechanics and the file-rewrite effect. It still leaves out important call context: the likely need to unlock the credential store first, behavior when the entry is absent, and confirmation of irreversibility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented with examples in the input schema. The description only restates 'by service and key' and adds no format, casing, or lookup semantics beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource ('Remove a stored credential') and the identifying fields ('by service and key'), which clearly separates it from credentials_set or credentials_get. It stops short of explicitly naming a sibling tool or its alternative, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus credentials_list/credentials_get, no prerequisites such as unlocking the credential store, and no warning about irreversibility. The only usage-adjacent sentence is an unrelated promotional tip pointing at earning_opportunities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credentials_getB
Retrieve a stored credential value by service and key. Returns the decrypted value. WARNING: The returned value is sensitive — do not log or display it unnecessarily.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Key name within the service (e.g. 'api_key', 'token') | |
| service | Yes | Service name (e.g. 'github', 'openrouter') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose that the returned value is decrypted and warns it is sensitive, which is genuine behavioral value. However it omits prerequisites (does the vault need credentials_unlock first?), what happens when the service/key is missing, and any audit/logging implication of reading a secret.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and sensitivity warning are front-loaded and tight. The trailing "Tip: call earning_opportunities..." is unrelated promotional content that does not help an agent invoke this tool correctly and dilutes the message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description is the only source of behavioral detail. It covers the return value and its sensitivity, but leaves out the unlock prerequisite and failure behavior — meaningful gaps for a secrets-retrieval tool in a family that has credentials_unlock, credentials_list and credentials_delete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents both parameters with concrete examples ('github', 'openrouter', 'api_key', 'token'). The description only restates that lookup is by service and key, adding nothing beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Retrieve a stored credential value by service and key") and adds the key behavioral fact that it returns the decrypted value. It does not name or distinguish itself from siblings such as credentials_list or credentials_set, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer you call this when you need a secret for a given service/key. There is no explicit when-not-to-use, no pointer to credentials_list for enumeration, and no mention of the credentials_unlock sibling despite a locked-vault prerequisite being likely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credentials_listA
List all stored credentials. Shows service names, key names, and last-updated timestamps. Does NOT reveal credential values.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose the important trait that secret values are withheld, plus the exact fields returned. It is silent on whether the vault must be unlocked first (there is a credentials_unlock sibling) and on whether results are filtered by scope, which matters for a credentials tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are tight and front-loaded with the key constraint (no values shown). The third sentence is unrelated promotional content about earning_opportunities that does not help an agent decide to call credentials_list and dilutes the payload.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with no output schema, the description usefully compensates by naming the returned fields and the withheld values. The remaining gap is the unlock/auth prerequisite, which an agent needs before calling a credentials tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. Nothing in the text contradicts the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("List all stored credentials") and enumerates what is returned (service names, key names, timestamps). The explicit "Does NOT reveal credential values" implicitly separates it from credentials_get, but the sibling is never named, so differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Use case is only implied: an agent can infer this is the discovery step before credentials_get, but the description never says so. The trailing tip points to earning_opportunities, which is a cross-promotion rather than guidance on when to pick this tool over its alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credentials_setB
Store or update a credential. Encrypts the value with AES-256-GCM and saves to ~/.aibtc/credentials.enc. If the service/key pair already exists, it is updated.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Key name within the service (e.g. 'api_key', 'token') | |
| value | Yes | The credential value to store — WARNING: sensitive | |
| service | Yes | Service name (e.g. 'github', 'openrouter') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses AES-256-GCM encryption at rest, the storage path ~/.aibtc/credentials.enc, and that an existing service/key pair is overwritten. It omits whether an unlocked vault/password is required before writing and what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are tight and front-loaded with the operation, encryption, and upsert rule. The trailing tip about earning_opportunities is off-topic filler that does not earn its place in a credential-storage definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation tool with no annotations and no output schema, the description covers storage, encryption, and overwrite behavior adequately. It still leaves gaps on required vault state and return/error behavior that an agent would need before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the three parameters (service, key, value) are already documented with examples. The description adds only the 'service/key pair' framing as the identity for the upsert, which is a small increment over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource ('Store or update a credential') and names the exact effect on the stored file. It implicitly contrasts with credentials_get/list/delete through the write framing, but never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus credentials_get, credentials_list, or credentials_delete, and no prerequisites are given. The only routing hint points to earning_opportunities, which is unrelated to invoking this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credentials_unlockA
Verify that the credential store password works and show store info. Uses ARC_CREDS_PASSWORD env var. Creates a new empty store if none exists.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses key behaviors: it depends on the ARC_CREDS_PASSWORD environment variable and creates a new empty store if none exists. However, it doesn't say what happens on a failed verification or what 'store info' contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is two efficient sentences, but the final 'Tip' about earning_opportunities is unrelated promotional content that does not earn its place in a tool definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema or annotations, the description covers the essential behavior (verification, env var dependency, store creation side effect). It could be more complete by mentioning what happens on failure, but it is largely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline of 4 applies. The description adds no parameter details because there are none to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('verify') and resource ('credential store password'), plus a secondary action ('show store info'). It does not explicitly name a sibling tool to distinguish from, but the resource ('credential store') is distinct from other unlock tools like wallet_unlock or pillar_key_unlock.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (to verify the password and show store info), but it offers no explicit alternatives or when-not guidance. An agent must infer whether to use credentials_unlock versus credentials_list or credentials_get.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_hiro_api_keyA
Remove the stored Hiro API key from ~/.aibtc/config.json. If HIRO_API_KEY is set in the environment, that will still be used as a fallback.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose a genuinely useful behavior — deletion only affects the config file and the HIRO_API_KEY environment variable still wins as a fallback. It stops short of stating error behavior when no key exists, whether the removal is reversible, or any confirmation requirement for a destructive config change.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The functional content is tight and front-loaded in two sentences, but the trailing 'Tip: call earning_opportunities...' is unrelated promotional filler that does not help an agent invoke this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter config-mutation tool with no output schema, the description covers what is removed, where it lives, and the residual env-var fallback. Only the failure/reversibility semantics are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the baseline the schema fully covers the input surface and the description need not explain arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (remove) plus the exact resource (the stored Hiro API key) and even the storage location (~/.aibtc/config.json). It is unambiguously distinct from the sibling set_hiro_api_key and get_hiro_api_key.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the negating name and the fallback note tells the agent what happens afterwards, but there is no explicit when-to-use or when-not-to-use guidance (e.g. whether to call this before switching providers, or whether a missing key causes an error).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_stacks_api_urlB
Remove the custom Stacks API URL and revert to the default Hiro API (api.mainnet.hiro.so or api.testnet.hiro.so).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does usefully disclose the post-condition (the specific default endpoints that become active), but omits whether the custom value is destroyed or merely disabled, whether authentication/wallet state is required, and what happens if no custom URL was ever set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is efficient and front-loaded, but the appended "Tip: call `earning_opportunities`..." is an off-topic promotional nudge unrelated to deleting an API URL and risks distracting an agent into an irrelevant call.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial zero-parameter configuration tool with no output schema, the description covers the essential effect and the resulting defaults. It still leaves gaps an agent may care about: behavior when no custom URL exists, whether further configuration is affected, and any confirmation/return signal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies. Nothing in the description conflicts with the empty schema, and the description correctly implies no input is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb plus resource ("Remove the custom Stacks API URL") and states the resulting state (revert to default Hiro API) with concrete hostnames. It does not explicitly differentiate from siblings like set_stacks_api_url, get_stacks_api_url, or delete_hiro_api_key, though the name and phrasing make the distinction inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the outcome ("revert to the default"), so an agent can infer this is the undo for a custom URL configuration. However, there are no explicit when-to-use/when-not conditions, no mention of prerequisites, and no reference to the sibling tools that set or read the URL.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deploy_contractC
Deploy a Clarity smart contract to the Stacks blockchain.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Optional fee: 'low' | 'medium' | 'high' preset or micro-STX amount. Clamped to 50,000 uSTX max for deployments. If omitted, medium-priority fee is auto-resolved. Ignored when sponsored=true. | |
| codeBody | Yes | The complete Clarity source code | |
| sponsored | No | Use sponsored transaction relay so a relay service pays fees instead of your wallet. Requires SPONSOR_API_KEY env var or wallet-level sponsorApiKey. | |
| contractName | Yes | Unique name for the contract (lowercase, hyphens allowed) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It omits that deployment is an irreversible on-chain write, that it requires a funded wallet and spends fees, or what happens on name collision (contractName is described as 'unique' only in the schema). The 'Tip' paragraph consumes space without disclosing any behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is tight and front-loaded, but the second sentence is an off-topic cross-sell for `earning_opportunities` that does not help an agent invoke this tool. Removing it would cost nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating, fee-spending deploy operation with no annotations and no output schema, the description never says what a successful call returns (e.g., a contract address or txid) or what preconditions exist beyond the schema's per-field notes. It is under-specified for the risk profile of the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema itself documents fee presets/clamping, sponsored relay requirements, contractName format, and codeBody. The description adds nothing about parameters, so the baseline 3 applies — the schema is doing all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: deploy a Clarity smart contract to the Stacks blockchain. This is clearly distinguishable from siblings like call_contract or get_contract_info. It stops short of explicitly naming the sibling it contrasts with, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or prerequisite guidance is given. The only extra sentence is a promotional tip pointing at `earning_opportunities`, which is unrelated to deciding whether to deploy a contract. An agent gets no routing help between this and alternatives like call_contract or broadcast_transaction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dual_stacking_enrollA
Enroll in Dual Stacking to earn sBTC rewards.
Enrolls your wallet in the Dual Stacking protocol. Enrollment takes effect at the start of the next PoX cycle. You must hold the minimum sBTC amount to qualify.
An optional reward address can be specified to receive sBTC rewards at a different address than the signing wallet. If omitted, rewards go to the signing wallet.
Requires an unlocked wallet with sufficient sBTC balance.
Note: Dual Stacking is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| rewardAddress | No | Optional Stacks address to receive sBTC rewards. Uses signing wallet address if not provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well: it discloses next-PoX-cycle activation, minimum sBTC holdings, wallet unlock requirements, reward-address behavior, and mainnet-only availability. It does not mention transaction fees or what happens if already enrolled, leaving minor gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The structure is front-loaded and readable, with prerequisites and behavioral constraints clearly separated. There is slight redundancy between the opening sentence and the next sentence, but no major bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an enrollment mutation with no output schema, the description is complete enough: it covers timing, network restriction, balance and wallet prerequisites, and optional reward-address routing. An agent has the information needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one optional parameter, rewardAddress, and schema coverage is 100%, so the schema already documents it clearly. The description explains the same fallback behavior in prose but adds little beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: enroll a wallet in Dual Stacking to earn sBTC rewards. It is unambiguous and clearly distinct from adjacent tools such as dual_stacking_status or dual_stacking_opt_out, even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear prerequisites: an unlocked wallet, sufficient sBTC balance, and mainnet-only availability. It does not explicitly compare against alternatives like dual_stacking_status for checking eligibility or dual_stacking_opt_out for exiting, but the usage context is well defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dual_stacking_get_rewardsA
Get earned sBTC rewards for a specific Dual Stacking cycle.
Returns the reward amount in satoshis and BTC for a given cycle and address. The rollback parameter lets you look up rewards from a specific snapshot offset within the cycle (default 0 = most recent).
Note: Dual Stacking is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | Yes | Cycle number to query rewards for | |
| address | No | Address to query rewards for. Uses configured wallet if not provided. | |
| rollback | No | Snapshot rollback offset within the cycle (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does a reasonable job: it identifies this as a retrieval operation, explains that rewards are returned in satoshis and BTC, describes the rollback lookup behavior, and notes the mainnet-only constraint. It stops short of covering error conditions, wallet prerequisites, or other operational details, but the core behavioral context is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core operation and uses short, readable sentences. The final earning_opportunities tip is related but not strictly necessary for invoking this tool correctly, so the text is slightly less tight than it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with three fully documented parameters and no output schema, the description supplies the key context an agent needs: what is returned, the rollback meaning, and the mainnet restriction. It could be more complete by mentioning wallet/config prerequisites or error behavior, but it is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already defines cycle, address, and rollback. The description adds a small amount of meaning by clarifying that rollback defaults to the most recent snapshot offset, but it does not materially expand parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: get earned sBTC rewards for a specific Dual Stacking cycle. This clearly distinguishes the tool from broader siblings like get_stacking_rewards and from adjacent Dual Stacking tools such as dual_stacking_status or dual_stacking_enroll.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose and by the mainnet-only note, but the description does not explicitly say when to call this instead of dual_stacking_status, get_stacking_rewards, or claim_stacking_rewards. The earning_opportunities tip is related but not an alternative-tool routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dual_stacking_opt_outA
Opt out of Dual Stacking.
Removes your wallet from the Dual Stacking protocol. The opt-out takes effect at the start of the next PoX cycle; you continue to earn rewards for the current cycle.
Requires an unlocked wallet.
Note: Dual Stacking is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the unlocked-wallet precondition, the mainnet constraint, and the deferred timing of the opt-out with rewards continuing through the current cycle. It omits whether the action is reversible (can the wallet re-enroll later) and whether an on-chain transaction/fee is involved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, then constraints, then a tip — a sensible order with little waste. The trailing 'Tip' line about earning_opportunities is mildly promotional but still routes the agent usefully.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter mutation with no annotations and no output schema, the description supplies exactly what an agent needs to call it safely: wallet unlock requirement, network restriction, and the timing semantics of the effect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is nothing for the description to disambiguate and it correctly avoids inventing parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Opt out of Dual Stacking', 'Removes your wallet from the Dual Stacking protocol') and is immediately distinguishable from siblings like dual_stacking_enroll, dual_stacking_status, and dual_stacking_get_rewards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operating context — mainnet-only, and the effect lands at the start of the next PoX cycle rather than immediately — plus a routing tip to earning_opportunities. It does not explicitly name 'dual_stacking_enroll' as the reverse operation or exclude other stacking exits, so it stops short of full alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dual_stacking_statusA
Check Dual Stacking enrollment status, APR data, minimum amount, and cycle overview.
Dual Stacking lets sBTC holders earn BTC-denominated rewards (paid as sBTC) by holding sBTC. Enrollment runs per PoX cycle; you enroll now to be active next cycle.
Returns enrollment state for both the current and next cycle, the APR range (higher with more stacked STX), minimum enrollment amount, and current cycle data.
Note: Dual Stacking is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Address to check. Uses configured wallet if not provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does useful work by disclosing mainnet-only availability, per-PoX-cycle enrollment timing, and that returns include both current and next cycle enrollment state plus an APR range that increases with more stacked STX. It does not explicitly state read-only/no side effects or auth requirements, but the 'Check'/'Returns' framing strongly indicates a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence, and the following sentences explain the reward context, return data, and mainnet limitation efficiently. The earning_opportunities tip and explanatory Dual Stacking sentence are useful but slightly nonessential, keeping it just below maximally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter status tool with no output schema and no annotations, the description does a good job naming the returned data and noting the mainnet restriction and cycle timing. It could be more complete by clarifying that it only reads status and by naming the enrollment/opt-out siblings, but the core information an agent needs is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the address parameter is already fully documented in the schema. The description does not add any parameter-specific semantics beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Check Dual Stacking enrollment status, APR data, minimum amount, and cycle overview.' It clearly implies a status/read operation rather than enrollment or opt-out, but it does not explicitly name the sibling alternatives like dual_stacking_enroll or dual_stacking_opt_out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'Check ... status' and the note that Dual Stacking is mainnet-only, plus the enrollment-cycle timing context. However, it does not explicitly say when to use this instead of dual_stacking_enroll, dual_stacking_opt_out, dual_stacking_get_rewards, or get_stacking_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
earning_opportunitiesA
List the ways an agent can put its assets to work through this MCP — a static "how to earn" menu (no balances read, no network calls).
Surface this to an agent right after onboarding (e.g. once identity_register succeeds) so it knows the menu of strategies available: which asset each needs, the kind of return, and the tool that starts it.
Each entry: { id, name, assets, returns, summary, start_with, reference? } where start_with lists the MCP tools to begin, in order.
Optional asset filter (e.g. "STX", "sBTC") returns only strategies that put that asset to work — useful for "what can I do with the STX I hold?". Matching is case-insensitive substring over each strategy's assets.
Aligned with aibtc.com. The trading competition and news correspondent are intentionally not part of this menu.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | No | Optional asset filter (e.g. "STX", "sBTC"). Returns only strategies that use a matching asset. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the load and does it well: it declares the tool is static, reads no balances, and makes no network calls, and it spells out the exact response entry shape including an optional `reference` field. It stops short of stating whether auth or registration is required or whether the menu is cached/versioned, which is the only remaining behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then trigger, then return shape, then the filter detail — a logical order with no filler sentences. The final "Aligned with aibtc.com" line is mild noise, but the following exclusion clause in the same paragraph earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must describe return values — and it does, field by field, including the meaning of `start_with` as an ordered list of tools to begin with. Combined with the read-only nature and the trigger condition, an agent has everything needed to call and use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real semantics beyond the schema: matching is case-insensitive substring over each strategy's `assets`, which explains why "STX" also works as a partial. It also frames the parameter's purpose as a question the agent might be asked.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — a static "how to earn" menu of strategies — and immediately distinguishes itself from the many action-oriented siblings (pillar_supply, zest_supply, stack_stx) by clarifying it only lists options rather than executing them. The stated entry shape and the explicit exclusion of the trading competition and news correspondent further narrow the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete trigger: surface it right after onboarding, e.g. once `identity_register` succeeds, and describes the natural follow-up question it answers ("what can I do with the STX I hold?"). It does not explicitly name a sibling as the alternative for the actual execution step, but the "no balances read, no network calls" line steers the agent toward balance tools for those needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_child_inscription_feeA
Calculate the total cost (in satoshis) for creating a child inscription. Accounts for the extra parent UTXO input and parent return output in the reveal transaction. Content should be provided as base64-encoded string.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| feeRate | No | Fee rate in sat/vB (optional, defaults to current medium fee) | |
| contentType | Yes | MIME type (e.g., 'text/plain', 'image/png') | |
| contentBase64 | Yes | Content as base64-encoded string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full behavioral burden. It usefully discloses that the estimate models the extra parent UTXO input and parent return output in the reveal transaction, and that the result is in satoshis. It does not state prerequisites (must the parent inscription exist / be owned), whether the call touches the network or is purely local, or how the returned figure is broken down.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core two sentences are front-loaded and dense. However, the third sentence is an unrelated cross-promotional tip that does not help an agent select or invoke this tool, so not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter, no-annotation, no-output-schema tool, the description covers the return units (satoshis) and cost composition but omits prerequisites and call ordering relative to inscribe_child_reveal. Adequate but with clear gaps an agent must guess around.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with per-parameter descriptions. The description restates contentBase64 as base64 and adds nothing beyond the schema; it says nothing extra about feeRate defaulting behavior or contentType constraints. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
A specific verb and resource — calculate the satoshi cost of a child inscription — with the distinguishing qualifier 'child' and the exact cost components (parent UTXO input, parent return output) named. This lets an agent separate it from estimate_inscription_fee without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is a pre-flight estimator for inscribe_child / inscribe_child_reveal, but the description never states when to call it, whether it precedes reveal, or why one would pick it over estimate_inscription_fee. The appended 'earning_opportunities' tip is unrelated promotion and offers no selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_inscription_feeB
Calculate the total cost (in satoshis) for creating an inscription. Returns breakdown of commit fee, reveal fee, and total cost. Content should be provided as base64-encoded string.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| feeRate | No | Fee rate in sat/vB (optional, defaults to current medium fee) | |
| contentType | Yes | MIME type (e.g., 'text/plain', 'image/png') | |
| contentBase64 | Yes | Content as base64-encoded string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose the return shape (commit fee, reveal fee, total), which is genuinely useful since no output schema exists. It does not state whether a wallet/signature is required, whether the estimate is binding, or how fees are sourced beyond the schema's 'defaults to current medium fee'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are tight and front-loaded with the purpose and return values. The closing 'Tip: call earning_opportunities' sentence is unrelated cross-promotion that does not earn its place in an estimation tool's definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only estimator with full schema coverage, the description covers purpose, inputs, and the returned breakdown, which substitutes for the absent output schema. The only meaningful gap is its silence on the sibling child-inscription estimator and on when the estimate should precede an inscribe call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented. The description's only parameter remark — 'Content should be provided as base64-encoded string' — merely restates the contentBase64 schema description and adds no new meaning. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Calculate the total cost (in satoshis) for creating an inscription,' and even names the cost components it returns. However, it does not differentiate from the sibling estimate_child_inscription_fee, leaving the agent to guess which estimator applies to a child inscription.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the phrase 'for creating an inscription' — an agent can infer it is a pre-flight estimate. No explicit when-to-use, exclusions, or routing to the sibling fee estimator is given, and the closing tip advertises an unrelated tool rather than guiding tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_x402_endpointA
Execute an x402 API endpoint. Payment is handled automatically.
Supported sources:
x402.aibtc.com (mainnet) / x402.aibtc.dev (testnet), the default: Use path like "/inference/openrouter/chat"
x402.biwas.xyz: Use apiUrl="https://x402.biwas.xyz" with path like "/api/pools/trending"
stx402.com: Use apiUrl="https://stx402.com" with path like "/registry/list"
aibtc.com (mainnet) / aibtc.dev (testnet): Use apiUrl="https://aibtc.com" with path like "/api/inbox/{address}"
Any x402-compatible URL: Use url parameter with full endpoint URL
Use list_x402_endpoints to discover available endpoints.
A paid result includes txid and gas: {sponsored, feeUstx}. Sponsored means the endpoint's relay pays the STX fee (feeUstx "0"); otherwise this wallet paid feeUstx on top of the price.
For aibtc.com inbox messages, use send_inbox_message_direct instead — it signs a standard sBTC transfer and settles directly through the x402 facilitator.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Full endpoint URL (e.g., 'https://x402.aibtc.com/hashing/sha256'). Takes precedence over path+apiUrl. | |
| data | No | Request body for POST/PUT requests | |
| path | No | API endpoint path (e.g., '/api/pools/trending'). Required if url is not provided. | |
| asset | No | Which asset to pay with when the endpoint accepts several. Accepts a symbol ("sBTC", "STX") or a full contract identifier. Defaults to the first asset this client can pay. Only STX and sBTC can be signed; requesting any other asset returns an error listing what is accepted. | |
| apiUrl | No | API base URL: https:// plus the source host from list_x402_endpoints (x402.aibtc.com, x402.biwas.xyz, stx402.com, aibtc.com). Defaults to x402.aibtc.com (testnet x402.aibtc.dev). | |
| method | No | HTTP method | GET |
| params | No | Query parameters for GET requests | |
| autoApprove | No | Skip cost probe and execute immediately. When false (default), probes first and returns cost info for paid endpoints. When true, executes atomically like before. Free endpoints always execute transparently. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose key behavior: payment is handled automatically, paid results include txid and a gas breakdown, and 'sponsored' determines whether this wallet pays an STX fee on top of the price. It does not cover prerequisites (wallet unlocked), spending limits, or what happens on payment failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and payment note, then structured source routing, then result shape. The trailing 'Tip: call earning_opportunities' is promotional and not needed to invoke this tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with no annotations and no output schema, the description covers payment model, result shape, and host routing well. Gaps remain around error/failure behavior and free-vs-paid execution flow, which is only explained inside the autoApprove schema field.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description adds real value by pairing each supported host with an example path shape and by clarifying that url takes precedence over path+apiUrl. The asset-signing constraint is documented in the schema rather than the description, keeping it from a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Execute an x402 API endpoint') and immediately clarifies that payment is automatic, which is the defining trait. It also distinguishes itself from siblings by naming list_x402_endpoints for discovery and send_inbox_message_direct for inbox messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete routing rules per source (which apiUrl to pair with which path style) and an explicit exclusion: 'For aibtc.com inbox messages, use send_inbox_message_direct instead.' It also points to list_x402_endpoints as the discovery step before calling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extend_stackingA
Update an existing PoX-5 stake: extend the lock, add STX, switch signer manager, or change payout calldata (pox-5 stake-update).
Any combination in one call. Increasing locks more of the address's unlocked STX. Refused during the prepare phase. The lock may not run more than 96 cycles past the next cycle.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| signerManager | No | New signer manager contract id. Defaults to the current one. | |
| amountIncrease | No | Additional micro-STX to lock | 0 |
| cyclesToExtend | No | Cycles to add to the current unlock cycle | |
| btcRewardAddress | No | Optional Bitcoin address to receive rewards. Encoded as `{ pox-addr, max-fee }` signer calldata, the shape reference signer managers (e.g. Xverse, Fast Pool) use to pay rewards to BTC via an sBTC withdrawal. Some managers require it (PlanBetter), some ignore it (native-pool). Omit to receive sBTC where the manager supports that. | |
| signerCalldataHex | No | Advanced: raw signer calldata (hex, max 500 bytes) for managers with a custom format. Cannot be combined with btcRewardAddress. | |
| maxWithdrawalFeeSats | No | Max sBTC withdrawal fee (sats) per payout when btcRewardAddress is set. Default 3000. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the mutation nature, that increasing 'locks more of the address's unlocked STX', a refusal window (prepare phase), and a hard cycle-bound constraint. It stops short of stating permission/auth requirements or what happens to unspecified stake fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose and operations, then constraints, with no verbose preamble. The trailing 'Tip: call earning_opportunities' is mildly promotional but very short and harmless.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers purpose, parameter interaction, and operating constraints, so an agent can call it correctly. It lacks result/confirmation expectations, which is the only meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3, but the description adds real semantics: 'Any combination in one call' tells the agent the parameters interact and can be co-applied, and it clarifies that amountIncrease draws from unlocked STX.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource — 'Update an existing PoX-5 stake' — and enumerates the four operations it performs (extend lock, add STX, switch signer manager, change payout calldata). This clearly signals update-of-existing versus create, but no sibling tool is named to contrast with (e.g. stack_stx, unstake_stx).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides preconditions ('refused during the prepare phase', max 96 cycles past next cycle) and notes combination usage, which implies when it is applicable. It does not, however, route the agent between this and stack_stx/unstake_stx or say what to do when no existing stake is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_infoB
Get detailed account information including nonce and balance.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Stacks address. Uses configured wallet if not provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the safety profile; 'Get' implies a read operation, and it discloses that nonce and balance are returned. It does not state whether it queries the network, what happens when the address is omitted (that is left to the schema), or what errors/permissions may apply, so the disclosure is partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and efficient, but the second sentence is a promotional cross-sell unrelated to selecting or invoking this tool. Roughly half the description is therefore not earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple read tool with one optional parameter and no output schema, so the burden is modest. However, 'detailed account information' is vague beyond nonce and balance, and with no output schema the agent has no way to know what else is returned or how the data is scoped.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single optional 'address' parameter is already documented as defaulting to the configured wallet. The description adds no extra meaning about the address parameter (e.g. network or validation requirements), so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete verb and resource ('Get detailed account information') and discloses two specific returned fields (nonce, balance), which is more than a tautology. It does not distinguish itself from close siblings such as get_wallet_info, get_stx_balance, or get_btc_balance, leaving the agent to guess which account view to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus get_wallet_info or get_stx_balance, and no prerequisites or exclusions. The only routing hint is a promotional tip pointing at earning_opportunities, which is unrelated to deciding when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_transactionsC
Get transaction history for an account.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results | |
| offset | No | Offset for pagination | |
| address | No | Stacks address. Uses configured wallet if not provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not state that this is a read-only call, which chain/account type is queried, the result ordering, the default page size of 20, or that it falls back to the configured wallet when no address is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is perfectly front-loaded and terse. But the second sentence is an advertisement for an unrelated tool and consumes roughly half the description's budget without helping an agent call this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description must compensate for what structured data lacks. It never describes what a transaction record contains, how pagination interacts with the 20-item default, or whether history is complete or truncated — significant gaps for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — limit, offset, and address are each documented, including the wallet-fallback behavior for address. The description adds nothing beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb+resource: retrieval of an account's transaction history. However, it does nothing to distinguish this from siblings like get_transaction_status, get_account_info, or get_btc_address_txs, so an agent must guess which retrieval tool applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus other lookups (account info, individual tx status, BTC address txs). The only pointer is to `earning_opportunities`, which is a cross-sell suggestion, not an alternative for the same task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_block_infoC
Get information about a specific block.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| heightOrHash | Yes | Block height (number) or block hash |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. The verb 'Get' weakly implies a read-only lookup, but nothing is said about what happens on an unknown height/hash, whether data is fetched from a cached/indexed source, or what the response contains. The promotion line consumes space that could have held this behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and tight, but the second sentence is an unrelated marketing tip that does not earn its place in a tool definition. Half the text is off-topic relative to invoking the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only lookup with a fully documented schema and no output schema, the description is minimally adequate. It stops short of saying what block fields come back or how missing blocks are reported, leaving an agent to discover the return shape empirically.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is already documented as 'Block height (number) or block hash', so the schema does the work. The description adds no syntax, range, or format details beyond that, which is the expected baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get information about a specific block'), so an agent can immediately tell what the tool returns at a high level. It does not distinguish itself from neighboring read tools such as get_network_status, get_transaction_status, or get_account_info, and 'information' is left unenumerated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus the many other chain-inspection siblings, nor any prerequisites. The only extra sentence is an unrelated cross-promotion for earning_opportunities, which does not help select or invoke this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bns_infoC
Get detailed information about a BNS domain name.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | BNS name to lookup (e.g., 'alice.btc') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it discloses almost nothing: not whether the lookup is on-chain/live or cached, what 'detailed information' includes (owner, resolver, expiry, price), or what happens for unregistered names. The second sentence is an upsell, not behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is appropriately short and front-loaded, but the appended 'Tip' about earning_opportunities is filler that does not help an agent invoke this tool and dilutes the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with a fully documented schema, the essentials are present. But with no output schema and no annotations, the description should at least sketch what 'detailed information' contains; as written, an agent cannot anticipate the return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'name' parameter is documented with an example ('alice.btc'), so the schema does the work. The description adds no format or normalization guidance beyond it, which is the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get detailed information') and resource ('BNS domain name'), so an agent knows this is a read/lookup. However, it never distinguishes itself from close siblings like lookup_bns_name or get_bns_price, leaving ambiguity about which resolving tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus lookup_bns_name, reverse_bns_lookup, or list_user_domains. The only guidance is a promotional tip to call earning_opportunities, which is unrelated to the task of looking up a domain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bns_priceC
Get the registration price for a BNS domain name.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | BNS name to check (e.g., 'alice') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It never states that this is a read-only/query operation, whether the price varies with name length or registration duration, what currency the price is denominated in, or whether fees are included — all material for a price lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is well front-loaded and earns its place. The second sentence is a promotional tip about earning_opportunities that does not help an agent decide or invoke this tool, so it is filler rather than guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and only one parameter, so not much is needed, but for a pricing tool the response shape (currency, units, whether it is a fixed or length-tiered price) is left entirely unexplained, leaving a real gap for correct interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema description coverage is 100%, with the schema already giving an example ('alice'). The description adds no constraint such as whether the bare name or full '.btc' name should be passed, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get the registration price for a BNS domain name.' Clear what it returns, but it does not distinguish itself from near siblings such as get_bns_info, check_bns_availability, or preorder_bns_name, which an agent may confuse with pricing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use this versus check_bns_availability (check first) or preorder_bns_name (act second), nor any prerequisite that the name must be available. The only extra sentence is an unrelated promotion for earning_opportunities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_btc_address_txsB
Get recent transaction history for a Bitcoin address (last 25 transactions). Returns a summary of each transaction including confirmation status, fee, and amounts. Useful for monitoring address activity and verifying payment receipts.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Bitcoin address (e.g. bc1... for mainnet, tb1... for testnet) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose two useful traits: the result is capped at the last 25 transactions and each entry carries confirmation status, fee, and amounts. It is silent on pagination or retrieval of older history, error behavior for malformed addresses, and whether it is read-only in the safe sense, so meaningful gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are tight and front-loaded with scope and return shape. The trailing 'Tip: call earning_opportunities...' is unrelated promotional content that does not help an agent invoke this tool and dilutes an otherwise clean definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema and no annotations, the description covers the essentials: what is fetched, how much is fetched, and what each result entry contains. Only the pagination/older-history question and invalid-address handling are unaddressed, which are minor for this simplicity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one required parameter and schema coverage is 100%, with the schema itself providing the mainnet/testnet address examples. The description adds nothing about the address parameter, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('Get recent transaction history for a Bitcoin address') and adds scope (last 25 transactions) plus the fields returned. It does not distinguish itself from adjacent siblings such as get_btc_transaction_status or get_account_transactions, so an agent must infer which lookup applies to a given address.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'useful for monitoring address activity and verifying payment receipts' implies when to reach for it, but there are no explicit exclusions or named alternatives among the many sibling lookups. The agent is left to infer that this is the bulk-recent-history tool rather than the single-transaction status tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_btc_balanceA
Get the BTC balance for a Bitcoin address. Returns both total balance (including unconfirmed) and confirmed balance.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Bitcoin address to check (bc1... for mainnet, tb1... for testnet). Uses wallet's Bitcoin address if not provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral-disclosure burden. It usefully states that the response includes total balance (including unconfirmed) and confirmed balance, but it does not explicitly discuss side-effect-free reads, authentication, rate limits, or error behavior; 'get' implies read-only but does not formally declare it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is front-loaded and efficient: two sentences state purpose and return values. The appended earning_opportunities tip is short but extraneous for invoking this tool, keeping it just below a perfect conciseness score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only balance lookup with one optional parameter, the description plus schema provide enough to call it correctly. It states the returned balance components, and the schema handles address formatting and defaulting; only minor operational context such as errors or auth is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single optional address parameter is fully documented in the schema, including mainnet/testnet prefixes and the wallet-default behavior. The description adds no parameter details beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: get the BTC balance for a Bitcoin address. It also says the return includes total balance with unconfirmed and confirmed balance, making the purpose unambiguous. Although it does not name a sibling, the Bitcoin-address scope distinguishes it from STX/sBTC balance tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_wallet_info, get_btc_utxos, get_btc_address_txs, sbtc_get_balance, or get_token_balance. The tip about earning_opportunities is promotional and does not help select among balance tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_btc_feesA
Get current Bitcoin fee estimates for different confirmation targets. Returns fast (~10 min), medium (~30 min), and slow (~1 hour) fee rates in sat/vB.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden and does disclose the return shape: fast (~10 min), medium (~30 min), and slow (~1 hour) fee rates in sat/vB. It doesn't state read-only status explicitly or mention rate limits/caching, but for a zero-parameter query the behavioral disclosure is mostly adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and return format are front-loaded in two efficient sentences. The trailing tip about earning_opportunities does not help invoke this tool and is arguably promotional, slightly reducing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter getter with no output schema, the description explains what comes back and in what units. It omits source, freshness guarantees, or caching behavior, but those are not strictly necessary to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics to document. Baseline 4 applies; the description does not need to add parameter detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get current Bitcoin fee estimates') and clarifies the confirmation-target scope, which distinguishes it from siblings like get_stx_fees and styx_fees. An agent can identify this as the Bitcoin fee estimator without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies when to use it (need Bitcoin fee rates for fast/medium/slow confirmation), but gives no explicit when-not guidance or alternatives such as get_btc_mempool_info or get_stx_fees. The tip points to earning_opportunities, which is unrelated to invocation timing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_btc_mempool_infoA
Get current Bitcoin mempool statistics including transaction count, virtual size, total fees, and fee histogram. Useful for monitoring network congestion and estimating confirmation times.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the burden. Its wording implies a harmless read-only stats call, but it never explicitly says it has no side effects, requires no authentication, or discloses rate limits or freshness/staleness of the mempool snapshot.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are well front-loaded and earn their place. The appended tip promoting earning_opportunities is unrelated to selecting or invoking this tool and adds noise to an otherwise tight definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no parameters, and no annotations, the description does the needed work by naming the metrics returned. The only gaps are the absent behavioral notes (read-only nature, data freshness) that nothing else in the definition supplies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. There is nothing parameter-related for the description to compensate for, and it correctly omits any parameter discussion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get current Bitcoin mempool statistics') and enumerates the returned fields (transaction count, virtual size, total fees, fee histogram). It is clear what the tool does, but it never distinguishes itself from close siblings such as get_btc_fees, get_mempool_info, or get_network_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied through the stated purpose ('monitoring network congestion and estimating confirmation times'), which suggests a legitimate scenario but gives no explicit when-to-use vs. when-to-use-a-sibling guidance. The trailing tip about earning_opportunities is a cross-sell, not usage guidance for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_btc_transaction_statusB
Get confirmation status and details for a Bitcoin transaction by txid. Returns whether the transaction is confirmed, block height, fee, size, and I/O summary. Works for both confirmed and unconfirmed (mempool) transactions.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| txid | Yes | Bitcoin transaction ID (64 hex characters) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does real work: it enumerates what is returned (confirmed flag, block height, fee, size, I/O summary) and covers the mempool case. It does not state that the call is read-only, nor what happens on an unknown or malformed txid, which a zero-annotation tool should disclose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first three sentences are front-loaded and informative, but the closing 'Tip: call earning_opportunities…' is filler that does not help an agent invoke this tool and dilutes an otherwise tight definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by naming the returned fields, which is adequate for this tool's simplicity. Missing are an explicit read-only assurance and error behavior for invalid txids, leaving a read path whose failure semantics an agent must guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the txid parameter already documents the 64-hex-char format. The description only restates 'by txid', adding no format, encoding, or lookup-mode detail beyond the schema — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('get confirmation status and details for a Bitcoin transaction by txid') and the 'Bitcoin' qualifier implicitly separates it from the generic get_transaction_status sibling. It never names that sibling or tx_status_deep, so the differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to prefer this over get_transaction_status or tx_status_deep, and no prerequisites. The only situational note — 'works for both confirmed and unconfirmed (mempool)' — describes input coverage, not usage selection, and the trailing 'Tip' about earning_opportunities is unrelated promotion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_btc_utxosC
List all UTXOs (Unspent Transaction Outputs) for a Bitcoin address. Useful for debugging, transparency, and understanding transaction inputs.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Bitcoin address to check. Uses wallet's Bitcoin address if not provided. | |
| confirmedOnly | No | Only return confirmed UTXOs (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only list operation but does not state permissions, whether unconfirmed UTXOs are included by default, pagination behavior, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and efficient. However, the closing promotional tip about `earning_opportunities` is unrelated to calling this tool and does not earn its place in the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description should do more to explain return behavior and safety. It also does not clarify how this differs from the many other balance/UTXO-related siblings. The schema covers parameters, but the description leaves key behavioral context unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both `address` and `confirmedOnly` fully documented in the input schema. The description does not add meaning beyond the schema, which is acceptable at the baseline when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'List all UTXOs (Unspent Transaction Outputs) for a Bitcoin address.' It is specific enough for an agent to know the core operation, but it does not distinguish this tool from related siblings such as get_cardinal_utxos, get_ordinal_utxos, or get_btc_balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It offers broad contexts ('debugging, transparency, and understanding transaction inputs') but gives no explicit when-to-use guidance versus alternatives like get_btc_balance or get_btc_address_txs. There are no exclusions or conditions that would help an agent choose this tool over a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cardinal_utxosA
Get cardinal UTXOs (safe to spend - no inscriptions or runes). Cardinal UTXOs are regular Bitcoin outputs that do not contain ordinal inscriptions or rune balances. These UTXOs can be safely used for regular Bitcoin transfers and fees. Backed by the Unisat indexer; set UNISAT_API_KEY to lift free-tier rate limits.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Bitcoin address to check. Uses wallet's Bitcoin address if not provided. | |
| confirmedOnly | No | Only return confirmed UTXOs (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full behavioral burden. It usefully discloses the Unisat indexer dependency and API-key/free-tier rate limit, plus the safety property of cardinal UTXOs, but it does not confirm read-only behavior or describe result shape/pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and not long, but it repeats the same cardinal/no-inscriptions idea across the first three sentences. The closing earning_opportunities tip is unrelated to this retrieval tool and weakens focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with full schema coverage and no output schema, the description supplies key domain context (cardinal = no inscriptions/runes, safe to spend) and an operational note about the Unisat indexer and rate limits. It leaves return-value and endpoint reliability details implicit, but covers enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents address and confirmedOnly completely. The description adds no parameter-specific meaning beyond explaining what 'cardinal' means, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource ('Get cardinal UTXOs') and immediately defines the distinguishing property: safe to spend, with no inscriptions or runes. That is enough to separate it from ordinal/rune UTXO siblings even though they are not named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says cardinal UTXOs are for 'regular Bitcoin transfers and fees,' which implies the use case, but it never names when to use get_btc_utxos, get_ordinal_utxos, or get_rune_utxos instead, nor does it state exclusions. The earning_opportunities tip is not an alternative for retrieving UTXOs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_collection_infoC
Get information about an NFT collection.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| contractId | Yes | NFT collection contract ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden and does very little. "Get" implies a read, but it doesn't say what is returned, whether the call fails for unknown contracts, or whether any network/API key is required. The promotional tip consumes the only additional sentence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and front-loaded, but the second sentence is a promotional cross-sell to earning_opportunities that does not earn its place in a tool definition. It is not harmful, just wasted space in an already thin description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description should describe the shape of the returned information and its disambiguation from other NFT lookups. Nothing about return content is given, leaving an agent guessing what this call is good for.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single contractId parameter is fully documented as the NFT collection contract ID. The description adds no format, network, or validation detail beyond that, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a verb and resource ("Get information about an NFT collection"), which is more specific than a tautology. But it never says what kind of information (supply, floor, metadata, holder count) or how it differs from adjacent siblings such as get_nft_metadata, get_nft_owner, get_nft_history, and get_contract_info. An agent can only infer collection-level scope from the contractId parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance, and no reference to the many sibling NFT tools that could be confused with it. The only pointer given is to earning_opportunities, which is not an alternative for the same task and does not help selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contract_eventsC
Get events emitted by a smart contract.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results | |
| offset | No | Offset for pagination | |
| contractId | Yes | Contract ID in format: address.contract-name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: not ordering, deduplication across blocks, whether event payloads are decoded, nor how failures are reported for an invalid contractId. The schema's limit/offset implies pagination but the description never mentions it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is tight and front-loaded with zero waste. The second sentence is a promotional non-sequitur about earning_opportunities that consumes space without helping the agent invoke this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description is the only place an agent could learn what the event records look like or how pagination behaves across a large event log — and it says nothing about either. For a 3-parameter query tool with a potentially unbounded result set, this is a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so contractId format (address.contract-name), limit default 20, and offset are already fully documented in structured fields. The description adds no semantics beyond that, which is the baseline case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get events emitted by a smart contract.' An agent immediately knows the operation is a read of contract event logs. It does not differentiate from nearby siblings like get_contract_info or get_account_transactions, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to prefer this over get_contract_info, get_account_transactions, or call_read_only_function. The one routing hint present points at earning_opportunities, which is unrelated to reading contract events, making it actively unhelpful for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contract_infoC
Get information about a smart contract including its ABI.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| contractId | Yes | Contract ID in format: address.contract-name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Get' implies a read, and it discloses that the ABI is returned, but it says nothing about whether the contract must be deployed/verified, whether it hits the configured Stacks API URL, what happens on unknown contract IDs, or whether results are cached.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is tight and front-loaded. The trailing 'Tip' about earning_opportunities is unrelated to this tool and does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the description should say what 'information' means (source, functions, maps) since nothing else declares the return shape. Stating only 'including its ABI' leaves that partially open.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single contractId parameter already documents the 'address.contract-name' format, so the description adds nothing beyond it. Baseline 3 applies when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource: 'Get information about a smart contract including its ABI.' An agent can tell it apart from get_contract_events (events) and call_contract (writes), though the description never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus alternatives such as get_contract_events, call_read_only_function, or get_token_info. The only extra sentence is a promotional pointer to `earning_opportunities`, which does not help an agent decide to call this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hiro_api_keyA
Check whether a Hiro API key is configured. Shows the key source (stored file or environment variable) and a masked preview.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It does reveal that the output includes a masked preview, which is useful security context, but it omits whether the operation is read-only, what happens when no key is configured, or whether any permissions are required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is efficient and front-loaded, but the appended tip about earning_opportunities does not help an agent select or invoke this tool and is effectively promotional filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with no output schema and no annotations, the description is nearly complete: it states what is checked and what the response includes. It could be slightly stronger by mentioning the no-key case, but it is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description does not need to explain parameter meanings, and no schema gaps exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check') and resource ('Hiro API key is configured') and also specifies the exact output: key source (stored file or environment variable) and a masked preview. This clearly distinguishes it from sibling tools like set_hiro_api_key and delete_hiro_api_key.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explain when to use this tool versus alternatives such as set_hiro_api_key or delete_hiro_api_key, nor does it provide any prerequisites or context. The attached tip about earning_opportunities is unrelated to invoking this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inscriptionA
Get inscription content from a Bitcoin reveal transaction. Fetches the transaction from mempool.space and parses inscription data from the witness. Returns content type, body (as base64 and text if applicable), and metadata tags.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| txid | Yes | Transaction ID of the reveal transaction containing the inscription |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does a good job: it discloses that the tool fetches the transaction from mempool.space and parses inscription data from the witness. It also lists return fields (content type, base64/text body, metadata tags). It omits error behavior for invalid or non-inscription transactions, preventing a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is two efficient, front-loaded sentences covering source, parsing, and return values. The appended tip about earning_opportunities is unrelated promotional content and slightly reduces conciseness, but the main content is well structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the description is nearly complete: it explains the data source, parsing method, and return shape. Minor gaps remain around error conditions and handling of transactions with multiple inscriptions, but an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single txid parameter is fully described in the schema. The description adds only that it is a reveal transaction containing the inscription, which aligns with the schema but does not add format or edge-case details. Baseline 3 is appropriate when the schema fully documents the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: get inscription content from a Bitcoin reveal transaction. It also specifies the source (mempool.space) and parsing behavior (witness), making the tool's function clear. However, it does not explicitly distinguish itself from the sibling get_inscriptions_by_address, which looks up inscriptions by address rather than transaction ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. The only usage-like sentence is an unrelated tip to call earning_opportunities, which does not help an agent decide between get_inscription and get_inscriptions_by_address or explain prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inscriptions_by_addressB
Get all inscriptions owned by a Bitcoin address. Returns inscription IDs, content types, and metadata. Backed by the Unisat indexer; set UNISAT_API_KEY to lift free-tier rate limits.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Bitcoin address to check. Uses wallet's Bitcoin address if not provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description usefully discloses the return contents (inscription IDs, content types, metadata), the Unisat indexer dependency, and free-tier rate limits with the UNISAT_API_KEY mitigation. It does not discuss pagination, failure modes, or what happens when the default wallet address is used, but the rate-limit and dependency context is valuable beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and return behavior are front-loaded and efficient, but the final 'Tip: call earning_opportunities' sentence is tangential and does not help an agent select or invoke this tool. Removing that promotional line would make the definition tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema, the description covers what is returned and the main operational caveat (Unisat rate limits). It could say more about pagination or result limits for addresses with many inscriptions, but the core invocation context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter and schema description coverage is 100%, so the schema already explains that the address defaults to the wallet's Bitcoin address. The description adds no additional parameter meaning, which matches the baseline 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Get all inscriptions owned by a Bitcoin address.' This clearly separates it from a single-inscription lookup like get_inscription and from generic NFT tools like get_nft_holdings, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the purpose but gives no guidance on when to choose this tool over related ones such as get_inscription, get_nft_holdings, or get_ordinal_utxos. The 'Tip' about earning_opportunities is a promotional aside, not usage guidance for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mempool_infoC
Get pending transactions in the mempool.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results | |
| offset | No | Offset for pagination | |
| senderAddress | No | Filter by sender address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, but it only says the tool gets pending transactions. It does not disclose whether the operation is read-only, what the result shape is, whether pagination is applied, or any rate/auth considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is concise and front-loaded, but the second sentence is an unrelated advertisement for `earning_opportunities` and does not help the agent select or invoke this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description should do more to explain the mempool scope, return behavior, and how filtering/pagination affect results. As written, an agent lacks enough context to distinguish this from the Bitcoin mempool sibling and to understand what it will receive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents `limit`, `offset`, and `senderAddress`. The description adds no parameter meaning, such as clarifying that `offset` is for pagination or that `senderAddress` filters pending transactions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear get operation and resource ('Get pending transactions in the mempool'), so an agent can infer the core purpose. However, it does not distinguish this tool from the sibling `get_btc_mempool_info`, nor does it specify which chain's mempool is being queried.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as `get_btc_mempool_info` or `get_transaction_status`. The only additional sentence is an unrelated promotional tip to call `earning_opportunities`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_network_statusC
Get the current status of the Stacks network.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With zero annotations the description carries the full behavioral burden, and it discloses almost nothing beyond 'current status' - not what fields are returned, whether the call hits a live node or a cache, or any rate/failure characteristics. 'Current' implies freshness but is unquantified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and precise, but the trailing tip is a promotional cross-reference that does no work toward invoking this tool correctly. Two sentences is the right size; one of them is essentially filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No annotations and no output schema, so the description is the only source of information about the return value, and it says nothing about what a 'status' payload contains. An agent can call it, but cannot predict what it will get back or how to use the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so there is nothing for the description to disambiguate; baseline is 4. The empty schema confirms no arguments are needed to invoke it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('Get the current status of the Stacks network'), so the agent knows this is a cheap read of network-level state. It does not, however, distinguish itself from the many adjacent state-read siblings (get_mempool_info, get_pox_info, nonce_health, pillar_status, legion_status), so the agent must infer that 'network' means chain-level health rather than a specific subsystem.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus the other status/info tools in the catalog. The only routing sentence points at earning_opportunities, which is a cross-sell for a different task, not guidance on selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nft_historyC
Get the transfer history of NFTs in a collection.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results | |
| offset | No | Offset for pagination | |
| contractId | Yes | NFT collection contract ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says nothing about read-only semantics, pagination behavior (limit/offset defaults of 20/0), result ordering, or whether the history covers the entire collection or a single token, and the earning_opportunities tip is noise rather than behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is short and front-loaded and earns its place. The appended Tip sentence is off-topic cross-marketing that dilutes rather than supports the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only query tool with no annotations and no output schema, the description should clarify what is returned (per-token transfers? collection-wide events?) and how pagination behaves. Neither is covered, leaving the agent to guess at the result shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters documented inline, so the baseline is 3. The phrase 'in a collection' loosely corresponds to the required contractId but adds no format, pagination, or sorting semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: transfer history of NFTs within a collection. That distinguishes it from holdings/metadata siblings such as get_nft_holdings and get_nft_metadata, but it never names those alternatives or clarifies whether it is scoped to a whole collection (as contractId implies) or to individual tokens.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus get_collection_info, get_nft_holdings, or a general account-transaction tool. The only 'advice' is an unrelated nudge toward earning_opportunities, which does not help the agent select this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nft_holdingsC
List all NFTs owned by an address.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results | |
| offset | No | Offset for pagination | |
| address | No | Wallet address to check. Uses configured wallet if not provided. | |
| contractId | No | Filter by specific NFT collection contract |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With zero annotations, the description must carry the full behavioral burden. It implies a read-only listing but never says whether it supports pagination semantics, what happens when address is omitted beyond the schema note, or whether the call errors on an invalid address. It also says nothing about the shape of what comes back.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and tight, but the second sentence is a promotional tip unrelated to invoking this tool, so not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Parameters are fully covered by the schema, but with no annotations and no output schema, the description should tell an agent what a result entry looks like (token IDs? contract? metadata?) and whether results are paginated in practice. It leaves that entirely unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit, offset, address, and contractId are all documented inline. The description adds no extra meaning (e.g., default page size behavior across pages, or how contractId filtering interacts with limit) beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'List all NFTs owned by an address.' That clearly separates it from get_nft_owner (single-NFT owner lookup) and get_nft_metadata, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to reach for this versus get_nft_owner, list_user_tokens, get_inscriptions_by_address, or get_ordinal_utxos. The only routing advice is a cross-sell tip pointing at earning_opportunities, which is not a functional alternative for listing NFTs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nft_metadataC
Get metadata for a specific NFT (SIP-016).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenId | Yes | Token ID of the NFT | |
| contractId | Yes | NFT collection contract ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, meaning the description carries the full burden of behavioral disclosure. It contains zero operational details regarding authentication, rate limits, error types, or the nature of the operation (e.g., Read-Only).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loads the primary function immediately. The inclusion of a tip is slightly distracting from the function's core description, preventing a perfect score, but it remains concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool retrieves data (metadata) but provides no description of the expected return structure, making it incomplete for an agent trying to predict the output. Without output schema or behavioral annotations, the description is insufficient for a fully autonomous call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since schema description coverage is 100%, the baseline score of 3 is applied. The description does not add any semantic meaning or constraints regarding the format or expected values of the 'contractId' or 'tokenId' beyond what is already defined in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: 'Get metadata for a specific NFT'. Including '(SIP-016)' provides a useful technical context by referencing a specific standard, which helps an agent distinguish this function from generic NFT metadata calls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool offers very little guidance on when to use it relative to alternatives. It provides a 'Tip' directing the user to another tool, which is a suggestion for the next step rather than a usage guideline for the current function's context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nft_ownerC
Get the current owner of a specific NFT.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenId | Yes | Token ID of the NFT | |
| contractId | Yes | NFT collection contract ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description bears full behavioral burden and says nothing about what is returned, whether the owner comes back as an address string, how a non-existent token or unowned NFT is handled, or whether this requires network access to a specific chain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is tight and front-loaded, but the appended 'Tip' about earning_opportunities is promotional noise that does not help call this tool and dilutes a two-line description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read with fully described schema and no output schema, the essentials are present, but the description omits what the call returns and error/empty behavior for unmatched tokens, leaving real gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (contractId described as 'NFT collection contract ID', tokenId as 'Token ID of the NFT'), so the schema does the work. The description adds no syntax, format, or example beyond the schema baseline, making 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get the current owner of a specific NFT.' This clearly distinguishes it from siblings like get_nft_holdings (list holdings) and get_nft_metadata (metadata), though it never names those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus get_nft_holdings, get_collection_info, or get_nft_history. The only 'tip' points to earning_opportunities, an unrelated sibling, which adds no routing value.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ordinal_utxosA
Get ordinal UTXOs (contain inscriptions or runes - do not spend). Ordinal UTXOs carry inscriptions or rune balances and should not be spent in regular transfers. Backed by the Unisat indexer; set UNISAT_API_KEY to lift free-tier rate limits.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Bitcoin address to check. Uses wallet's Bitcoin address if not provided. | |
| confirmedOnly | No | Only return confirmed UTXOs (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does well: it discloses the indexer dependency (Unisat), rate-limit behavior, and the need for UNISAT_API_KEY. It also warns that these UTXOs should not be spent, which is a critical operational trait not captured by the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core definition is front-loaded and efficient. There is mild redundancy in restating that ordinal UTXOs carry inscriptions or rune balances, and the closing tip about 'earning_opportunities' is promotional rather than essential to invoking this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with no output schema, the description covers what the tool returns conceptually, the data source, rate-limit caveat, and key safety warning. It could go slightly further on return shape or pagination behavior, but nothing critical for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters ('address' and 'confirmedOnly'). The description adds no parameter-specific meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get ordinal UTXOs') and immediately clarifies what makes them ordinal ('contain inscriptions or runes'), which distinguishes them from regular BTC UTXOs and cardinal UTXOs. The warning 'do not spend' further separates their purpose from generic UTXO retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when the tool applies (ordinal UTXOs with inscriptions or runes) and gives an important handling constraint ('should not be spent in regular transfers'). It does not explicitly name alternatives like get_btc_utxos or get_cardinal_utxos, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pox_infoA
Current PoX-5 state: reward cycle, burn height, next cycle start, and whether the prepare phase is active (stake, extend and unstake are refused during it).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it discloses the most consequential behavioral fact: the prepare phase blocks stacking mutations. For a zero-parameter read tool that is substantial. It does not describe the return shape, freshness/latency, or error behavior, keeping it out of 5 territory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the state fields and followed by the one operational caveat that matters. The trailing tip about earning_opportunities is slightly promotional but still earns its place as cross-tool routing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so enumerating the returned fields in prose is exactly the right compensation, and the prepare-phase caveat covers the main edge case. Nothing critical is missing for an agent to call a parameterless state reader correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero properties, so there are no parameters whose meaning could be lost. The description correctly implies a no-argument call. Baseline 4 applies for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (PoX-5 state) and enumerates the exact fields returned: reward cycle, burn height, next cycle start, prepare-phase flag. That is far more specific than a tautology. It stops short of distinguishing itself from the related siblings (get_stacking_status, jingswap_get_cycle_state), which an agent could reasonably confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete, actionable usage context: during the prepare phase, stake/extend/unstake calls are refused, so this tool is the check to make first. It also routes the agent onward to earning_opportunities. What it lacks is any explicit statement of when to prefer it over get_stacking_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rune_balancesA
Fetch all rune token balances held at a Bitcoin address via the Unisat indexer.
Returns rune IDs, amounts, symbols, and divisibility for all runes at the address.
If no address is provided, uses the active wallet's Taproot address. Set UNISAT_API_KEY for higher rate limits (5 req/s on free tier).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Bitcoin address to check (uses active wallet's Taproot address if omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden and does reasonably well: it names the backend indexer, discloses a rate limit (5 req/s on free tier) and the API-key requirement for higher limits, and describes the returned fields. It stops short of stating pagination behavior for addresses with many runes or what happens on indexer failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the operation and scope, then return fields, then defaults. The trailing 'Tip' cross-selling `earning_opportunities` is marginally promotional but short enough not to displace the core content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the description covers the data source, return fields, default-address behavior, and rate limits. The main residual gap is pagination/large-result handling, but nothing an agent needs in order to call it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single `address` parameter and its default is already documented in the schema. The description restates the same default, adding no new syntax, format, or validation detail beyond what the structured field provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Fetch all rune token balances held at a Bitcoin address') plus the data source (Unisat indexer). It is clear on its own, but does not distinguish itself from the very similar sibling `runes_get_address_balances` in the tool list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete fallback behavior ('If no address is provided, uses the active wallet's Taproot address') and an API-key tip for rate limits, which is genuinely useful context. However, with near-duplicate siblings like `runes_get_address_balances` and `get_rune_utxos` available, it offers no explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rune_utxosB
List UTXOs containing a specific rune at a Bitcoin address via the Unisat indexer.
Rune ID format: 'block:tx' (e.g., '840000:1' for UNCOMMONGOODS).
If no address is provided, uses the active wallet's Taproot address.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| runeId | Yes | Rune ID in 'block:tx' format (e.g., '840000:1') | |
| address | No | Bitcoin address to check (uses active wallet's Taproot address if omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the indexer behind the data and the fallback to the active wallet's Taproot address, but says nothing about pagination, ordering, whether unconfirmed/spent outputs are included, or failure modes when the rune ID or address is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core operation in the first sentence, followed by the rune ID format and default-address rule. The paragraph break is well used, but the trailing 'earning_opportunities' tip is cross-sell noise that doesn't help an agent call this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with no annotations and no output schema, the description covers the what, the identifier format, and the address default. It stops short of describing the returned UTXO record shape, which matters since no output schema exists to fill that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both schema fields already document the 'block:tx' rune ID format and the Taproot fallback. The description restates both points rather than adding new semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — 'List UTXOs containing a specific rune' — plus the data source (Unisat indexer) and address scope. It distinguishes itself implicitly from balance-oriented siblings like get_rune_balances and runes_get_address_balances by asking for UTXOs, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied (call this when you need rune-bearing UTXOs, e.g. before transferring), and the default-address rule is stated. But there is no explicit when/when-not guidance, no mention of what makes this preferable to get_btc_utxos or get_rune_balances, and the closing 'Tip' points to an unrelated earning tool rather than clarifying selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_server_versionA
Check the currently running MCP server version and compare with the latest published version on npm. Use this to detect if you're running a stale cached version (common with npx). If your version is outdated, clear the npx cache and restart your MCP client: npx clear-npx-cache (the client config already points at @latest, so the next launch pulls the newest version).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It discloses that the call reaches out to npm and why cache staleness matters, but never says what the result looks like (version string? boolean? diff?) or what happens if the npm lookup fails or the network is unavailable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and remediation are front-loaded and efficient, but the closing 'Tip: call earning_opportunities...' is unrelated promotional filler that does not help an agent decide to call this tool and dilutes the signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple diagnostic tool this is nearly sufficient, but with no output schema and no annotations the description should at least sketch the return shape and note the external npm dependency/failure mode. As written the agent knows when to call it but not what it will get back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: check the running MCP server version and compare it against the latest npm-published version. No sibling tool overlaps with this, and the two-part behavior (local version + remote comparison) is spelled out rather than implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the triggering condition ('to detect if you're running a stale cached version (common with npx)') and gives concrete remediation steps for the outdated case. There are no real alternatives among siblings, so the absence of exclusions is not a meaningful gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stacking_rewardsB
PoX-5 sBTC rewards an address has earned from its signer manager for one reward cycle and not yet claimed (before the manager's fees), whether the manager still has to pull them from pox-5, and whether the manager supports an on-chain staker claim.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Stacks address. Uses the active wallet if omitted. | |
| rewardCycle | Yes | Reward cycle to check | |
| signerManager | No | Signer manager to check. Defaults to the address's current signer manager. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden and does well: it explains that the amount is gross of the signer manager's fees, that it is unclaimed, and that two flags report whether the manager must still pull funds from pox-5 and whether an on-chain staker claim is supported. It doesn't explicitly say this is a read-only/no-state-change call or mention failure modes, which keeps it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short and front-loaded, but the core sentence is a long run-on bundling three separate return values, and the trailing 'Tip' about earning_opportunities is tangential promotion that doesn't help call this tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by describing the three pieces of returned information in prose (unclaimed amount before fees, pull-required flag, claim-support flag). For a 3-parameter read tool with no annotations, that is close to sufficient; only a pointer to the follow-up claim path is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and all three parameters (address, rewardCycle, signerManager) are documented there with defaults. The description only implicitly references them ('an address', 'one reward cycle', 'its signer manager') and adds no format, unit, or cycle-range detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: it reads the PoX-5 sBTC rewards an address has earned but not yet claimed from its signer manager, plus two accompanying status flags. That is genuinely distinguishing information, but the sentence is convoluted and never contrasts itself with siblings like claim_stacking_rewards, dual_stacking_get_rewards, or get_stacking_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no 'when to use' guidance at all — no statement about using this before claiming, or when to prefer it over claim_stacking_rewards / dual_stacking_get_rewards. The only routing hint is a 'Tip' pointing at earning_opportunities, which is promotional rather than a selection criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stacking_statusA
PoX-5 staking status for an address: locked amount, signer manager, lock period, unlock cycle and burn height, any protocol bond membership, and locked/unlocked STX balance.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Stacks address to check. Uses the active wallet if omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral burden; it does disclose the shape of what comes back (lock state, signer manager, bond membership, balances), which is genuinely useful. It omits failure modes — e.g., behavior for a non-stacking address, whether bond membership is null when absent, or any network/latency expectations. Adequate but noticeably short of full disclosure for an annotation-free tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The payload sentence is front-loaded and dense with useful specifics, and the second sentence is a short routing tip rather than filler. Slightly more verbose than strictly necessary, but every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description compensates well by enumerating the returned fields; the lone parameter is fully covered by the schema. The only real gap is edge-case behavior for addresses without an active stacking position, which an agent would otherwise learn only by calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single address parameter already documents the 'uses active wallet if omitted' fallback, so the description adds nothing parameter-specific. Baseline 3 applies since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific protocol domain (PoX-5 staking status) and enumerates the concrete data returned: locked amount, signer manager, lock period, unlock cycle, burn height, bond membership, and locked/unlocked balance. That is far more than a restated name. It does not, however, distinguish itself from close siblings like dual_stacking_status, pillar_direct_stacking_status, or get_pox_info, which an agent must still disambiguate on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the read-only 'get' framing and the follow-up tip pointing at earning_opportunities for acting on the result. There is no statement of when this is the right call versus dual_stacking_status or pillar_direct_stacking_status, and no note about what happens for an address that isn't stacking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stacks_api_urlA
Show the current Stacks API URL being used for blockchain queries. Indicates whether it's a custom node or the default Hiro API.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It does disclose the nature of the returned value (custom node vs. Hiro default), but it never states that the call is read-only with no side effects, whether authentication or an unlocked wallet is required, or what happens when no custom URL is configured.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is tight and front-loaded. The second 'Tip: call earning_opportunities to see how to put your assets to work' is unrelated promotional content that does not help an agent decide about endpoint configuration and dilutes an otherwise one-sentence definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only getter with no output schema, the description covers what the tool reports and the meaningful distinction in the value. Only the read-only/no-side-effect framing and the unset-state behavior are missing, which are minor for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there is nothing for the description to disambiguate. Baseline of 4 applies, and the description wastes no effort re-explaining nonexistent inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Show the current Stacks API URL being used for blockchain queries,' and adds the discriminator that the value may be a custom node or the default Hiro API. That is clear enough to distinguish it from mutation siblings like set_stacks_api_url or delete_stacks_api_url, though those siblings are never named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the read-side counterpart for inspecting configuration. There is no statement of when to call it (e.g., before troubleshooting, before switching endpoints) and no pointer to set_stacks_api_url or get_hiro_api_key as adjacent tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stx_balanceC
Get the STX balance for a wallet address.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Wallet address to check. Uses configured wallet if not provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It only implies a read via 'Get' and does not disclose permissions, whether the balance includes locked/staked STX, rate limits, or other operational traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in a single clear sentence. The subsequent tip is short but is not strictly necessary for invoking the tool, which keeps it slightly below ideal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool, the description is minimally adequate. However, with no annotations and no output schema, it leaves gaps around return format and behavioral details that an agent might reasonably want.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage and already explains that address is optional and falls back to the configured wallet. The description adds no further parameter meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: get the STX balance for a wallet address. This is clear and actionable, but it does not explicitly differentiate the tool from siblings like get_btc_balance, get_token_balance, or get_account_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, nor any exclusions. The tip about earning_opportunities is a cross-sell rather than selection guidance for this balance tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stx_feesA
Get current STX fee estimates for different priority levels. Returns low, medium, and high fee tiers in micro-STX, based on mempool analysis.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the behavior burden, and it does reasonably well: it discloses that three tiers are returned, that values are in micro-STX, and that estimates derive from mempool analysis. It omits any note on freshness/refresh cadence or whether the call is cached, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core two sentences are front-loaded and waste-free, covering purpose, tiers, units, and data source. The appended 'Tip: call earning_opportunities...' is promotional filler that doesn't help an agent invoke this tool correctly, so it's not a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, read-only fee lookup with no output schema, the description supplies enough: what is returned (low/medium/high), the unit (micro-STX), and the basis (mempool). An explicit note that it is a read-only/side-effect-free call would make it complete, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4. The description doesn't need to explain inputs and correctly focuses on outputs instead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get current STX fee estimates'), names the priority tiers, and specifies the return units (micro-STX). An agent can distinguish it from get_btc_fees purely from the 'STX' scoping without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage by saying it returns low/medium/high tiers based on mempool analysis, which signals fee-selection use. But it never says when not to use it or names the obvious alternative (get_btc_fees) for BTC fee estimation. The trailing tip about earning_opportunities is a cross-sell, not routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taproot_addressA
Get the wallet's Taproot (P2TR) address for receiving inscriptions. This address follows BIP86 derivation (m/86'/0'/0'/0/0) and uses bc1p... (mainnet) or tb1p... (testnet) prefix.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does add real value by disclosing BIP86 derivation (m/86'/0'/0'/0/0) and the bc1p/tb1p prefixes, which tells the agent the address is deterministic and network-dependent. It omits whether the wallet must be unlocked or funded, and whether the returned address is stable across calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in a single sentence, with derivation and prefix details in a compact second sentence. The trailing 'Tip' about earning_opportunities is tangential cross-promotion that does not help invoke this tool, slightly diluting focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-argument read-only getter with no output schema, the description gives enough: what is returned (a Taproot address), how it is derived, and what it looks like. The main gap is operational context such as wallet-unlock requirements or which network is active.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is nothing to disambiguate; the baseline applies. The description avoids inventing parameter-like options and correctly frames the tool as a no-argument getter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Get the wallet's Taproot (P2TR) address' — plus its intended use ('for receiving inscriptions'). This clearly separates it from sibling tools like taproot_get_pubkey, get_btc_balance, or get_inscriptions_by_address.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The receiving-inscriptions framing gives implied context, and the tip routes the agent to earning_opportunities for a downstream goal. But there is no explicit 'use this instead of X' guidance versus taproot_get_pubkey or get_btc_address_txs, and no stated preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_balanceA
Get the balance of any SIP-010 token for a wallet address.
Supports well-known tokens by symbol: sBTC, USDCx, ALEX, DIKO Or use the full contract ID: address.contract-name
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Token symbol (e.g., 'USDCx', 'sBTC') or contract ID | |
| address | No | Wallet address to check. Uses configured wallet if not provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Get the balance' implies a read-only query, which is reassuring for a low-risk operation, but it doesn't disclose what the response contains, whether it fails on unknown tokens, or any rate/permission constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded core purpose with the token-format guidance immediately after; the closing 'Tip' about earning_opportunities is a useful cross-reference though slightly peripheral to the core operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The input side is well covered, but with no output schema and no annotations, the description stops short of describing the return value (amount/decimals/format) an agent would want to interpret the balance, leaving a gap for a query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is already covered, but the description adds real value by spelling out the contract-ID syntax ('address.contract-name') and a fuller set of symbol examples, clarifying how the token param is actually formed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get the balance of any SIP-010 token') scoped to a wallet address, and the SIP-010 qualifier cleanly distinguishes it from siblings like get_stx_balance, get_btc_balance, and sbtc_get_balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete input examples (symbols sBTC/USDCx/ALEX/DIKO, or a contract ID) and refers to earning_opportunities as a follow-on, but never says when to prefer this over get_stx_balance or sbtc_get_balance, so the choice between balance tools is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_holdersC
Get the top holders of a SIP-010 token.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of holders to return | |
| token | Yes | Token symbol or contract ID | |
| offset | No | Offset for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It implies a ranked read query via 'top holders,' but does not state the ordering criterion, whether contracts are excluded, how pagination behaves, or what fields are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is tight and front-loaded with the core purpose. The second sentence is a cross-sell to `earning_opportunities` that does not help invoke this tool, so it is slightly wasteful but not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read query with full schema parameter coverage, the description is minimally adequate. However, with no annotations and no output schema, it should ideally state what the returned holder records contain and how the ranking is determined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (token, limit, offset) are already documented in the schema. The description does not add meaning beyond that baseline, such as whether 'top' is by balance or how offset interacts with ranking.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'Get the top holders of a SIP-010 token.' This clearly distinguishes it from balance and metadata tools, though it does not explicitly differentiate it from other holder-style siblings such as tenero_holder_stats or runes_get_holders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like get_token_balance or get_token_info. The tip pointing to `earning_opportunities` is about yield opportunities, not about selecting this holder-listing tool, so it does not serve as usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_infoC
Get metadata for a SIP-010 token (name, symbol, decimals, supply).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Token symbol or contract ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It implies a read-only metadata lookup and lists returned fields, but does not describe error behavior, token-not-found handling, authentication requirements, rate limits, or whether the lookup is cached/live.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded and expressed in one efficient sentence. The second sentence is a promotional cross-sell tip rather than invocation guidance, which slightly weakens focus but does not make the definition verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read operation, the description and schema are mostly sufficient to invoke the tool correctly. However, because there is no output schema and no annotations, the description could do more to clarify return shape and failure behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter is fully documented in the schema as "Token symbol or contract ID," and the schema description coverage is 100%. The tool description adds no parameter-specific semantics beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: "Get metadata for a SIP-010 token," and enumerates the returned fields (name, symbol, decimals, supply). It is specific enough to understand the operation, but it does not distinguish itself from nearby token-related siblings such as bitflow_get_tokens or tenero_token_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use this tool instead of alternatives like get_token_balance, list_user_tokens, bitflow_get_tokens, or tenero_token_info. The included tip points to earning_opportunities as a next step, but that is not guidance for selecting or qualifying this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transaction_statusC
Check the status of a Stacks transaction by its txid.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| txid | Yes | The transaction ID (64 character hex string) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full disclosure burden. 'Check' implies a read, but it says nothing about whether it queries mempool vs confirmed chain state, what happens for unknown or pending txids, whether the txid must be fully confirmed, or rate limits. For a tool with zero annotation coverage this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is tight and front-loaded, but the appended 'Tip: call earning_opportunities' is unrelated promotional content that consumes attention and could nudge an agent toward an off-topic call. Every sentence should earn its place; this one does not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one simple parameter and full schema coverage, the call mechanics are covered, but there is no output schema, so the description should say what 'status' means (pending/confirmed/failed, block height, confirmations). That return-value information is absent, leaving the agent unable to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the txid property already defines the '64 character hex string' format precisely. The description only restates 'by its txid', adding nothing beyond the schema, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Check the status of a Stacks transaction') and scopes it to Stacks, which implicitly separates it from get_btc_transaction_status. However, it never names tx_status_deep, an obvious sibling that also queries Stacks transaction state, so it doesn't fully differentiate from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus tx_status_deep or get_btc_transaction_status, nor any note about polling, pending transactions, or unknown txids. The trailing 'Tip' points at an unrelated tool (earning_opportunities), which is cross-promotion rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wallet_infoA
Get the agent's wallet address and status. If the agent doesn't have a wallet yet, provides guidance on how to assign one.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. 'Get' implies a read-only operation and it usefully discloses the no-wallet fallback behavior (returns guidance rather than failing), but says nothing about auth requirements, whether it triggers wallet creation, or what 'status' comprises.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core action front-loaded, followed by the fallback behavior. The trailing 'Tip: call earning_opportunities' is marginally promotional but still earns its place as agent routing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param read tool with no output schema and no annotations, the description is close to complete: it names the returned concepts (address, status) and the edge case. It would be stronger if it briefly characterized what 'status' contains, since there is no output schema to fall back on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is nothing for the description to disambiguate. The description correctly presents this as a no-argument self-query.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: retrieve the agent's own wallet address and status, plus a fallback behavior when no wallet exists. It does not differentiate from closely related siblings like wallet_status, wallet_list, or pillar_key_info, which an agent could easily confuse with this.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied (call this to learn your wallet address/status, and it self-routes to guidance when no wallet is assigned), and there is a cross-sell tip to earning_opportunities. No explicit when-to-use-this-vs-wallet_status guidance or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
identity_getB
Get agent identity information from ERC-8004 identity registry. Returns owner address, URI, and wallet address if set.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | Agent ID to look up |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description must carry the burden; 'Get' plus the field list makes clear this is a read of registry state. It does not say what happens when agentId does not exist, whether the call is free/gasless, or that wallet address is optional and often absent — 'if set' hints at the last point but nothing more.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is well front-loaded and the return-field sentence is useful. The trailing 'Tip: call earning_opportunities' is unrelated promotion that does not help an agent invoke this tool and dilutes the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read with no output schema, the description supplies the key return shape (owner, URI, wallet) which is exactly what's needed. Missing only edge-case behavior on unknown agent IDs, which is a minor gap at this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter agentId is documented in the schema as 'Agent ID to look up'. The description adds no format, origin, or bounds context (e.g. that IDs come from identity_get_last_id / identity_register), so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('Get') and resource ('agent identity information from ERC-8004 identity registry'), and enumerates the returned fields (owner address, URI, wallet address). It is distinguishable from identity_get_metadata and identity_get_last_id by the field list, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus the adjacent identity_get_metadata / identity_get_last_id / identity_register tools. The only routing sentence points at a completely unrelated tool (earning_opportunities), which is promotional rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
identity_get_last_idB
Get the most recently minted agent ID from the ERC-8004 identity registry. Returns null if no agents have been registered.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It does add one genuinely useful behavioral fact, the null return when the registry is empty, but says nothing about permissions, registry/network selection, or the shape of the returned ID.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core behavior and the null edge case are front-loaded in two tight sentences. The appended 'Tip' about earning_opportunities is unrelated marketing and is the one part that does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read with no output schema and no annotations, the description covers the essential gap by explaining the null result. Only the concrete return type of the minted ID is left unspecified, which is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to disambiguate; baseline 4 applies. The description correctly requires no input arguments and does not invent any.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource: get the most recently minted agent ID from the ERC-8004 identity registry. That is enough to separate it from identity_get and identity_get_metadata, though it never explicitly names those siblings or contrasts scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this instead of identity_get or reputation_get_last_index. The only pointer is a promotional 'Tip' to call earning_opportunities, which is a cross-sell rather than a selection rule for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
identity_get_metadataB
Read a single metadata value by key from an agent's ERC-8004 identity. Returns the raw buffer value as a hex string.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Metadata key to read | |
| agentId | Yes | Agent ID to query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden; it does disclose the return representation (raw buffer returned as a hex string), which is genuinely useful. It does not say what happens for a missing key (error vs empty) or whether this is a pure read with any auth/rate constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and efficient, but the appended 'Tip' about earning_opportunities is off-topic noise that does not earn its place in a metadata-read tool definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does cover the return format (hex string), which is the most important thing. It still leaves the failure mode for an unset key and the relationship to sibling identity tools unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both agentId and key are already documented; baseline 3 applies. The description adds only that the value is looked up 'by key' without clarifying key namespacing or case sensitivity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (read a single metadata value by key) scoped to an agent's ERC-8004 identity. The key-granularity distinguishes it implicitly from identity_get (whole record) and identity_set_metadata (write counterpart), though it never names those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus identity_get or the other identity_* siblings, and no stated prerequisites. The only cross-reference is an unrelated promotional tip pointing at earning_opportunities, which does not help tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
identity_registerA
Register a new agent identity on-chain using ERC-8004 identity registry. Returns a transaction ID. Check the transaction result to get the assigned agent ID. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Fee preset ("low", "medium", "high") or micro-STX amount. Optional. | |
| uri | No | URI pointing to agent metadata (IPFS, HTTP, etc.). Optional. | |
| metadata | No | Array of metadata key-value pairs. Values must be hex-encoded buffers. Optional. | |
| sponsored | No | Use sponsored transaction relay so a relay service pays fees instead of your wallet. Requires SPONSOR_API_KEY env var or wallet-level sponsorApiKey. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does reasonably well: it discloses this is an on-chain write, that the return is a transaction ID rather than the agent ID itself, and that a wallet must be unlocked first. It does not mention that registration costs fees, whether identity is transferable afterward, or what failure modes look like (e.g., duplicate URI), leaving some gaps for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then return value, then prerequisite — good ordering with almost no wasted wording. The closing 'Tip: call earning_opportunities' sentence is off-topic marketing that does not help invoke this tool and slightly dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description correctly explains the return (transaction ID) and the two-step resolution of the agent ID, plus the wallet prerequisite. It stops short of describing failure handling or the sponsored-transaction path, but for a 4-param, 0-required registration call it is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so fee/uri/metadata/sponsored are already fully documented in the schema. The description adds no extra guidance on parameter interactions (e.g., fee presets vs. micro-STX, hex encoding constraints on metadata) beyond what is already structured. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+standard: 'Register a new agent identity on-chain using ERC-8004 identity registry.' This clearly differentiates it from siblings like identity_get, identity_set_uri, identity_transfer, which are read/update operations on an existing identity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete prerequisite ('Requires an unlocked wallet') and the follow-up step ('Check the transaction result to get the assigned agent ID'), which is exactly the workflow an agent needs. It does not name alternatives or explicitly say when not to use it, and the trailing earning_opportunities tip is unrelated to selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
identity_set_approvalA
Approve or revoke an operator for an agent identity in the ERC-8004 identity registry. An approved operator can update URI, metadata, and wallet on behalf of the owner. Only the NFT owner can call this. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Fee preset ("low", "medium", "high") or micro-STX amount. Optional. | |
| agentId | Yes | Agent ID to update | |
| approved | No | Grant approval (true) or revoke (false). Defaults to true. | |
| operator | Yes | Stacks address of the operator to approve or revoke | |
| sponsored | No | Use sponsored transaction relay so a relay service pays fees instead of your wallet. Requires SPONSOR_API_KEY env var or wallet-level sponsorApiKey. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and discloses the permission model, wallet state requirement, and what approved operators can do. It could say more about revocation effects or transaction-cost behavior, but it covers the key mutation and authorization context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and authorization requirements are front-loaded and easy to scan. The trailing tip about earning_opportunities is unrelated to invoking this tool and slightly reduces focus, but the description remains compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description supplies the essential permission and wallet prerequisites and explains the operator effect. Fee and sponsorship details are handled by the schema, though a bit more context on revocation behavior could improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters including fee, approved, and sponsored. The description mentions the operator and agent concept but adds little syntax, default, or enum meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It states a specific verb pair, resource, and domain: approve or revoke an operator in the ERC-8004 identity registry. It also distinguishes the tool from sibling identity setters by explaining that this is about delegated operator permissions rather than direct URI, metadata, or wallet updates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear prerequisites: only the NFT owner can call it and an unlocked wallet is required. It does not explicitly route to alternatives such as identity_transfer or identity_set_wallet, but the intended use case is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
identity_set_metadataA
Set a metadata key-value pair on an agent identity in the ERC-8004 identity registry. Value must be a hex-encoded buffer (max 512 bytes). The key "agentWallet" is reserved — use identity_set_wallet instead. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Fee preset ("low", "medium", "high") or micro-STX amount. Optional. | |
| key | Yes | Metadata key (max 128 chars) | |
| value | Yes | Metadata value as hex-encoded buffer (e.g., "616c696365" for "alice"). Max 512 bytes. | |
| agentId | Yes | Agent ID to update | |
| sponsored | No | Use sponsored transaction relay so a relay service pays fees instead of your wallet. Requires SPONSOR_API_KEY env var or wallet-level sponsorApiKey. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden: it discloses the auth prerequisite (unlocked wallet) and an input constraint (max 512 bytes hex). It does not say whether setting an existing key overwrites or fails, whether the operation costs fees (a 'fee'/'sponsored' param exists in schema), or whether it is reversible. Adequate but leaves meaningful mutation semantics unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first three sentences are tight and front-loaded with the operation, constraint and reserved-key rule. The trailing 'Tip: call earning_opportunities...' is unrelated promotional content that adds no value for invoking this tool and dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-annotation, no-output-schema mutation tool, the important missing pieces are overwrite/idempotency behavior and whether the write is on-chain with a fee. Those gaps mean an agent cannot fully predict the effect of calling it, though the essential call-shape information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds a genuine validation rule not present in the schema: the 'agentWallet' key is reserved and must be routed elsewhere. That is a real constraint on the key parameter that an agent must know before calling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('Set a metadata key-value pair on an agent identity') and anchors it to the ERC-8004 identity registry. It immediately distinguishes itself from the sibling family (identity_get_metadata, identity_set_wallet, identity_set_uri) by stating exactly which field it writes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the reserved 'agentWallet' key to identity_set_wallet, which is a real alternative-selection rule an agent could otherwise get wrong. It also states the 'requires an unlocked wallet' precondition. However, it gives no guidance on reading back or updating existing keys (identity_get_metadata) or on when not to set metadata at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
identity_set_uriB
Update the URI for an agent identity in the ERC-8004 identity registry. Requires an unlocked wallet. Must be called by agent owner or approved operator.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Fee preset ("low", "medium", "high") or micro-STX amount. Optional. | |
| uri | Yes | New URI pointing to agent metadata (IPFS, HTTP, etc.) | |
| agentId | Yes | Agent ID to update | |
| sponsored | No | Use sponsored transaction relay so a relay service pays fees instead of your wallet. Requires SPONSOR_API_KEY env var or wallet-level sponsorApiKey. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the wallet-unlock and authorization requirements, but it does not explain the on-chain transaction nature, fee implications, or whether the URI update replaces existing metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core update sentence is front-loaded and efficient, but the closing earning_opportunities tip is unrelated to invoking this identity update tool and dilutes the otherwise concise definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential action and prerequisites, but for a mutation tool with no annotations and no output schema, it should do more to explain transaction behavior, expected outcomes, and distinction from related identity-setting tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents agentId, uri, fee, and sponsored. The description adds no parameter-specific meaning beyond what is already available in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: update the URI for an agent identity in the ERC-8004 identity registry. It is clear enough to distinguish from broader identity tools, though it does not explicitly contrast with sibling tools like identity_set_metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides prerequisites (unlocked wallet, owner/operator authorization), which helps determine readiness. However, it does not say when to use this tool versus related identity tools or when not to use it, and the earning_opportunities tip is not an alternative for this action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
identity_set_walletB
Link the active Stacks wallet address to an agent identity in the ERC-8004 identity registry. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Fee preset ("low", "medium", "high") or micro-STX amount. Optional. | |
| agentId | Yes | Agent ID to update | |
| sponsored | No | Use sponsored transaction relay so a relay service pays fees instead of your wallet. Requires SPONSOR_API_KEY env var or wallet-level sponsorApiKey. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses one meaningful trait, the unlocked-wallet auth requirement, but omits that this is an on-chain write backed by the `fee` and `sponsored` parameters, whether an existing wallet link is overwritten, and whether the action is reversible. An agent could invoke this expecting a cheap local state change.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and efficient, and the wallet-unlock requirement is placed correctly. The second sentence is unrelated promotional filler that does not help an agent decide to call this tool, so not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations mean the description must cover behavior on its own, and it only partly does. For a registry-mutating tool it should say whether the link is a paid transaction and what happens to a previously set wallet, neither of which is stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so `agentId`, `fee`, and `sponsored` are already documented with enum-like presets and the SPONSOR_API_KEY requirement. The description adds nothing about any of them, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource: 'Link the active Stacks wallet address to an agent identity in the ERC-8004 identity registry.' That is clearly distinguishable from identity_get or identity_register. It stops short of distinguishing itself from identity_unset_wallet or identity_transfer, which are the nearest siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is the prerequisite 'Requires an unlocked wallet', which implies but never states the use case (associating your active wallet with an agentId you control). There is no explicit when-to-use/when-not, and no pointer to identity_unset_wallet as the inverse operation. The trailing 'earning_opportunities' tip is a cross-sell, not invocation guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
identity_transferA
Transfer an agent identity NFT to a new owner in the ERC-8004 identity registry. This clears the agent wallet association — run identity_set_wallet after if needed. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Fee preset ("low", "medium", "high") or micro-STX amount. Optional. | |
| agentId | Yes | Agent ID (token ID) to transfer | |
| recipient | Yes | Stacks address of the new owner | |
| sponsored | No | Use sponsored transaction relay so a relay service pays fees instead of your wallet. Requires SPONSOR_API_KEY env var or wallet-level sponsorApiKey. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose a key side effect: the transfer clears the agent wallet association. It also states the unlocked-wallet prerequisite, but omits irreversibility, ownership requirements, and fee/sponsored transaction behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action and side effect are front-loaded in a short, readable description. The closing earning_opportunities tip is somewhat off-topic for an identity transfer, but the overall text remains concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core operation, a critical side effect, and the key prerequisite. Parameter details are fully covered by the schema, though the description does not mention transaction return behavior or irreversibility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains agentId, recipient, fee, and sponsored. The description adds no parameter-level detail beyond implying the recipient is the new owner.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: transfer an agent identity NFT in the ERC-8004 identity registry. This clearly distinguishes it from the generic transfer_nft sibling by naming the specific registry and asset type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives useful context: requires an unlocked wallet and says to run identity_set_wallet afterward if needed. However, it does not explicitly name alternatives or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
identity_unset_walletA
Remove the agent wallet association from an agent identity in the ERC-8004 identity registry. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Fee preset ("low", "medium", "high") or micro-STX amount. Optional. | |
| agentId | Yes | Agent ID to update | |
| sponsored | No | Use sponsored transaction relay so a relay service pays fees instead of your wallet. Requires SPONSOR_API_KEY env var or wallet-level sponsorApiKey. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the key authorization prerequisite (unlocked wallet) and that this is a removal/mutation operation, but it omits whether removal is reversible, what identity state remains afterward, and how fee/sponsored transaction behavior interacts with the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the purpose and prerequisite. The appended tip about earning_opportunities is unrelated to selecting or invoking this tool and does not earn its place, but the core description remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema fully documents all three parameters and there is no output schema, so much of the structured context is covered. For a mutation tool with no annotations, however, the description should say more about the effect of removing the wallet association, such as reversibility and resulting identity state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents agentId, fee, and sponsored. The description adds no parameter-specific meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: remove the agent wallet association from an agent identity in the ERC-8004 identity registry. This clearly distinguishes it from sibling tools such as identity_set_wallet and identity_transfer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives the prerequisite that an unlocked wallet is required, which is useful. However, it does not explain when to use this tool versus alternatives like identity_set_wallet, nor does it state exclusions or follow-up behavior after removal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inbox_auto_replyA
Answer this agent's paid aibtc.com inbox messages automatically. In one call: reads the inbox, picks paid, settled, unanswered messages (oldest first), writes each reply with an AIBTC Inference Marketplace model (paid per request in sBTC via x402, ~1 sat), signs it (BIP-322) and posts it to the outbox (free). Never answers a message twice (overlapping runs skip a message another run is answering), stops at the daily cap or on a quote above maxSatsPerReply, gives up on a message after 2 paid failures, and returns a summary: checked, replied, skipped (with reason), failed, inference sats spent and inference cap remaining.
Posting a reply is free; the only cost is the inference call that writes it. Call it from the autonomy loop when the heartbeat or inbox shows unread messages. Configure first with inbox_auto_reply_configure. dryRun writes (and pays for) replies without posting them, so the operator can review the voice; each draft is saved and reused by later dry runs and the real run while the systemPrompt and model are unchanged. Requires an unlocked wallet with a bc1q address and a little sBTC. Mainnet only.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | Generate replies without posting them or marking messages handled. A new draft is paid for once; a saved draft with the same systemPrompt and model is reused free, here and by the real run. | |
| maxRepliesPerRun | No | Most messages to answer in this call. Default 5. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and does so: it discloses cost mechanics (inference paid in sBTC via x402 ~1 sat, posting free), deduplication guarantees ('overlapping runs skip a message another run is answering'), stop conditions (daily cap, maxSatsPerReply quote ceiling), failure policy (gives up after 2 paid failures), prerequisites (unlocked wallet with bc1q address and sBTC), and mainnet-only scope. Nothing about side effects or safety profile is left implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence and each clause carries operational information (costs, caps, dedup, prerequisites, return summary). It is nonetheless a dense four-paragraph block, and the closing 'Tip: call earning_opportunities...' is promotional rather than functional, slightly diluting the signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a high-complexity, money-spending automation tool with no annotations and no output schema, the description supplies everything an agent needs: prerequisites, cost, side effects, idempotency, failure handling, and even an inline enumeration of the return summary fields (checked, replied, skipped, failed, sats spent, cap remaining) that the absent output schema would otherwise have to provide.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning beyond the schema: dryRun's paid-once/saved-draft reuse behavior is explained in terms of the systemPrompt and model, which the schema only alludes to. maxRepliesPerRun is not called out by name — its effect is only implied through the 'daily cap' — so it stops just short of a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb and resource ('Answer this agent's paid aibtc.com inbox messages automatically') and the second enumerates the full pipeline: select paid/settled/unanswered messages oldest-first, generate a reply with an Inference Marketplace model, BIP-322 sign, post to outbox. It also distinguishes itself from its closest sibling by naming inbox_auto_reply_configure as the setup step and implicitly from send_inbox_message (manual send) by describing the fully automated path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit invocation context: 'Call it from the autonomy loop when the heartbeat or inbox shows unread messages', with the prerequisite 'Configure first with inbox_auto_reply_configure' and the alternative mode 'dryRun writes (and pays for) replies without posting them, so the operator can review the voice.' When-to-use, when-to-use-dry-run, and setup ordering are all spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inbox_auto_reply_configureA
Configure inbox auto-reply (stored in ~/.aibtc/config.json). Call with no arguments to see the current settings. A systemPrompt (the agent's voice / personality / what it can help with) is required before auto-reply can be enabled. The model must be live on inference.aibtc.com; it is checked against the catalog when set. dailyCapSats caps sats spent on reply inference per UTC day, on top of the wallet-wide spending limit. maxSatsPerReply is the most one reply may cost; a higher quote stops the run unpaid.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Inference marketplace model id (see GET https://inference.aibtc.com/v1/models). Default meta-llama/Llama-3.1-8B-Instruct. | |
| enabled | No | Allow inbox_auto_reply to post replies. Dry runs work while disabled. | |
| dailyCapSats | No | Most sats spent on reply inference per UTC day. Default 1000. | |
| systemPrompt | No | System prompt for reply generation: who the agent is, its tone, what it offers, what it won't do. | |
| maxSatsPerReply | No | Most sats paid for one reply. Default 10. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided the description carries the full burden, and it delivers meaningful behavior: the config file location, live model validation against the inference catalog, and spend semantics (dailyCapSats stacks on the wallet-wide limit, maxSatsPerReply stops a run unpaid on a higher quote). It doesn't state whether changes take effect immediately or how partial updates behave, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The read-mode instruction and the systemPrompt prerequisite are front-loaded, and most sentences earn their place. The appended earning_opportunities tip is off-topic noise and the run-on dailyCapSats/maxSatsPerReply sentence could be split.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Five optional params, no annotations and no output schema, so the description must cover safety and prerequisites — it does (validation, spend caps, enable gate). Only the read-path return shape and the effect of omitting fields are left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so baseline is 3, but the description adds real meaning beyond it: systemPrompt is framed as the agent's voice/personality, dailyCapSats is explicitly 'on top of the wallet-wide spending limit', and maxSatsPerReply is tied to the unpaid-stop behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Configure inbox auto-reply') plus where the config lives, and implicitly distinguishes from the sibling 'inbox_auto_reply' that actually posts replies. An agent can tell which of the two to reach for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives useful routing cues: call with no arguments to read current settings, and systemPrompt must exist before enabling. It does not explicitly name the sibling tool or state exclusions, and the closing 'earning_opportunities' tip is unrelated to this tool's use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inference_check_providerA
Re-run the marketplace's health + functional probe for a provider on demand (checks the endpoint is reachable and actually returns a completion). No signature required. Useful right after (re)starting your node or tunnel.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| gateway | No | Marketplace gateway base URL. Defaults to https://inference.aibtc.com. Use http://localhost:8787 for local dev. | |
| providerId | Yes | The provider id to check. | |
| allowUnsafeGateway | No | Allow a gateway host outside localhost / *.aibtc.com. Required to send wallet-signed headers (and any apiKey) to an arbitrary host — leave unset unless you deliberately self-host the gateway. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose that no signature is needed and that the probe performs a real functional call returning a completion. It does not say whether that probe incurs cost/quota, whether results are recorded server-side, or whether repeated calls are rate limited — relevant for something that fires real inference.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The operational content is front-loaded and compact: what it does, that it requires no signature, and when to run it. The trailing 'Tip: call earning_opportunities...' is unrelated cross-promotion that does not help an agent invoke this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description is the only place an agent could learn what a check returns (pass/fail, latency, error detail, provider status fields) — and it says nothing about the response. Core invocation is covered by the schema, but the result shape is a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so providerId, gateway, and allowUnsafeGateway are already documented in the schema, including the safety implications of the unsafe-gateway flag. The description adds nothing beyond that, which is the expected baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource ('Re-run the marketplace's health + functional probe for a provider') and spells out what is verified: endpoint reachable and returns a completion. It implicitly distinguishes itself from siblings like inference_list_providers or inference_register_provider by being a check, though it never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear triggering context — 'on demand' and 'right after (re)starting your node or tunnel' — plus the practical fact that no signature is required. It stops short of saying when not to use it or pointing at any sibling as an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inference_list_providersA
List providers registered on the marketplace with their models, price per request and accepted token, health/status, and flagged state. No signature required. Use it to find your provider id (match on payoutAddress) after registering.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| gateway | No | Marketplace gateway base URL. Defaults to https://inference.aibtc.com. Use http://localhost:8787 for local dev. | |
| allowUnsafeGateway | No | Allow a gateway host outside localhost / *.aibtc.com. Required to send wallet-signed headers (and any apiKey) to an arbitrary host — leave unset unless you deliberately self-host the gateway. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and does add real behavioral context: 'No signature required' tells the agent this is an unauthenticated read, and it lists the fields returned. It omits rate limits, result size/pagination, and any note about how the gateway/allowUnsafeGateway flags affect auth headers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads what is returned, then auth, then the intended use — three tight sentences. The trailing earning_opportunities tip is mildly off-topic but short and clearly marked as a tip.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, read-only list tool with no output schema, the description supplies the return shape, the auth posture and the selection rationale. Only pagination/scale behavior and gateway-related caveats are unaddressed, and the latter is covered by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both gateway and allowUnsafeGateway are already fully documented. The description adds no parameter-level meaning beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List providers registered on the marketplace') and enumerates the payload (models, price per request, accepted token, health/status, flagged state), which clearly separates it from inference_register_provider, inference_update_provider and inference_check_provider.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names a use case: find your provider id by matching payoutAddress after registering. It gives a 'when to use' but no exclusion or contrast with inference_check_provider, which also reports provider state; the closing tip about earning_opportunities is unrelated to invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inference_register_providerA
List an OpenAI-compatible model endpoint on the AIBTC Inference Marketplace and get paid a flat price per request that you set, in sBTC (default) or USDCx. Signs a registration message with the unlocked payout wallet (proving ownership) and POSTs it. The gateway verifies the signature recovers to payoutAddress, that the endpoint is reachable AND actually serving inference, and that model ids are real/commercial Hugging Face repos — then lists it. Requires an unlocked wallet on the gateway's network.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name for your node, e.g. "Alice's Qwen node". | |
| apiKey | No | Optional: a key your endpoint requires. Locks the endpoint so only the gateway (which presents it) can call it. | |
| models | Yes | Hugging Face repo ids you serve, e.g. ["Qwen/Qwen2.5-7B-Instruct"]. | |
| gateway | No | Marketplace gateway base URL. Defaults to https://inference.aibtc.com. Use http://localhost:8787 for local dev. | |
| endpoint | Yes | OpenAI-compatible base URL, e.g. https://my-host/v1 (must expose /models and /chat/completions). | |
| acceptedToken | No | Token callers pay in: sBTC (default) or USDCx. Sets the unit of pricePerRequest. | |
| payoutAddress | No | Stacks address that receives sBTC. Defaults to the unlocked wallet's address (must match the gateway network). | |
| pricePerRequest | Yes | Flat price per request, as a whole number in the accepted token's base unit: sats for sBTC ("5" = 5 sats), 0.000001 USDCx for USDCx ("2000" = 0.002 USDCx). No decimals. | |
| allowUnsafeGateway | No | Allow a gateway host outside localhost / *.aibtc.com. Required to send wallet-signed headers (and any apiKey) to an arbitrary host — leave unset unless you deliberately self-host the gateway. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it explains the signing flow (wallet signs registration message proving ownership), the server-side POST, and the full verification chain (signature recovers to payoutAddress, endpoint must be reachable AND actually serving inference, model ids must be real/commercial HF repos). It omits failure behavior and whether re-registering an existing endpoint is idempotent or an error.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core mechanism is front-loaded in the first two sentences and the wallet requirement is stated separately at the end. The trailing 'Tip: call earning_opportunities' is mildly promotional but short and plausibly useful cross-selling context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter, 4-required mutation with no annotations and no output schema, the description covers the mechanism, ownership proof, and validation gates thoroughly. The remaining gap is the return value — it never says what the agent gets back (provider id, listing URL, tx hash) — which matters more here because no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the two highest-impact semantics — acceptedToken defaults to sBTC and sets the unit of pricePerRequest — but leaves gateway, payoutAddress, apiKey, and allowUnsafeGateway entirely to the schema, adding little beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (register/list a model endpoint) on a named resource (AIBTC Inference Marketplace), plus the economic effect (flat price per request you set, paid in sBTC or USDCx). An agent can distinguish this from inference_list_providers (read), inference_update_provider (mutate), and inference_check_provider (verify) without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear preconditions: an unlocked wallet on the gateway's network, and a pointer to earning_opportunities for related discovery. However, it never explicitly routes the agent away from inference_update_provider (for changing an existing listing) or tells it to check inference_list_providers first to avoid duplicate registration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inference_reveal_keyA
Reveal or rotate your provider's shared key — the gateway↔endpoint credential the gateway presents when it calls your endpoint (NOT an ownership token; ownership is your wallet). The gateway stores it write-only, so a wallet signature is the only way to read it back. Pass rotate=true to issue a new one. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| rotate | No | true = generate and return a NEW key (invalidates the old one). false/omitted = reveal the current key. | |
| gateway | No | Marketplace gateway base URL. Defaults to https://inference.aibtc.com. Use http://localhost:8787 for local dev. | |
| providerId | Yes | The provider id (from inference_list_providers). | |
| allowUnsafeGateway | No | Allow a gateway host outside localhost / *.aibtc.com. Required to send wallet-signed headers (and any apiKey) to an arbitrary host — leave unset unless you deliberately self-host the gateway. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses write-only storage, that a wallet signature is required to read the key back, that the wallet must be unlocked, and that rotation replaces the credential. It stops short of stating whether rotation is reversible, whether reveal is audited, or what happens if the provider has no key yet.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core is two tight, front-loaded clauses with the credential definition and the security caveat first. The trailing 'Tip: call earning_opportunities' is unrelated promotional content that does not help an agent decide to invoke this tool and dilutes an otherwise clean definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, no-output-schema tool, the description covers what it returns (the key), the auth prerequisite, and the mutate-vs-read switch, which is enough to call it correctly. It leaves the multi-gateway/allowUnsafeGateway risk path explained only by the schema, which is acceptable given full coverage there.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description restates rotate semantics that the schema already documents in detail and says nothing about the gateway or allowUnsafeGateway parameters, so it adds no meaning beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb pair (reveal/rotate) plus a precisely defined resource, with an explicit negative definition ('NOT an ownership token; ownership is your wallet') that prevents confusion with wallet/token tools. An agent can distinguish this from inference_update_provider and the generic credentials_* family without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the condition for the risky path ('Pass rotate=true to issue a new one') and the prerequisite ('Requires an unlocked wallet'), and points at inference_list_providers implicitly via providerId. It never names an alternative tool or says when to prefer inference_update_provider or credentials_get instead, so no explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inference_update_providerA
Update your marketplace listing in place — name, models, payout address, endpoint, description, price, or accepted token — no delete/re-add. Switching acceptedToken requires a new pricePerRequest in the same call. Signs an update message with the unlocked payout wallet and PATCHes it. Only fields you pass change. Changing the endpoint re-verifies reachability before taking effect. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New display name. | |
| apiKey | No | Set/replace the key your endpoint requires (locks the endpoint). | |
| models | No | New Hugging Face repo id list. | |
| gateway | No | Marketplace gateway base URL. Defaults to https://inference.aibtc.com. Use http://localhost:8787 for local dev. | |
| endpoint | No | New OpenAI-compatible base URL (re-verified before it takes effect). | |
| providerId | Yes | The provider id returned at registration (from inference_list_providers). | |
| description | No | New description. | |
| acceptedToken | No | New token callers pay in: sBTC or USDCx. Requires pricePerRequest too. | |
| payoutAddress | No | New payout address (must match the gateway network). | |
| pricePerRequest | No | Flat price per request, as a whole number in the accepted token's base unit: sats for sBTC ("5" = 5 sats), 0.000001 USDCx for USDCx ("2000" = 0.002 USDCx). No decimals. | |
| allowUnsafeGateway | No | Allow a gateway host outside localhost / *.aibtc.com. Required to send wallet-signed headers (and any apiKey) to an arbitrary host — leave unset unless you deliberately self-host the gateway. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does so well: it discloses PATCH semantics, signing with the unlocked payout wallet, the unlocked-wallet requirement, partial-update behavior, endpoint re-verification, and the acceptedToken/pricePerRequest coupling. These are the key side effects and prerequisites an agent needs before invoking a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core operation and then lists important constraints efficiently. The final tip about earning_opportunities is tangential and slightly reduces focus, but the overall structure remains useful and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter mutation tool with no annotations and no output schema, the description covers the critical operational context: wallet unlock, signing, partial updates, endpoint re-verification, and token-price coupling. It does not discuss gateway-related parameters or expected response behavior, but the schema fills in those parameter details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameter meanings are already well documented. The description restates some relationships such as acceptedToken requiring pricePerRequest and endpoint re-verification, but those are also present in the schema, so it adds only limited value beyond the structured parameter definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: "Update your marketplace listing in place" and enumerates the mutable fields (name, models, payout address, endpoint, description, price, accepted token). It also distinguishes the operation from delete/re-add, which makes it easy to separate from registration and listing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: use this to update an existing listing in place, only passed fields change, and acceptedToken changes require pricePerRequest in the same call. It does not explicitly name sibling alternatives like inference_register_provider or inference_check_provider, but the conditions for correct use are well covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inscribeA
Create a Bitcoin inscription - STEP 1: Broadcast commit transaction.
This tool broadcasts the commit tx and returns immediately. It does NOT wait for confirmation.
After the commit confirms (typically 10-60 min), use inscribe_reveal with the same contentType and contentBase64 to complete the inscription.
Returns: commitTxid, revealAddress, revealAmount, and feeRate (save these for inscribe_reveal)
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| feeRate | No | Fee rate: 'fast' (~10 min), 'medium' (~30 min), 'slow' (~1 hr), or number in sat/vB (default: medium) | |
| contentType | Yes | MIME type (e.g., 'text/plain', 'image/png', 'text/html') | |
| contentBase64 | Yes | Content as base64-encoded string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations the description carries the full burden, and it does disclose the key non-obvious trait: asynchronous, non-blocking commit broadcast with a typical 10-60 min confirmation window. It also lists the returned fields and tells the agent to persist them. It stops short of stating that this spends BTC / incurs a commit fee and what happens if the commit is never revealed, which matters for a fund-spending transaction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and step number, then the async caveat, then the follow-up and return values — a logical order with almost no waste. The trailing 'earning_opportunities' tip is a promotional aside that is not needed to call this tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-phase inscription flow with no output schema, the description covers the sequencing, timing, and returned identifiers adequately. It leaves one operational gap: whether the agent must fund revealAddress or otherwise act on revealAmount/feeRate before calling inscribe_reveal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the feeRate enum semantics, so the schema does the parameter work. The description adds one useful cross-call constraint — the same contentType and contentBase64 must be passed to inscribe_reveal — but adds no extra meaning about feeRate or content encoding. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a Bitcoin inscription') and immediately scopes it as 'STEP 1: Broadcast commit transaction', which cleanly separates it from inscribe_reveal and inscribe_child. An agent can identify the tool without reading the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says the tool broadcasts and returns immediately, does NOT wait for confirmation, and names the follow-up tool (inscribe_reveal) with the required condition (after commit confirms) and the exact inputs to reuse. This is a textbook when-to-use/when-to-chain instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inscribe_childA
Create a child inscription - STEP 1: Broadcast commit transaction.
Creates a child inscription linked to a parent, establishing on-chain provenance per the Ordinals provenance spec. You must own the parent inscription.
This broadcasts the commit tx and returns immediately. After it confirms (typically 10-60 min), use inscribe_child_reveal to complete.
Returns: commitTxid, revealAddress, revealAmount, parentInscriptionId, feeRate
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| feeRate | No | Fee rate: 'fast' (~10 min), 'medium' (~30 min), 'slow' (~1 hr), or number in sat/vB (default: medium) | |
| contentType | Yes | MIME type (e.g., 'text/plain', 'image/png', 'text/html') | |
| contentBase64 | Yes | Content as base64-encoded string | |
| parentInscriptionId | Yes | Parent inscription ID (e.g., 'abc123...i0'). You must own this inscription. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that this is a broadcast (mutation), that it returns immediately rather than waiting on confirmation, and the expected confirmation window. It stops short of stating cost/fee consequences or what happens to the commit funds if the reveal step is never completed, which matters for an on-chain two-step flow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the step and action, then prerequisites, timing, and a labeled 'Returns:' line — easy to scan. The trailing 'earning_opportunities' tip is a cross-sell that is only marginally relevant to invoking this tool, a small amount of unearned text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description enumerates the returned fields (commitTxid, revealAddress, revealAmount, parentInscriptionId, feeRate), which is exactly what the agent needs. For a two-step on-chain mutation, the remaining gap is fee/cost expectations, partly covered by the sibling estimate_child_inscription_fee.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including feeRate enum semantics and the parentInscriptionId ownership note, so the baseline is 3. The description's only parameter-adjacent content (ownership of the parent) restates what the schema already says and adds no format or constraint detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a child inscription') plus an explicit step label ('STEP 1: Broadcast commit transaction') that separates it from the sibling inscribe_child_reveal. The description also names the linking semantics (provenance to a parent per the Ordinals spec), so an agent can distinguish this from inscribe / inscribe_reveal without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the follow-up tool explicitly ('use `inscribe_child_reveal` to complete') and states the timing condition ('after it confirms, typically 10-60 min'). It also gives a hard prerequisite ('You must own the parent inscription'), which prevents a whole class of failed calls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inscribe_child_revealA
Complete a child inscription - STEP 2: Broadcast reveal transaction.
Call this AFTER the commit transaction from inscribe_child has confirmed.
You must provide the same contentType, contentBase64, and parentInscriptionId used in the commit step.
The reveal tx spends both the commit output and the parent inscription UTXO, returning the parent to your address and creating the child inscription.
Returns: inscriptionId ({revealTxid}i0), parentInscriptionId on success
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| feeRate | No | Fee rate for reveal tx (default: medium) | |
| commitTxid | Yes | Transaction ID of the confirmed commit transaction (from inscribe_child) | |
| contentType | Yes | MIME type (must match the commit step) | |
| revealAmount | Yes | Amount in the commit output (from inscribe_child response) | |
| contentBase64 | Yes | Content as base64-encoded string (must match the commit step) | |
| parentInscriptionId | Yes | Parent inscription ID (must match the commit step) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does well: it discloses what the tx spends (commit output and parent inscription UTXO), what comes back (parent returned to your address, child created), and the return value shape. It does not state irreversibility/broadcast finality, fee source, or failure modes, which is expected for a signing/broadcast operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and the ordering constraint, then the mechanics, then returns. The trailing 'Tip: call `earning_opportunities`' is promotional and only marginally relevant, keeping it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A two-step mutation tool with no annotations and no output schema, and the description covers prerequisite, parameter consistency, on-chain effect, and return values. Missing only fee behavior (feeRate default 'medium' is in schema) and error/reversion cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the 6 parameters are already documented. The description restates the 'must match commit step' constraint for three params, which is slightly useful but largely duplicates the schema's own text. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (broadcast reveal transaction) and scopes it as 'STEP 2' of a named two-step child-inscription flow, naming the prerequisite tool `inscribe_child`. An agent can immediately distinguish it from `inscribe_reveal` (non-child) and `souldinals_reveal_soul`.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit sequencing: 'Call this AFTER the commit transaction from `inscribe_child` has confirmed,' plus the constraint that contentType, contentBase64 and parentInscriptionId must match the commit step. It names the alternative/predecessor tool and the condition that selects it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inscribe_revealA
Complete a Bitcoin inscription - STEP 2: Broadcast reveal transaction.
Call this AFTER the commit transaction from inscribe has confirmed.
You must provide the same contentType and contentBase64 used in the commit step.
Returns: inscriptionId ({revealTxid}i0) on success
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| feeRate | No | Fee rate for reveal tx (default: medium) | |
| commitTxid | Yes | Transaction ID of the confirmed commit transaction | |
| contentType | Yes | MIME type (must match the commit step) | |
| revealAmount | Yes | Amount in the commit output (from inscribe response) | |
| contentBase64 | Yes | Content as base64-encoded string (must match the commit step) | |
| contentSha256 | No | Optional: sha256 hex digest of the decoded body from the inscribe commit response. If provided, the server computes sha256 over the locally-decoded body and aborts before broadcasting the reveal if they differ — prevents burning the reveal fee on a witness-hash mismatch when the base64 param drifts between the inscribe and inscribe_reveal calls. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that this broadcasts a real transaction, requires a confirmed prior commit, and that mismatched content aborts before broadcast (in the contentSha256 param). It stops short of stating irreversibility or that BTC fees are spent on broadcast, which matters for an unannotated mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and step number, then precondition, then return value, then a tip. Mostly earns its place, though the closing `earning_opportunities` tip is promotional and unrelated to invoking this tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an unannotated mutation tool with no output schema, it covers the essential: sequencing, matching params, and the return shape ({revealTxid}i0). Missing only fee/cost and failure-mode guidance, which is a minor gap given the 100% schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds cross-step meaning the schema cannot: contentType and contentBase64 must match the commit step, and revealAmount comes from the inscribe response. Those are real invocation constraints beyond field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Broadcast reveal transaction') and explicitly frames itself as STEP 2 of a two-step protocol, naming the sibling `inscribe` as step 1. An agent can distinguish it from inscribe, inscribe_child, and inscribe_child_reveal without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition ('Call this AFTER the commit transaction from `inscribe` has confirmed') and a cross-call constraint ('must provide the same contentType and contentBase64 used in the commit step'). It does not say what to do if the commit is unconfirmed or how it differs from `inscribe_child_reveal`, leaving a small gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jingswap_cancel_cycleA
Cancel the current auction cycle if settlement has failed for too long. Can only be called 530 blocks (~17.5 min) after deposits were closed (BUFFER_BLOCKS 30 + CANCEL_THRESHOLD 500). Rolls all deposits into the next cycle — no refunds, users can withdraw individually during the next deposit phase. This is the safety valve.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Market: "sbtc-stx" (default) or "sbtc-usdcx" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the hard timing precondition (BUFFER_BLOCKS 30 + CANCEL_THRESHOLD 500), that deposits are rolled forward rather than refunded, and that this is the last-resort safety valve. It omits who is permitted to call it and what the call returns/broadcasts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentences are front-loaded and dense: trigger, timing math, and consequence. The trailing 'Tip: call earning_opportunities' is a promotional line unrelated to invoking this tool and is the one sentence that does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with no annotations and no output schema, the description covers precondition, effect on deposits, and user recourse. Missing pieces are caller permissions and what the invocation produces (transaction hash vs. state change), which an agent would still want.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single optional 'market' parameter, so the schema already documents the enum values. The description never mentions the market parameter, so it adds nothing beyond the schema — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource ('Cancel the current auction cycle') and pins the trigger condition ('if settlement has failed for too long'), which separates it from sibling cancel tools like jingswap_cancel_stx/jingswap_cancel_sbtc that act on individual deposits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly states the condition under which it should be called (settlement stalled past the 530-block threshold) and notes the user-facing alternative of withdrawing during the next deposit phase. It does not explicitly contrast with jingswap_settle / jingswap_settle_with_refresh, which is the real routing decision an agent faces.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jingswap_cancel_sbtcA
Cancel your sBTC deposit from the current Jingswap auction cycle and get a full refund. Only works during the deposit phase. Works the same for both markets.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Market: "sbtc-stx" (default) or "sbtc-usdcx" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It adds useful details such as full refund and the deposit-phase restriction, but it omits permission requirements, whether cancellation is final or repeatable, and what the agent should expect if the phase constraint is not met.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core behavior and phase constraint are front-loaded in the first two sentences. The final tip about earning_opportunities is somewhat tangential to invoking this cancellation tool, so the definition is concise but not maximally disciplined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers the key refund and phase behavior but leaves notable gaps around authorization, exact return behavior, and what happens if cancellation is attempted at the wrong time. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the market parameter already documents the allowed values and default. The description's phrase 'Works the same for both markets' is consistent but adds little semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: cancel an sBTC deposit from the current Jingswap auction cycle. It clearly distinguishes the tool from the sibling jingswap_cancel_stx by naming sBTC, and it clarifies that the behavior is the same across both markets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit timing constraint: 'Only works during the deposit phase.' This tells the agent when the tool is valid, though it does not explicitly name jingswap_cancel_stx as the alternative for STX deposits or spell out failure behavior outside the deposit phase.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jingswap_cancel_stxA
Cancel your token-B deposit (STX or USDCx depending on market) from the current Jingswap auction cycle and get a full refund. Only works during the deposit phase.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Market: "sbtc-stx" (default) or "sbtc-usdcx" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose two meaningful traits — the full refund outcome and the deposit-phase-only constraint. It omits the operational profile: this is an on-chain signed transaction, so wallet unlock, fee payment, and failure behavior outside the deposit phase are all left unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the phase constraint are front-loaded in two tight sentences with no waste. The trailing tip about earning_opportunities is a cross-sell rather than calling guidance, so it earns its place only marginally.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-parameter mutation with no output schema and no annotations, the description covers the essentials (what it does, refund, timing window). It stops short of the prerequisites an agent needs before invoking an on-chain cancellation: signing/wallet state, fees, and what the caller sees on failure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single market parameter is already documented with both allowed values. The description adds only a light gloss that market determines whether the cancelled token-B is STX or USDCx, which is the correct baseline for a well-documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: cancel a token-B deposit (STX or USDCx) from the current Jingswap auction cycle for a full refund. That cleanly frames the scope as token-B, implicitly separating it from jingswap_cancel_sbtc, but it never names that sibling explicitly, so the agent must infer the pairing from the naming convention.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Only works during the deposit phase' is an explicit when/when-not condition that prevents a failed call. It does not name jingswap_cancel_sbtc as the alternative for cancelling the sBTC-side deposit, which would have completed the routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jingswap_close_depositsA
Close the deposit phase of the current Jingswap auction cycle. Before calling, check jingswap_get_cycle_state to verify: phase is 0 (deposit), blocksElapsed >= 150 (DEPOSIT_MIN_BLOCKS), and both sides meet minimums. Anyone can call this. Transitions to buffer phase.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Market: "sbtc-stx" (default) or "sbtc-usdcx" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Because no annotations are provided, the description carries the behavioral burden and does well by disclosing that anyone can call it, the required cycle preconditions, and the transition to buffer phase. It does not state what happens if preconditions are unmet or whether the transition is irreversible, which are meaningful gaps for a state-changing operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short and front-loads the action and preconditions before the state transition. The appended tip about earning_opportunities is somewhat tangential to invoking this tool and slightly dilutes focus, but overall it remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description supplies the most important context: the precondition checks, caller permissions, and resulting phase transition. It is nearly complete, though it could say more about failure behavior or what happens after the buffer phase begins.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one optional parameter and the schema description coverage is 100%, so the schema already explains the market values and default. The description does not add any parameter-level meaning beyond the schema, which matches the baseline of 3 when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: closing the deposit phase of the current Jingswap auction cycle. It also names the resulting state transition to the buffer phase. This clearly distinguishes it from sibling tools such as jingswap_get_cycle_state, jingswap_deposit_stx, and jingswap_settle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit preconditions before calling: check jingswap_get_cycle_state, verify phase is 0, blocksElapsed >= 150, and both sides meet minimums. It also states that anyone can call it and that the call transitions to buffer phase, leaving little ambiguity about when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jingswap_deposit_sbtcA
Deposit sBTC into the current Jingswap auction cycle. Only works during the deposit phase. Amount is in satoshis (e.g. 1000 for 1000 sats). Works the same for both sbtc-stx and sbtc-usdcx markets.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount of sBTC in satoshis | |
| market | No | Market: "sbtc-stx" (default) or "sbtc-usdcx" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the phase gating and unit convention, but not whether the deposit is locked until settlement, whether it can be withdrawn via jingswap_cancel_sbtc, required wallet/balance prerequisites, or minimum amounts. Those are the facts an agent most needs before committing funds.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the core action and constraint, with no wasted qualification. The trailing 'Tip' cross-reference is slightly promotional but short and points at a genuinely related tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description must explain outcomes and risks for a fund-moving operation. It covers timing and units but leaves the post-deposit lifecycle (lockup, cancellation, settlement into an auction cycle) unstated, which is a meaningful gap for a write tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description still adds value beyond the schema by restating the satoshi unit with a concrete example and by asserting that behavior is identical for both sbtc-stx and sbtc-usdcx markets, which the schema does not say.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Deposit sBTC into the current Jingswap auction cycle') and immediately narrows scope to the deposit phase and to two named markets. An agent can distinguish it from jingswap_deposit_stx and the sibling jingswap_* tools without inspecting the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit precondition ('Only works during the deposit phase') and points to a related tool (earning_opportunities) for follow-up. It does not name the counterpart alternatives (jingswap_deposit_stx for STX, jingswap_cancel_sbtc for reversing), so routing between siblings is only partially covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jingswap_deposit_stxB
Deposit the token-B side (STX or USDCx depending on market) into the current Jingswap auction cycle. Only works during the deposit phase. Amount is in human units (e.g. 10 for 10 STX, or 10 for 10 USDCx).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount of token B to deposit (human units) | |
| market | No | Market: "sbtc-stx" (default) or "sbtc-usdcx" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It usefully discloses the deposit-phase restriction and human-unit amounts, but omits important behavior such as wallet/auth prerequisites, whether deposits are locked or cancellable via jingswap_cancel_stx, and what happens at settlement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and phase constraint in two tight sentences. The earning_opportunities tip is marginally tangential but does not materially harm readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a financial deposit action with no annotations and no output schema, the description covers the basic inputs and timing condition. It still lacks lifecycle context such as fund lockup, cancellation, authorization requirements, and settlement behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description reinforces human units with examples and clarifies that market determines STX vs USDCx, but adds only limited meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (deposit), resource (token-B side), and target (current Jingswap auction cycle). It implicitly distinguishes itself from jingswap_deposit_sbtc by specifying STX/USDCx rather than the token-A side, though it does not name the sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the key timing constraint: "Only works during the deposit phase." However, it does not explicitly contrast with jingswap_deposit_sbtc or tell the agent to check jingswap_get_cycle_state before calling, leaving alternatives and pre-checks implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jingswap_get_cycles_historyA
Get the full history of all auction cycles from cycle 0 to the current cycle. Each entry includes settlement data (if settled) and cycle totals. Useful for analyzing historical auction performance and volume.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Market: "sbtc-stx" (default) or "sbtc-usdcx" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and discloses that entries include settlement data if settled and cycle totals. It does not explicitly state read-only behavior, but the history/get framing makes that clear. Minor gaps around ordering or response size remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is two front-loaded sentences with no wasted wording. The trailing tip about earning_opportunities is unrelated to selecting or invoking this tool and slightly weakens conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, with one optional parameter and no output schema. The description explains the returned entries at a high level, including settlement data and cycle totals, which is enough for correct invocation, though it could clarify ordering or whether entries are market-specific.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single market parameter is fully documented in the schema. The description does not mention the market parameter or add further meaning beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: get the full history of all auction cycles. It also specifies the scope from cycle 0 to the current cycle, which distinguishes it from sibling tools like jingswap_get_cycle_state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage context: analyzing historical auction performance and volume. It does not explicitly name alternatives such as jingswap_get_cycle_state for current state or jingswap_get_settlement for individual settlements, but the intended use is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jingswap_get_cycle_stateA
Get the current Jingswap auction cycle state including phase (deposit/buffer/settle), blocks elapsed, cycle totals (token B + sBTC deposited), and minimum deposit requirements. Use this to understand where the auction currently stands.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Market: "sbtc-stx" (default) or "sbtc-usdcx" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It discloses the returned state fields and phase values, which is useful, but it does not explicitly confirm read-only behavior, authentication needs, data freshness, or error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The main purpose and return fields are front-loaded in the first sentence, and the second sentence gives usage context. The trailing earning_opportunities tip is somewhat tangential to invoking this tool but remains short and does not obscure the core definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with no output schema, the description lists the important returned fields and the auction phases. It leaves some response-shape details implicit, but it is sufficient for an agent to understand what the tool provides and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one optional market parameter and schema description coverage is 100%, so the schema already documents the parameter and its default. The description adds no extra parameter semantics, making 3 the appropriate baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: get the current Jingswap auction cycle state. It enumerates the exact state fields returned (phase, blocks elapsed, cycle totals, minimum deposit requirements), which clearly separates it from sibling tools like jingswap_get_cycles_history or jingswap_get_user_deposit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a broad usage cue: "Use this to understand where the auction currently stands." However, it does not explain when to prefer this over related jingswap tools such as get_user_deposit, get_depositors, or get_settlement, nor does it give exclusions or preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jingswap_get_depositorsA
Get the list of token B and sBTC depositors for a specific auction cycle. Returns arrays of Stacks addresses on each side. Max 50 depositors per side.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | Yes | Cycle number to query | |
| market | No | Market: "sbtc-stx" (default) or "sbtc-usdcx" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the return format ('arrays of Stacks addresses on each side') and a concrete limit ('Max 50 depositors per side'), which are useful behavioral details beyond a bare 'get'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core information is front-loaded and concise. The trailing tip about earning_opportunities is short but only marginally relevant to invoking this tool, keeping it from a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with no output schema and no annotations, the description supplies the key return shape and limit. It is largely complete, though it could clarify the distinction from get_user_deposit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the 'cycle' and 'market' parameters. The description reinforces the cycle context and mentions both sides but does not add syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get the list of token B and sBTC depositors for a specific auction cycle.' It also specifies the return shape and limit, making the tool's purpose unambiguous and distinct from siblings like get_user_deposit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'for a specific auction cycle' and the max-50 note, but the description does not explicitly say when to use this versus alternatives such as jingswap_get_user_deposit. The tip about earning_opportunities is unrelated to selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jingswap_get_pricesA
Get current oracle and DEX prices used by the Jingswap auction. Returns Pyth oracle prices (BTC/USD, STX/USD with confidence and freshness), on-chain DEX prices (XYK pool with TVL, DLMM), and the derived price ratio.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Market: "sbtc-stx" (default) or "sbtc-usdcx" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; 'Get' implies a read but read-only/safety is never stated. It does add genuine behavioral value by naming the return payload (Pyth prices with confidence and freshness, XYK pool with TVL, DLMM, derived ratio), which tells the agent what data quality signals to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and dense with specifics: source, asset pairs, and derived outputs. The trailing tip sentence is a cross-sell that doesn't help an agent call this tool, though it costs little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so describing the returned price families is necessary and is done well; the single parameter is schema-documented. The main remaining gap is that no annotations exist to convey read-only/auth behavior, which the description only implies through the verb 'Get'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'market' parameter is fully documented in the schema with its default and allowed values. The description adds no syntax, defaults, or examples beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get current oracle and DEX prices') and scopes it to the Jingswap auction, then enumerates the three price families returned. An agent can distinguish it from generic price tools like styx_price or bitflow_get_quote only implicitly, via the 'used by the Jingswap auction' qualifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the description ties the tool to the Jingswap auction context, so an agent working on Jingswap cycles can infer it applies. There are no explicit when-to-use/when-not rules, and the only cross-reference is a promotional tip to earning_opportunities, unrelated to tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jingswap_get_settlementA
Get settlement details for a completed auction cycle. Returns clearing price, amounts cleared, fees, and the block height at which settlement occurred. Returns null settlement if the cycle hasn't been settled yet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | Yes | Cycle number to query | |
| market | No | Market: "sbtc-stx" (default) or "sbtc-usdcx" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description does real work: it declares read-only behavior via "Get", enumerates the returned fields, and discloses the null-settlement edge case an agent could otherwise mishandle. It stops short of covering failure modes, market-specific behavior, or permissions, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose and followed by return values and the edge case. The earning_opportunities tip is tangential but short and clearly separated from the core definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema or annotations, the description carries the full burden and largely succeeds by naming the returned fields and the null case. It leaves gaps around per-market/per-asset structuring of the returned amounts and error behavior, so it's strong but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (cycle, market) are documented in the schema, so the baseline is 3. The description adds nothing about cycle numbering or market selection beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ("Get settlement details for a completed auction cycle") plus an enumeration of exactly what comes back (clearing price, amounts cleared, fees, block height). It does not distinguish itself from nearby siblings like jingswap_get_cycle_state or jingswap_get_cycles_history, so an agent must still infer which jingswap read to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase "for a completed auction cycle" and the note that it returns null when the cycle hasn't settled imply when it applies, but no alternative tool is named and no prerequisites (e.g. call get_cycle_state first to confirm settled) are stated. The usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jingswap_get_user_activityB
Get a user's auction activity history — deposits, cancellations, fills, and settlements. Indexed from on-chain contract events.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Market: "sbtc-stx" (default) or "sbtc-usdcx" | |
| address | Yes | Stacks address to query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose one real trait: data is 'indexed from on-chain contract events', warning that results may lag chain state. It says nothing about pagination, result limits, ordering, or what an empty history looks like — meaningful gaps for a history endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core purpose front-loaded; nothing is buried. The trailing tip is tangential to invoking this tool, keeping it just below a top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, 2-parameter query with no output schema, the description should hint at the shape and volume of the returned event list. It names the event categories but leaves result structure, ordering, and pagination unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (address, market with its two allowed values) are already documented in the schema. The description adds no further semantics about the market selector or address format, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Starts with a specific verb+resource ('Get a user's auction activity history') and enumerates the event types returned (deposits, cancellations, fills, settlements), which lets an agent distinguish it from the single-purpose sibling jingswap_get_user_deposit. It stops short of naming that sibling explicitly, so differentiation is inferable rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus jingswap_get_user_deposit, jingswap_get_cycle_state, or jingswap_get_settlement, and no prerequisites or exclusions. The closing 'earning_opportunities' tip is a cross-sell, not usage guidance for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jingswap_get_user_depositB
Get a specific user's deposit amounts (token B and sBTC) for a given auction cycle.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | Yes | Cycle number | |
| market | No | Market: "sbtc-stx" (default) or "sbtc-usdcx" | |
| address | Yes | Stacks address of the depositor |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Get' clearly implies a read-only operation and it specifies the exact scope (user + cycle), but it does not state behavior for non-depositors, missing cycles, or invalid addresses.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and efficient. The second sentence is a promotional tip that is not relevant to selecting or invoking this tool, so not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter with no output schema, the definition is minimally adequate. It does not describe the return shape or how to interpret the deposit amounts, which would help an agent understand the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters cycle, market, and address are already documented. The description adds that returned amounts cover token B and sBTC, but does not clarify the market parameter's default or effect beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: get a specific user's deposit amounts for a given auction cycle, and names the asset types (token B and sBTC). The 'specific user' scope implicitly distinguishes it from jingswap_get_depositors, though no sibling is named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is a promotional tip pointing to earning_opportunities, not a when-to-use statement. It gives no indication of when to choose this over jingswap_get_depositors or jingswap_get_user_activity, nor any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jingswap_settleA
Settle the current auction cycle using stored Pyth oracle prices (free). WARNING: This will almost always fail because stored prices go stale quickly. Prefer jingswap_settle_with_refresh instead — it fetches fresh prices and is much more reliable. Only works after deposits have been closed (buffer/settle phase).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Market: "sbtc-stx" (default) or "sbtc-usdcx" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well: it discloses the stale-price failure mode, that the call is free, and the required cycle phase. It does not cover permissions, reversibility, or settlement effects, so it falls short of full transparency for a mutating action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose, warning, alternative, and prerequisite are front-loaded and efficient. The trailing tip about earning_opportunities is unrelated to invoking this tool and slightly dilutes focus, but the definition remains compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter settlement action with no annotations or output schema, the description covers the critical call conditions and failure mode. It does not explain what a successful settlement produces or returns, leaving a modest gap for an action tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one optional parameter with 100% description coverage specifying market values. The description adds no additional meaning about the market parameter, so the baseline of 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Settle the current auction cycle using stored Pyth oracle prices.' It explicitly distinguishes itself from the sibling jingswap_settle_with_refresh by explaining the price-source difference and reliability trade-off.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-not-to-use guidance ('almost always fail because stored prices go stale quickly') and names the preferred alternative jingswap_settle_with_refresh. It also states the prerequisite phase: 'Only works after deposits have been closed (buffer/settle phase).'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jingswap_settle_with_refreshA
Settle the current auction cycle by first refreshing Pyth oracle prices with fresh VAAs. This is the recommended settlement method — stored prices are almost always stale. Costs ~2 µSTX for the Pyth update. Automatically fetches fresh VAAs from the backend. Settlement distributes funds to all depositors so post conditions are in Allow mode. There is no guarantee settlement succeeds (e.g. if oracle update fails), but this is the most reliable path. Only works after deposits have been closed (buffer/settle phase).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Market: "sbtc-stx" (default) or "sbtc-usdcx" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description carries the full burden well: it discloses cost (~2 µSTX), that VAAs are fetched automatically from the backend, that post conditions run in Allow mode because funds are distributed to all depositors, and that success is not guaranteed. That is unusually rich disclosure for a settlement mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and the VAA-refresh mechanism, with cost, side effects, and prerequisites following in a logical order. The trailing `earning_opportunities` tip is tangential but short and clearly marked as a tip.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers cost, prerequisites, failure modes, and fund distribution, and no output schema exists so return values need no explanation. It stops short of telling the agent how to verify or retry after a settlement (e.g. via `jingswap_get_settlement`), which matters for a fund-moving operation with acknowledged failure risk.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single optional parameter (`market`) with 100% schema description coverage, so the schema already documents the two market choices. The description adds nothing about market selection or the default, which is acceptable but not additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Settle the current auction cycle') and adds a distinguishing mechanism: refreshing Pyth oracle prices with fresh VAAs first. This clearly separates it from the plain settlement path (stored prices are 'almost always stale'), although the sibling `jingswap_settle` is never named explicitly, so the agent must infer the contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends this as the default path ('This is the recommended settlement method') and names the precondition, the buffer/settle phase after deposits are closed. It also flags when it may fail (oracle update failure) and points to `earning_opportunities` for follow-up context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legion_concludeA
Settle a proposal and, if it passed, pay the proposer. Permissionless — anyone may call it, and someone must. Conclude opens the moment voting closes.
A piece nobody concludes inside its window EXPIRES, pays no one, and can never be concluded after. Concluding late pays what concluding early would; the payout was snapshotted at propose time.
Requires an unlocked wallet — caller pays gas, proposer gets the payout.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| proposalId | Yes | The proposal id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does so thoroughly: permissionless access, caller-pays-gas economics, proposer-receives-payout, the irreversible expiry failure mode, and the fact that late concluding pays identically because the payout was snapshotted at propose time.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, then consequence, then requirements – a sensible ordering with no filler. The trailing 'Tip' about `earning_opportunities` is tangential to this tool's job and slightly dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-annotation mutation tool, the definition covers permissions, cost, timing, and failure mode comprehensively. The only omission is any hint about what a successful call returns (e.g., a transaction hash), though there is no output schema to lean on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single `proposalId` parameter, so the schema already fully documents the input. The description adds no format or source guidance for the id (e.g., where to obtain it), leaving the baseline score appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Settle a proposal and, if it passed, pay the proposer,' which tells an agent exactly what happens. It doesn't explicitly distinguish itself from the near-identical sibling `atstake_legion_conclude`, so it falls just short of the top mark.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the timing condition ('Conclude opens the moment voting closes'), the caller obligation ('anyone may call it, and someone must'), and a hard when-not ('a piece nobody concludes inside its window EXPIRES... can never be concluded after'). No alternative tool is named, but for a settle operation there is effectively only one path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legion_contributeA
Send sBTC to the pool and receive voting weight proportional to your share of the contributed balance.
SPENDS REAL sBTC AND IS NOT REFUNDABLE — you get a say in which pieces get paid, not a claim on the pool. There is no withdrawal function. To fund the pool without a vote, use legion_sponsor.
Metered against the wallet's sats spending limit before signing, so a large contribution blocks until you raise SPEND_LIMIT_SESSION_SATS.
Crossing the minimum weight also makes you a MEMBER, which is what unlocks proposals for the whole legion once enough members join.
Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| sats | Yes | Amount of sBTC to contribute, in sats |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so thoroughly: it warns that real sBTC is spent and not refundable, states there is no withdrawal function, notes the wallet spending-limit metering, explains that crossing minimum weight grants MEMBER status, and requires an unlocked wallet. These are exactly the irreversible and prerequisite behaviors an agent must know before invoking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The warning about spending real sBTC and non-refundability is front-loaded in caps, followed by the alternative, limit, membership, and prerequisite details. The paragraphs are short, structured, and every sentence adds actionable information or a useful routing hint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, no-output-schema mutation tool with no annotations, the description covers the critical gaps: irreversibility, no withdrawal, spending-limit behavior, wallet unlock prerequisite, membership side effect, and the alternative funding tool. Nothing essential for correct invocation appears missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single parameter 'sats' is already documented as the amount of sBTC to contribute in sats with an exclusive minimum. The description adds some relevant context by saying the contribution is metered against the wallet's sats spending limit, but it does not add amount syntax or constraints beyond the schema. This matches the baseline for a fully documented single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: send sBTC to the pool and receive voting weight proportional to contribution. It also distinguishes the tool from the sibling legion_sponsor, which funds the pool without a vote. An agent can identify what this tool does and how it differs from nearby tools without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly names the alternative action and condition: use legion_sponsor to fund the pool without a vote. It also provides a clear pointer to earning_opportunities for asset yield options. The when-to-use and when-to-use-an-alternative guidance is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legion_get_storyA
One proposal in full: the tally against all three gates it must clear, the window timeline, what conclude would decide now, and whether you have voted.
Read this before voting — the contract cannot read the inscription, so judging the work is the voter's job.
Reads only.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| era | No | Which legion deployment to read: 1 (live, default). Proposal ids restart at 1 each era, so an id alone is ambiguous. | |
| proposalId | Yes | The proposal id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries full burden, and it delivers the critical trait: 'Reads only' declares side-effect-free operation. It also discloses what the output represents (current tally, what `conclude` would decide now). It omits permissions and pagination details but for a read tool this is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the return payload in one dense sentence, then the usage rationale and read-only note. The final 'Tip: call `earning_opportunities`...' is a promotional tangent unrelated to this tool's behavior and slightly dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must convey return contents, and it does enumerate tally, timeline, `conclude` preview, and voter status. Only remaining gap is not clarifying relationship to the sibling list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both `era` and `proposalId` are documented in the schema, including the useful note that ids restart each era. The description adds no parameter-level meaning beyond that, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific read: 'One proposal in full', then enumerates exactly what is returned (tally against three gates, window timeline, what `conclude` would decide, whether you have voted). That is a clear verb+resource. It does not differentiate from `legion_list_stories`, and the name says 'story' while the description says 'proposal', which is a small mismatch for an agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Read this before voting — the contract cannot read the inscription, so judging the work is the voter's job' gives a clear trigger condition for when to call it. It stops short of naming alternatives like `legion_list_stories` or distinguishing list vs single retrieval explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legion_inscribe_revealA
Complete a news inscription — STEP 2, the reveal, after the commit has confirmed.
Pass the SAME title, body and parentInscriptionId used at commit: the reveal script is derived from all three. The commit's actual output is checked against the script this content derives, so a mismatch is refused before signing rather than losing the sats.
Returns the inscription id and link for legion_propose_story.
No mainnet confirmation is asked for here, unlike the commit: those sats are already committed, and refusing the reveal would strand them rather than save them.
Requires an unlocked managed wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Same body used in the commit step | |
| title | Yes | Same title used in the commit step | |
| feeRate | No | Fee rate for the reveal tx (default: medium) | |
| commitTxid | Yes | Txid of the confirmed commit transaction | |
| revealAmount | Yes | revealAmount from the legion_inscribe_story response | |
| parentInscriptionId | No | Same parentInscriptionId used in the commit step, if any |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses the pre-signing validation (commit output checked against derived script), the consequence of refusal (stranded sats), and the unlocked managed wallet requirement. It stops short of detailing feeRate behavior or failure/return specifics beyond the id/link, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core steps and warnings are front-loaded and each sentence carries information. The trailing 'Tip: call earning_opportunities' line is promotional filler unrelated to the task, slightly diluting an otherwise tight description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-annotation mutation tool with no output schema, it covers prerequisites, wallet state, validation, and the return (inscription id and link for legion_propose_story). Minor gaps like feeRate default handling and edge-case errors keep it from a 5, but an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning: it explains that the reveal script is derived from title, body, and parentInscriptionId and that these must match the commit exactly. This provides rationale the schema does not, though commitTxid and revealAmount rely on the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (complete) and resource (news inscription reveal) and explicitly frames it as STEP 2 of a two-step flow, distinguishing it from the commit counterpart in legion_inscribe_story. The agent knows exactly what this does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to call it after the commit has confirmed, to reuse the SAME title/body/parentInscriptionId, and why a mismatch is refused before signing. It also contrasts with the commit step regarding mainnet confirmation, leaving no ambiguity about when to invoke versus hold back.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legion_inscribe_storyA
Inscribe a news piece to a Bitcoin ordinal as markdown — STEP 1, the commit.
Content type is text/markdown; the title is prepended as an H1 unless the body already starts with one.
SPENDS REAL BITCOIN on L1, on the Bitcoin network NETWORK names (currently mainnet) — this is native BTC from your UTXOs, not the sBTC the rest of the legion moves on Stacks mainnet. A mainnet inscription needs confirmMainnetSpend: true; without it the tool prices the piece and refuses, so real BTC is never spent by accident.
Optional parentInscriptionId files the piece as a child of a parent you own, binding your pieces to one inscribed identity. That is authorship, not originality.
Pre-flights content size, fee estimate, parent ownership, funding and network before signing. dryRun prices it without broadcasting.
Returns without waiting. After the commit confirms, call legion_inscribe_reveal.
Requires an unlocked managed wallet with funded UTXOs.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The piece itself, as markdown. | |
| title | Yes | Headline. Prepended to the body as an H1 unless the body already has one. | |
| dryRun | No | Run every pre-flight check and price the inscription, but sign nothing. Use this to see the cost before spending it. | |
| feeRate | No | Fee rate: 'fast', 'medium', 'slow', or a number in sat/vB (default: medium) | |
| allowNonMainnet | No | Permit inscribing on a non-mainnet Bitcoin network. Refused by default: ordinals.com serves mainnet only, so the link would 404 for every voter. | |
| confirmMainnetSpend | No | Acknowledge that this spends real BTC. Required on mainnet — without it the tool returns the exact cost and refuses. | |
| parentInscriptionId | No | Optional parent inscription id (e.g. 'abc…i0') to file this piece under. You must own it: the reveal spends the parent's UTXO and returns it to you, so children from one parent must be inscribed one at a time. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does so: it discloses that this spends native L1 BTC from the caller's UTXOs (not sBTC), that the spend is refused without confirmMainnetSpend, that non-mainnet links would 404, and that it pre-flights size/fees/ownership/funding before signing. It also flags asynchronous return behavior rather than implying a completed inscription.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose and step marker, then ordered by risk (real BTC, confirmation flag), then mechanics (parent, pre-flight, dryRun), then next step. Sentences are dense and each carries either a constraint or a consequence; the trailing earning_opportunities tip is the only mild extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter, no-annotation, no-output-schema mutation tool this is close to sufficient: cost, authorization, failure modes, and follow-up are all covered. The remaining gap is what the call actually hands back (the commit txid/inscription id needed to drive the reveal) — it only says it returns without waiting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the field docs: the cost of omitting confirmMainnetSpend, what dryRun prices, and the serialization constraint that children of one parent must be inscribed one at a time. It leaves feeRate and allowNonMainnet to the schema rather than elaborating further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Inscribe a news piece to a Bitcoin ordinal as markdown') and pins its position in the flow as 'STEP 1, the commit', which cleanly separates it from the sibling legion_inscribe_reveal. It also names the exact content type and title handling, so the agent knows precisely what artifact it produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete preconditions (unlocked managed wallet with funded UTXOs), the sequencing rule ('After the commit confirms, call legion_inscribe_reveal'), and a safe-path instruction for dryRun. It does not route against the generic ordinal siblings such as inscribe/inscribe_child or estimate_inscription_fee, so the differentiation is context-derived rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legion_list_storiesA
Proposals newest first, with phase, tally and the inscription each points at.
Phases: pending (filed, voting not open yet), voting, concludable, passed/failed (settled), expired (nobody concluded in time; can no longer pay).
Reads only.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| era | No | Which legion deployment to read: 1 (live, default). Proposal ids restart at 1 each era, so an id alone is ambiguous. | |
| limit | No | How many proposals to scan back from the newest (default 10) | |
| phase | No | Filter by phase. 'live' means pending+voting+concludable. Default: all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does so partly: 'Reads only' declares the safety profile, and result ordering plus returned fields are disclosed. It does not cover pagination behavior or what happens when the scan limit is hit, but the core behavioral profile is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Returned fields are front-loaded in one line, followed by a compact phase legend and a read-only note. The closing 'Tip' promoting earning_opportunities is the only sentence that does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by naming the fields each proposal carries, which is what an agent needs to decide whether to call it. Combined with the fully documented schema, only ordering/pagination edge behavior is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so era, limit and phase are already documented; that sets the baseline at 3. The phase gloss ('expired – nobody concluded in time; can no longer pay') adds interpretive nuance beyond the enum names, but nothing is said about era or limit in the description itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource (proposals/stories), the ordering (newest first) and the payload (phase, tally, inscription target), so an agent knows exactly what comes back. It does not explicitly contrast with legion_get_story or legion_my_position, so sibling differentiation is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'Reads only' plus the phase filter make it obvious this is the browsing entry point, but there is no statement of when to pick it over legion_get_story. The trailing tip about earning_opportunities is a cross-sell, not usage guidance for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legion_my_positionA
Your weight, share, weight lock, sBTC balance, and every propose precondition folded from the contract's propose-status — so a blocked propose names the gate to wait on.
Requires an unlocked wallet. Signs nothing.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| era | No | Which legion deployment to read: 1 (live, default). Proposal ids restart at 1 each era, so an id alone is ambiguous. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it states the wallet must be unlocked and that nothing is signed, establishing safety and a prerequisite. It omits error behavior and failure modes for an unregistered or locked wallet, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Return contents are front-loaded in the first clause, followed by the safety note and a cross-reference tip. Three short sentences with little waste, though the earning_opportunities tip is tangential to invoking this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read with no output schema, the description compensates by listing the returned fields and the signature/auth posture. An agent has enough to call it correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the 'era' parameter already carries a solid description about deployments and id collisions, so the schema does the work. The description adds nothing about 'era', which is acceptable at baseline but not additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Enumerates exactly what is returned (weight, share, weight lock, sBTC balance, propose preconditions) for the caller's own legion position, which is a concrete resource with a clear scope. It does not explicitly contrast itself with legion_status, so sibling differentiation is only partial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'so a blocked propose names the gate to wait on' clause tells the agent this is the pre-flight check before legion_propose_story, which is real usage guidance. It stops short of explicit when-not-to-use or naming an alternative read tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legion_propose_storyA
Open a vote on one inscribed piece. If it passes, YOU are paid the payout — the proposer is the only reachable payee.
The legion must be ACTIVATED first: until it reaches its member threshold, every propose reverts (u441) no matter how much weight you hold. Check legion_status.
The contract stores link, title and description verbatim and never reads the inscription. Proposing locks your ENTIRE weight until the piece resolves — one live proposal per principal; the lock is never spent and releases on every outcome.
Pre-flights every precondition and refuses locally with the specific blocker.
Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| link | Yes | Inscription id (<64-hex-txid>i0) or a full ordinals URL. A bare id is expanded to https://ordinals.com/inscription/<id> | |
| title | Yes | Headline (ASCII, ≤128 chars) | |
| description | No | Why this piece is worth paying for (ASCII, ≤512 chars). Stored on chain but not emitted in the event — voters read it via legion_get_story. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden — and it does: the u441 revert until the member threshold, the entire-weight lock held until resolution, the fact the lock is never spent and releases on every outcome, local pre-flight refusal with the specific blocker, and the verbatim on-chain storage. This is unusually complete disclosure for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the payoff and the activation blocker, then layered detail in short paragraphs. The closing 'Tip: call earning_opportunities' is tangential promotion rather than tool guidance and costs a point, but nothing else is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description covers failure modes, locking, and storage thoroughly — but never says what a successful call returns (proposal id, tx hash, event). For a transaction-submitting tool that is the one meaningful omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description adds real semantics on top by noting the contract stores link/title/description verbatim and never reads the inscription, implying validation is cosmetic and unreadable content still passes. That materially changes how an agent should fill these fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Open a vote on one inscribed piece' — and immediately adds the proposer-exclusive payout, which is what separates this from legion_vote / legion_inscribe_story. An agent can tell what it creates and who benefits without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit preconditions: the legion must be ACTIVATED (check legion_status), one live proposal per principal, and an unlocked wallet is required. It lacks an explicit 'use X instead if...' routing against the very similar atstake_legion_propose sibling, which keeps it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legion_sponsorA
Fund the pool WITHOUT minting voting weight, with a name on the record.
Does not raise the price of joining (weight is priced against contributed sats only), but does enlarge every payout, since the payout is a fraction of the whole pool.
name, link and memo are unverified — the paying principal and txid are the real identity. SPENDS REAL sBTC AND IS FINAL: no refund path exists.
Metered against the wallet's sats spending limit before signing.
Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| link | No | Optional sponsor URL (ASCII, ≤96 chars) | |
| memo | No | Optional free-form note on the record (ASCII, ≤128 chars) | |
| name | Yes | Sponsor name as it should be attributed (ASCII, ≤40 chars) | |
| sats | Yes | Amount of sBTC to sponsor, in sats (must meet the treasury's minimum) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does so well: it discloses that real sBTC is spent irreversibly with no refund path, that funds are metered against the wallet's sats spending limit before signing, and that an unlocked wallet is required. It also warns that name/link/memo are unverified and that the paying principal plus txid are the real identity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core distinction is front-loaded in the first sentence, followed by economic consequences and then the safety warning, which is the right order. The closing 'Tip: call earning_opportunities...' is promotional filler that does not help an agent invoke this tool and slightly dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter mutation with no annotations and no output schema, this is nearly complete: cost source, irreversibility, auth prerequisite, pre-signing limit check and the trust status of the free-text fields are all covered. The gaps are the unnamed alternative (legion_contribute) and no mention of what failure looks like when the treasury minimum is not met.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so 3 is the baseline, but the description adds real meaning beyond the schema: name, link and memo are explicitly unverified metadata, while the principal and txid form the actual on-chain identity. It also explains why sats does not raise the join price but does enlarge payouts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (fund the pool) and immediately qualifies the variant ('WITHOUT minting voting weight, with a name on the record'). That negation effectively separates it from legion_contribute, but the sibling is never named, so an agent must infer the pairing from the naming pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'WITHOUT minting voting weight' clause implies when this is the right choice over a weight-minting contribution, and the tip routes to earning_opportunities for a different purpose. However, there is no explicit 'use legion_contribute instead if you want voting weight' statement or statement of when-not to sponsor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legion_statusA
News Legion at a glance: sBTC pool, total weight, membership and whether the legion is ACTIVATED yet, governance params read from the contract, current height, and your own weight if a wallet is unlocked. Start here.
No story can be proposed until the legion reaches its member threshold, so check membership.activated before planning to publish.
Reads only. Runs on Stacks mainnet regardless of this server's NETWORK.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| era | No | Which legion deployment to read: 1 (live, default). Proposal ids restart at 1 each era, so an id alone is ambiguous. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description does real work: 'Reads only' declares the absence of side effects, and it discloses a non-obvious trait — it runs on Stacks mainnet regardless of the server's NETWORK setting. The conditional field ('your own weight if a wallet is unlocked') hints at wallet-gated output, though failure modes and error behavior are not covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with what is returned, followed by the one decision-relevant constraint and a short pointer. Three short blocks, no filler sentences, and the most important caveat (activation threshold) is not buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description's field enumeration is essential and it delivers that. For a zero-required-parameter read tool this is close to complete; only minor gaps remain around what happens when no wallet is unlocked or when the era deployment is unavailable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single `era` parameter is fully explained there, including the default and the proposal-id ambiguity. The description adds nothing about `era` beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (the News Legion) and enumerates exactly what the call surfaces: sBTC pool, total weight, membership/activated flag, governance params, current height, and the caller's own weight. The closing 'Start here' plus the contrast with proposal-related siblings (legion_propose_story) makes it clearly distinguishable from legion_get_story and legion_my_position.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent it is the entry point ('Start here') and states a concrete precondition to check ('membership.activated') before publishing a story, which routes the agent correctly relative to legion_propose_story. It also redirects to earning_opportunities for a different goal, but it never states when NOT to use this tool or how it overlaps with legion_my_position.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legion_voteA
Vote yes or no with your current weight, with a written rationale recorded on chain. One vote per principal; a proposer cannot vote on their own piece. Votes cannot be changed.
Voting no is the ONLY way to stop a piece — this legion has no veto.
Read the inscription first — legion_get_story gives you the link.
Pre-flights phase, weight and prior vote. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| support | Yes | true = yes (pay this piece), false = no | |
| rationale | Yes | Why you voted this way, recorded on chain (ASCII, ≤256 chars). Required and must be non-empty — the contract rejects a blank one (u440). | |
| proposalId | Yes | The proposal id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden and delivers: votes are immutable ('cannot be changed'), one per principal, proposer excluded, requires an unlocked wallet, and pre-flight checks on phase, weight and prior vote. This is rich behavioral context an agent needs before an irreversible action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and its key constraints, then prerequisites. Mostly waste-free, though the trailing 'earning_opportunities' tip is tangential promotion that does not help invoke this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers prerequisites, immutability, eligibility and validation adequately. It does not describe the return value or what a successful vote looks like on chain, a minor gap for a straightforward state-changing call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents proposalId, support and rationale. The description adds auxiliary meaning ('with your current weight', rationale recorded on chain) but no syntax or format detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (vote) plus resource (a proposal/piece) plus qualifier (with current weight, on-chain rationale). It distinguishes itself from sibling legion tools by describing the voting action and its constraints. An agent immediately knows what this does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to legion_get_story first ('Read the inscription first') and explains that voting no is the only way to stop a piece (no veto). Lacks an explicit 'do not use if you already voted' exclusion, but the 'one vote per principal' and 'cannot be changed' lines cover most of that ground.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lightning_claim_depositA
Claim a confirmed BTC L1 deposit into the Spark Lightning wallet. Call this AFTER lightning_fund_from_btc and after the on-chain transaction has 3 confirmations. Fetches a signed quote from the SSP, submits the claim, and returns the credited sats + Spark transfer id. Requires an unlocked Lightning wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| outputIndex | No | Vout index of the deposit output (default: SSP auto-detects) | |
| transactionId | Yes | Bitcoin txid of the deposit transaction |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does well: it explains that the tool fetches a signed quote from the SSP, submits the claim, returns credited sats plus a Spark transfer id, and requires an unlocked wallet. It stops short of covering failure modes or idempotency if the deposit was already claimed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, prerequisites, process, and return values. The trailing earning_opportunities tip is peripheral to invoking this tool, but the overall wording remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description supplies the necessary context: prerequisites, confirmation requirement, unlocked-wallet requirement, SSP quote behavior, and return values. An agent has enough information to know when and how to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both transactionId and outputIndex are documented in the schema. The description adds no parameter-specific meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: claiming a confirmed BTC L1 deposit into the Spark Lightning wallet. It clearly distinguishes this from the sibling lightning_fund_from_btc by naming it as the required precursor step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit timing conditions: call after lightning_fund_from_btc and after the on-chain transaction has 3 confirmations. It also notes the wallet must be unlocked, though it does not name alternatives for what to do if those conditions are not yet met.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lightning_createB
Create a new embedded Lightning wallet backed by the Spark SDK. Generates a fresh BIP39 mnemonic (shown once), encrypts it with the provided password, and stores it at ~/.aibtc/lightning/keystore.json. Returns the deposit address for funding the wallet from L1 BTC.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the Lightning wallet (e.g., 'main') | |
| password | Yes | Password to protect the Lightning wallet (minimum 8 characters) - WARNING: sensitive value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden, and it does disclose real behavior: a mnemonic is generated and shown only once, encrypted with the password, and persisted to ~/.aibtc/lightning/keystore.json. However it omits important operational facts — behavior on repeat calls (overwrite vs. error), whether the mnemonic is recoverable afterwards, and whether the password is unrecoverable if lost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core capability, side effects, storage path, and return value are packed into two front-loaded sentences with no waste. The trailing `earning_opportunities` tip is mild filler that does not serve tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter creation tool with a fully documented schema and no output schema, the description covers the essentials: what is created, the irreversible 'shown once' mnemonic, where the keystore lives, and what the call returns. Edge-case behavior around pre-existing wallets is the main missing piece.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds only light context: `password` is used to encrypt the mnemonic, and `name` labels the wallet. It does not expand on naming rules or password strength beyond the schema's minLength=8.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a new embedded Lightning wallet') plus the underlying mechanism (BIP39 mnemonic + Spark SDK), which implicitly separates it from sibling tools like lightning_import or wallet_create. It never names those siblings explicitly, so the differentiation is inferential rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage direction is a tangential tip pointing at `earning_opportunities`, which has nothing to do with choosing this tool. There is no guidance on when to create vs. import (lightning_import), no prerequisite about needing a password up front, and no note on what to do if a keystore already exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lightning_create_invoiceB
Create a BOLT-11 Lightning invoice that can receive a payment into the embedded Lightning wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| memo | No | Optional description attached to the invoice | |
| amountSats | Yes | Amount to request in satoshis |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden, yet it says nothing about prerequisites (e.g., whether the Lightning wallet must be created or unlocked), invoice expiry, or whether the returned invoice reserves funds. It only identifies the tool as a receiving operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is efficient and front-loaded. The second sentence is a promotional pointer to an unrelated tool and does not help an agent invoke this one, which weakens the structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description should at least indicate the return shape (a BOLT-11 string) and operational prerequisites. Those gaps leave an agent without enough context to call this confidently in a complex wallet ecosystem.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both amountSats and memo, so the schema already explains both parameters. The description adds no additional parameter meaning such as units or constraints beyond what is structured, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: create a BOLT-11 Lightning invoice that receives payment into the embedded Lightning wallet. That is enough to distinguish it from lightning_pay_invoice, though it does not explicitly differentiate itself from the similarly named sibling lightning_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'can receive a payment' but there is no explicit statement of when to use this versus alternatives such as lightning_create (wallet setup) or lightning_pay_invoice (sending). The closing tip about earning_opportunities does not provide guidance for invoking this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lightning_fund_from_btcA
Fund the Lightning wallet from the user's L1 BTC wallet. Sends BTC to the Spark deposit address and returns the L1 txid. After the transaction confirms on-chain, the deposit must be claimed to credit the Lightning balance (separate follow-up step; not automated in this PR). Requires the main wallet to be unlocked AND the Lightning wallet to be unlocked (to fetch the deposit address).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| feeRate | No | Fee rate: 'fast' (~10 min), 'medium' (~30 min), 'slow' (~1 hr), or number in sat/vB | medium |
| amountSats | Yes | Amount to deposit in satoshis (1 BTC = 100,000,000 satoshis) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load well: it discloses the on-chain send, the returned txid, the non-automated claim step, and the requirement that both wallets be unlocked. It does not discuss failure modes, minimums, or irreversibility of the outbound BTC transfer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Core action and prerequisites are front-loaded and the follow-up claim step is stated compactly. The trailing 'Tip: call earning_opportunities' is promotional filler unrelated to funding the wallet and slightly dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a fund-moving tool with no annotations and no output schema, it covers the critical operational facts: prerequisites, what is returned, and the required follow-up. Missing are practical failure/limit details (minimum amount, insufficient-funds behavior, fee estimation expectations).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both amountSats and feeRate (including the fast/medium/slow meanings) are fully documented in the schema. The description adds no parameter-level detail beyond that, which is the baseline case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (fund the Lightning wallet from the L1 BTC wallet) and clarifies the mechanism (sends BTC to the Spark deposit address, returns the L1 txid). This clearly separates it from siblings like lightning_claim_deposit and lightning_pay_invoice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly frames the tool as step one of a two-step flow and warns that the deposit must be claimed afterwards (the sibling lightning_claim_deposit), plus states both unlock prerequisites. No explicit exclusions or alternatives for moving BTC elsewhere, so not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lightning_importB
Import an existing Lightning wallet into the embedded Spark-backed store from a BIP39 mnemonic phrase. Encrypted locally at ~/.aibtc/lightning/keystore.json.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the Lightning wallet | |
| mnemonic | Yes | BIP39 mnemonic phrase - WARNING: sensitive value | |
| password | Yes | Password to protect the Lightning wallet (minimum 8 characters) - WARNING: sensitive value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that the wallet is encrypted locally at ~/.aibtc/lightning/keystore.json and stored in an embedded Spark-backed store. However, it omits critical mutation behavior such as whether an existing wallet is overwritten, whether the wallet must be locked, or what happens on invalid mnemonic/password.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core import description is front-loaded and efficient. However, the trailing 'Tip' about earning_opportunities is unrelated to invoking this tool and does not earn its place in the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a security-sensitive import operation with no annotations and no output schema, the description covers the source format, storage location, and encryption. It still leaves out meaningful operational context such as replacement behavior, prerequisite wallet state, and error conditions, which an agent would need before calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all three parameters, including the BIP39 mnemonic and password minimum length. The description only repeats that the import is from a BIP39 mnemonic and adds no syntax, validation, or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (import), resource (Lightning wallet), source (BIP39 mnemonic), and destination (embedded Spark-backed store). It implicitly distinguishes from lightning_create by specifying an 'existing' wallet, but it does not name the sibling tool or explain the distinction explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Import an existing Lightning wallet' implies usage when a mnemonic already exists, but there is no explicit guidance on when to use this versus lightning_create or wallet_import. No alternatives, prerequisites, or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lightning_lockA
Lock the Lightning wallet and drop the Spark session from memory. L402 auto-pay will stop working until the wallet is unlocked again.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does real work: it discloses that the Spark session is discarded from memory and that L402 auto-pay breaks until unlock. It does not say whether the call is idempotent, whether funds remain safe, or whether re-locking an already-locked wallet errors — minor but real gaps for a state-mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are tight and front-loaded — effect then consequence. The trailing tip promoting `earning_opportunities` is unrelated to locking and reads as cross-sell copy that dilutes an otherwise efficient definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-annotation tool with no output schema, the description covers the primary side effects an agent needs to decide and act. Return shape and error behavior are absent, but the critical operational consequence (auto-pay outage) is stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; no parameter discussion is needed or expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Lock") and a specific resource ("the Lightning wallet"), plus a second concrete effect ("drop the Spark session from memory"). The "Lightning" qualifier is what separates it from the sibling wallet_lock, so an agent can route correctly without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The consequence clause ("L402 auto-pay will stop working until the wallet is unlocked again") gives a clear decision signal for when locking is and isn't appropriate. It stops short of explicitly naming lightning_unlock or wallet_lock as alternatives or stating prerequisites, so it is strong context rather than full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lightning_pay_invoiceB
Pay a BOLT-11 Lightning invoice from the embedded Lightning wallet. Returns the payment preimage (proof of payment) and fees paid.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| bolt11 | Yes | BOLT-11 encoded Lightning invoice (starts with lnbc... or lntb...) | |
| maxFeeSats | No | Maximum routing fee to pay in sats (provider default applies when omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the return payload (preimage as proof of payment, fees paid), which is valuable given there is no output schema, and 'Pay' signals a fund-moving, irreversible operation. However, it omits the critical operational facts an agent needs: the wallet must exist and be unlocked, balance must cover amount plus routing fee, and what failure modes exist (expired invoice, no route).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The operative content is a single front-loaded sentence with zero waste. The trailing 'Tip:' sentence about earning_opportunities is off-topic for this tool and dilutes focus, costing it the top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter payment tool with no annotations and no output schema, the description covers outcome (preimage, fees) but not state preconditions or failure handling. It is adequate to identify the tool, but an agent could call it with a locked or underfunded wallet without warning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — both bolt11 and maxFeeSats are documented in-schema, including the provider default when maxFeeSats is omitted. The description adds no format guidance or examples beyond the schema, and the phrase 'fees paid' does not clarify the maxFeeSats ceiling semantics. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Pay a BOLT-11 Lightning invoice') and scopes the source of funds ('from the embedded Lightning wallet'), which cleanly separates it from lightning_create_invoice and the broader wallet/payment tools. It stops short of explicitly naming which sibling handles invoice creation, so an agent must infer the pairing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the object ('a BOLT-11 invoice you already hold'), but there is no statement of prerequisites (wallet created/unlocked, funded balance) nor any exclusion or alternative routing. The one pointer offered — 'call earning_opportunities to see how to put your assets to work' — is an unrelated promotional hook, not decision guidance for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lightning_statusB
Get the status of the embedded Lightning wallet: whether it's unlocked, its wallet id, current balance (if unlocked), deposit address, and optional Lightning address.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries full disclosure burden. It does add real signal by noting the balance is only returned 'if unlocked', so an agent knows to expect partial data in a locked state, and the enumeration of returned fields clarifies the read-only nature implicitly. It stops short of stating permissions, failure modes, or what happens when no wallet exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and the returned-field list in a single tight sentence. The trailing 'Tip' about earning_opportunities is promotional filler that does not help an agent select or call this tool, though it costs little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there is no output schema and no annotations, the description must describe return values, which it does reasonably well by listing the five fields. However, it leaves ambiguous the distinction from sibling status tools (wallet_status, get_wallet_info) and says nothing about the locked-state edge cases beyond a parenthetical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to disambiguate; baseline 4 applies. The schema is empty and the description correctly does not invent inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Get the status of the embedded Lightning wallet") and enumerates the exact fields returned: unlock state, wallet id, balance, deposit address, Lightning address. It does not distinguish itself from sibling tools like wallet_status or get_wallet_info, which is the main gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to call this versus wallet_status, get_wallet_info, or the lightning_unlock/lightning_lock siblings. The only routing hint is a promotional tip pointing at earning_opportunities, which is unrelated to selecting or invoking this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lightning_unlockA
Unlock the Lightning wallet for the current session. Required before paying or creating invoices, and before the L402 interceptor can auto-pay challenges.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| password | Yes | Wallet password - WARNING: sensitive value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and usefully discloses session scope plus prerequisite operations. However, it does not describe failure behavior, security implications of the password, or whether unlocking persists until an explicit lock.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and prerequisites are front-loaded in two efficient sentences. The trailing 'earning_opportunities' tip is not needed for invoking this tool and slightly weakens focus, but the definition remains concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter unlock tool, the description gives enough context to call it correctly and explains its prerequisite role. It still lacks security, failure, and session-lifetime details that matter for a wallet-unlock operation without annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single password parameter has 100% schema description coverage, including a sensitivity warning. The description adds no parameter details, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: unlock the Lightning wallet. It adds scope with 'for the current session' and distinguishes this from sibling tools like wallet_unlock by naming the Lightning wallet specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly says when the tool is required: before paying, creating invoices, or enabling L402 auto-pay. It does not name alternatives or when-not conditions, but the prerequisite context is strong enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_stacking_signersA
List PoX-5 signer managers in the signer set for a reward cycle (default: next cycle), with the STX delegated to each. A signer manager is what stack_stx stakes with. Only signers with at least the signer-set minimum delegated appear here; other registered managers can still be staked with by contract id. Set withPayoutInfo to see how each manager pays stakers (slower).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| rewardCycle | No | Reward cycle to list. Defaults to the next cycle (the one a new stake joins). | |
| withPayoutInfo | No | Also read each manager's claim path (one extra request per signer). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose real behavior: the default cycle, the inclusion filter tied to the signer-set minimum, the exclusion consequence, and a cost signal for withPayoutInfo ('slower'). It does not state auth requirements, result-size/pagination characteristics, or that the call is side-effect free beyond what 'List' implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads what is listed and what is returned, then the filtering rule and the optional flag. The closing 'Tip' is mildly tangential but does earn its place by routing to a related tool. Slightly denser than needed, but no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter read-only list with no output schema, the description conveys enough of the return shape ('with the STX delegated to each', optional payout paths) and the filtering semantics to call it correctly. Missing only minor specifics like ordering or how large the signer set can be.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in-schema, including the next-cycle default and the one-extra-request-per-signer cost. The description restates these rather than adding new syntax, ranges, or edge cases. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and a precise resource (PoX-5 signer managers in the signer set for a reward cycle) plus the payload returned (STX delegated to each). It goes further and defines the domain term ('A signer manager is what stack_stx stakes with'), so an agent can place this tool relative to stack_stx and the stacking tools without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives the default (next cycle) and an explicit alternative path: managers below the signer-set minimum are excluded here but can still be staked with by contract id. It also names the condition for the expensive option ('Set withPayoutInfo to see how each manager pays stakers (slower)') and routes to earning_opportunities. It stops short of stating the canonical workflow (call this before stack_stx to pick a manager), so it is clear context rather than full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_user_domainsB
List all BNS domains owned by an address.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Stacks address to check. Uses configured wallet if not provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'List all' implies a read-only bulk retrieval, but it does not disclose pagination behavior, result shape, authentication requirements, or limits. This is adequate for a simple listing tool but leaves clear gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is tight and front-loaded. The second sentence is an unrelated promotional tip for earning_opportunities and does not help an agent select or invoke this tool, so it does not fully earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description sufficiently covers the core action and the schema covers the only parameter. However, with no annotations and no output schema, it should say more about return values or read-only behavior to be fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the single optional 'address' parameter and its default wallet behavior are already fully documented in the schema. The description only adds that the address is the owner of the domains, which is useful but minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('BNS domains') with ownership scope ('owned by an address'), which distinguishes it from forward and reverse BNS lookup siblings. However, it does not explicitly name a sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended usage is implied: retrieve BNS domains owned by an address. There is no explicit when-to-use/when-not guidance or comparison to related tools such as reverse_bns_lookup or get_bns_info. The tip to call earning_opportunities is an unrelated next step, not selection guidance for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_user_tokensC
List all fungible tokens owned by an address.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Wallet address to check. Uses configured wallet if not provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read-only listing operation but does not state whether authentication is required, what happens when address is omitted, whether results are paginated, or what the return shape looks like. This is a significant transparency gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short and front-loads the core operation in one clear sentence. The second sentence is a promotional next-step tip rather than invocation guidance, so it does not fully earn its place, but it does not harm clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter listing tool with a fully described optional address parameter, the description is minimally adequate. However, with no output schema and no annotations, it should say more about return format, wallet defaults, or behavioral constraints to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains that address is optional and defaults to the configured wallet. The description says tokens are 'owned by an address' but adds no syntax, formatting, or parameter-specific meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb and resource: 'List all fungible tokens owned by an address.' This is specific and understandable. However, it does not explicitly distinguish itself from nearby token-related siblings such as get_token_balance, get_token_holders, or tenero_wallet_holdings, leaving the agent to infer the difference from scope alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like get_token_balance or tenero_wallet_holdings. The only usage-related sentence is a follow-up tip to call earning_opportunities, which does not help the agent select or invoke list_user_tokens correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_x402_endpointsA
List x402 API endpoints. x402.aibtc.com and stx402.com are read live from their OpenAPI specs; the stx402.com directory lists x402 endpoints registered by third parties.
Sources:
x402.biwas.xyz: DeFi analytics, market data, wallet analysis, Zest/ALEX protocols
x402.aibtc.com: AI inference, Stacks utilities, hashing, storage (live)
stx402.com: x402 endpoint registry, agent registry (ERC-8004), links (live)
aibtc.com: Inbox messaging
directory: third-party endpoints registered at stx402.com (live, mainnet). Unverified entries are hidden unless includeUnverified is true — probe before paying.
Costs from live specs are tiers ("paid (standard)", "paid (dynamic)"); use probe_x402_endpoint for the exact price.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Search endpoints by keyword (searches path, description, category) | |
| source | No | Filter by API source | all |
| category | No | Filter by category (case-insensitive) | |
| showFreeOnly | No | Only show free endpoints (no payment required) | |
| showPaidOnly | No | Only show paid endpoints (require x402 payment) | |
| includeUnverified | No | Include unverified third-party entries from the stx402.com directory |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses which sources are fetched live from OpenAPI specs, that the directory contains unverified third-party entries that are hidden by default, and that cost data from live specs is only a tier rather than an exact price. It omits return shape, pagination, and any rate-limit/caching behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose in one sentence, then uses a scannable bulleted source list rather than prose. It is somewhat long for a list tool, and the source bullets duplicate the enum values, but each line adds information an agent would otherwise have to discover by calling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter, zero-required discovery tool with no output schema, the description covers sources, live-vs-static behavior, verification defaults, and the pricing caveat. The remaining gap is that it never hints at what an endpoint record contains (path, price, category, verification status), which matters given there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds real meaning beyond the schema: it explains what each `source` enum value actually contains (DeFi analytics, AI inference, registry, messaging) and clarifies the security implication of `includeUnverified`. It does not touch `search`, `category`, `showFreeOnly`/`showPaidOnly`, though the schema documents those adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("List x402 API endpoints") and immediately enumerates the five distinct sources it aggregates, so an agent knows exactly what corpus this returns versus a single-endpoint tool. The distinction from probe_x402_endpoint and execute_x402_endpoint is reinforced by pointing at probe for pricing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operating guidance: "use probe_x402_endpoint for the exact price" and "probe before paying" for unverified directory entries, plus a cross-sell tip to earning_opportunities. It does not explicitly state when to reach for execute_x402_endpoint instead, so routing guidance is strong but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_bns_nameB
Resolve a .btc domain name to its Stacks address.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | BNS name to lookup (e.g., 'alice.btc' or 'alice') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Resolve' implies a read-only lookup, but nothing states what happens when the name is unregistered or malformed, or whether the lookup is cached/live. For a simple read this is minimally sufficient, not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is tight and front-loaded, but the second sentence is unrelated promotional content that does not help an agent invoke this tool and dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description could have said what comes back (a Stacks address, presumably, and an error/empty state for unregistered names) but does not. Schema fully covers the single input, so the gap is limited to return and failure behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema description coverage is 100%, including the example format ('alice.btc' or 'alice'). The description adds no syntax or normalization detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with an explicit direction: resolve a .btc name to a Stacks address. This implicitly separates it from the sibling reverse_bns_lookup, but the sibling is never named and nearby tools like get_bns_info and check_bns_availability are not distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus reverse_bns_lookup, get_bns_info, or check_bns_availability, and no prerequisites. The only 'tip' points at an unrelated sibling (earning_opportunities) rather than a genuine alternative for this operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_check_statusA
⛔ DEPRECATED — do not use. This tool used to check a correspondent's signals and earnings via the aibtc.news API, which has been shut down (410 Gone). aibtc.news now runs on on-chain governance: use legion_my_position instead (start with legion_status).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden — and it does: it discloses the root cause (aibtc.news API shut down, returns 410 Gone), which tells the agent any invocation will fail rather than return stale data. It also explains the architectural shift to on-chain governance, which is exactly the context needed to avoid retrying this tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with the deprecation warning front-loaded in the first two words, which is the correct priority for a tool that must not be called. The closing 'Tip' about earning_opportunities is slightly tangential to the deprecation message but still routes an agent whose goal was yield/signals.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deprecated zero-parameter tool with no output schema, this is exactly the complete set of information an agent needs: don't call it, here's why, here's what to call instead. Nothing is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is an empty object at 100% coverage, so there is nothing to disambiguate; baseline 4 applies. The description correctly spends no words on parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states unambiguously that this tool is deprecated and explains what it used to do (check a correspondent's signals and earnings via aibtc.news). It also names the successor tools (legion_my_position, with legion_status as a starting point), so an agent can immediately tell it apart from the legion_* and news_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-not-to-use ('⛔ DEPRECATED — do not use') plus two concrete alternatives and an ordering hint ('start with legion_status'). It also points to earning_opportunities for the underlying intent, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_claim_beatA
⛔ DEPRECATED — do not use. This tool used to claim or join a beat via the aibtc.news API, which has been shut down (410 Gone). aibtc.news now runs on on-chain governance: use legion_contribute instead (start with legion_status).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and discharges it: it discloses the backend is gone (410 Gone), that governance has migrated on-chain, and warns against invocation. Failure mode and replacement path are both disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Deprecation is front-loaded with a visual stop marker, which is exactly right for the highest-priority information. The closing tip about earning_opportunities is tangential to the deprecated tool but serves as a useful redirect, so it does not badly dilute the message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deprecated zero-parameter tool with no annotations and no output schema, nothing further is needed: the description says what it was, why it fails, and where to go instead. There is no residual ambiguity an agent could act on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero parameters, so the baseline is 4; there is nothing for the description to clarify. It correctly implies the tool takes no input by describing it purely as a former claim/join action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with an unmistakable deprecation marker and states exactly what the tool used to do (claim/join a beat via the aibtc.news API). An agent immediately knows both the resource and that it must not be called, which is the most useful possible outcome for a dead tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-not-to-use guidance ('do not use'), explains the reason (API shut down, 410 Gone), and names two concrete alternatives with an entry point: legion_contribute, starting from legion_status. This is the strongest possible routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_deactivate_editorA
⛔ DEPRECATED — do not use. This tool used to deactivate an editor via the aibtc.news API, which has been shut down (410 Gone). aibtc.news now runs on on-chain governance: use legion_status instead (start with legion_status).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and delivers: it discloses the backend was shut down and that calls return 410 Gone, which is the single most behaviorally relevant fact about this tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Deprecation warning leads, followed by explanation and routing in three short sentences. The trailing 'Tip: call earning_opportunities' is a tangential upsell that is not strictly required to operate this tool, though it is brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a dead, parameterless tool, the description conveys everything an agent needs: stop, here is why, go here instead. Minor omission is whether invocation errors or silently no-ops, but 410 Gone effectively covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero parameters, so there is nothing for the description to disambiguate; the baseline applies. It could have stated that it takes no input, but no meaningful gap exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the concrete verb and resource ('deactivate an editor via the aibtc.news API') and immediately front-loads its deprecation status, so an agent knows both what it was and that it is unusable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'do not use' instruction plus a named replacement ('use legion_status instead (start with legion_status)') and a secondary pointer to earning_opportunities. This is exactly the when-not-to-use plus alternative guidance the dimension rewards.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_editor_check_earningsA
⛔ DEPRECATED — do not use. This tool used to check editor earnings via the aibtc.news API, which has been shut down (410 Gone). aibtc.news now runs on on-chain governance: use legion_my_position instead (start with legion_status).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so: it discloses that the upstream API is shut down and returns 410 Gone, so the agent knows any call will fail. It also explains the migration (aibtc.news now runs on on-chain governance).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the blocking warning and symbol, followed by the reason and the replacement in one tight sentence. The trailing tip is short and actionable rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a dead zero-parameter tool with no output schema, the definition gives everything an agent needs: deprecation status, failure cause, and where to redirect. Nothing is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is nothing to document and the description correctly does not invent parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific verb and resource ('check editor earnings'), immediately flags the tool as DEPRECATED, and names the exact replacement path. An agent can distinguish it from live siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'do not use' instruction, the reason (410 Gone / API shut down), and concrete alternatives: legion_my_position with legion_status first, plus earning_opportunities as a secondary tip. This is exactly the when-not-to-use/alternative guidance the dimension asks for.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_editor_file_reviewA
⛔ DEPRECATED — do not use. This tool used to file an editor review via the aibtc.news API, which has been shut down (410 Gone). aibtc.news now runs on on-chain governance: use legion_get_story, legion_vote instead (start with legion_status).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does so: it discloses the backend was shut down and returns 410 Gone, which is the critical behavioral fact preventing wasted calls. It loses a point only because the trailing 'Tip: call earning_opportunities' is unrelated to this tool and reads as noise rather than disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The deprecation warning and migration path are well front-loaded, but the appended 'Tip: call earning_opportunities to see how to put your assets to work' is unrelated to this tool and does not earn its place in the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deprecated, zero-parameter tool with no output schema, the description provides everything an agent needs: it must not be invoked, why, and which tools to use instead. Nothing actionable is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters (empty properties object, 100% coverage), so there is nothing for the description to clarify; the baseline for a 0-param tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource and the former action ('file an editor review via the aibtc.news API') and immediately marks it as non-functional, so an agent knows both what it was and that it must not be called. It is unambiguously differentiated from live siblings like news_editor_review_signal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States an explicit prohibition ('⛔ DEPRECATED — do not use') and names the concrete replacement path (legion_get_story, legion_vote, starting with legion_status). This is exactly the when-not/alternatives guidance the dimension rewards.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_editor_review_signalA
⛔ DEPRECATED — do not use. This tool used to review a signal as an editor via the aibtc.news API, which has been shut down (410 Gone). aibtc.news now runs on on-chain governance: use legion_get_story, legion_vote instead (start with legion_status).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description carries the load by disclosing the decisive behavior: the backend is gone and calls will fail with 410 Gone. It does not mention auth or rate-limit behavior, but for a dead tool that is largely moot.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The deprecation warning is front-loaded with the ⛔ emoji and the alternatives follow immediately. The trailing 'Tip: call earning_opportunities...' is unrelated to this tool and is wasted noise, though it does not obscure the core message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, deprecated, no-annotation, no-output-schema tool, the description supplies everything an agent needs: do not call it, it will 410, and exactly which sibling tools replace it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case per the rubric. The description correctly implies no input is needed and nothing is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource (review a signal as an editor), names the backend (aibtc.news API), and immediately marks the tool as deprecated with a hard prohibition. An agent can tell at a glance what it did and that it must not use it, without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-not-to-use ('⛔ DEPRECATED — do not use'), why (API shut down, 410 Gone), and concrete alternatives with an entry point ('use legion_get_story, legion_vote instead (start with legion_status)'). No inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_file_correctionA
⛔ DEPRECATED — do not use. This tool used to file a correction via the aibtc.news API, which has been shut down (410 Gone). aibtc.news now runs on on-chain governance: use legion_vote instead (start with legion_status).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so: it discloses the failure mode (410 Gone, backend shut down) and explains the architectural reason (migration to on-chain governance). This is exactly the runtime behavior an agent needs to avoid a wasted, guaranteed-failing call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The deprecation warning is front-loaded with a visual marker, followed by cause and then the redirect, which is the right order. The trailing 'Tip: call earning_opportunities' is unrelated to filing corrections and is the one sentence that does not earn its place in this definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter deprecated stub with no output schema, the description covers everything relevant: status, cause, failure code, and successor tools. Nothing an agent needs in order to make the right call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero parameters (empty object, 100% coverage), so there is nothing to document and the baseline is 4. The description does not need to add parameter meaning, and its silence is consistent with the fact that the tool takes no input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact former behavior (filing a correction via the aibtc.news API) and immediately qualifies it with 'DEPRECATED — do not use', so there is no ambiguity about the tool's current status. It also names the replacement (legion_vote) and its entry point (legion_status), which distinguishes it from every news_* sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when not to use it ('⛔ DEPRECATED — do not use') and gives a concrete substitute path: legion_vote, starting with legion_status. An agent reading this knows exactly what to do instead of calling this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_file_signalA
⛔ DEPRECATED — do not use. This tool used to file a signal via the aibtc.news API, which has been shut down (410 Gone). aibtc.news now runs on on-chain governance: use legion_inscribe_story, legion_inscribe_reveal, legion_propose_story instead (start with legion_status).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so thoroughly: it discloses deprecation, the specific 410 Gone failure, API shutdown, and successor tools. An agent knows exactly why and how not to invoke it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The deprecation warning is front-loaded with a visual marker, followed by a concise explanation, migration path, and a relevant earning hint. Every sentence serves either to prevent misuse or redirect the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deprecated, parameterless tool with no output schema, the description provides everything an agent needs: full deprecation rationale, replacement tools, and a starting point. Nothing required for correct behavior is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty, so parameter semantics are not a meaningful concern. The description does not add parameter details, which is appropriate, but baseline 4 reflects that no parameter explanation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description immediately states the tool is deprecated and no longer usable, then explains it used to file signals via the now-defunct aibtc.news API. It also names the exact replacement tools, making its purpose and status unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'do not use' and provides a concrete migration path: use legion_inscribe_story, legion_inscribe_reveal, or legion_propose_story, starting with legion_status. This is unambiguous when-not-to-use guidance with named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_front_pageA
⛔ DEPRECATED — do not use. This tool used to read the compiled daily brief via the aibtc.news API, which has been shut down (410 Gone). aibtc.news now runs on on-chain governance: use legion_list_stories, legion_get_story instead (start with legion_status).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the critical behavioral trait: the underlying API has been shut down and returns 410 Gone, meaning the tool is non-functional. This is precisely the kind of operational context an agent needs to avoid a failed call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The message is front-loaded with the deprecation warning and is appropriately brief. The final tip about earning_opportunities is somewhat tangential to this tool's purpose, slightly diluting focus, but it does not obscure the core instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's deprecated status, zero parameters, lack of output schema, and absence of annotations, the description provides everything an agent needs: the reason it is unusable, the exact alternatives to use, and a recommended starting point. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so parameter semantics are not applicable; the schema coverage is 100% and no parameters exist to describe. Baseline for zero params is 4, and the description correctly does not invent parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states what the tool used to do (read the compiled daily brief via the aibtc.news API) and immediately signals its current status (deprecated, API shut down with 410 Gone). It also names the replacement siblings (legion_list_stories, legion_get_story) and the starting point (legion_status), so an agent can distinguish it from all other tools at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The guidance is unambiguous: '⛔ DEPRECATED — do not use' plus a clear redirect to legion_list_stories and legion_get_story, with a specific entry point (start with legion_status). No inference is required; the agent knows exactly when not to use this tool and what to use instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_leaderboardA
⛔ DEPRECATED — do not use. This tool used to rank correspondents via the aibtc.news API, which has been shut down (410 Gone). aibtc.news now runs on on-chain governance: use legion_status, legion_list_stories instead (start with legion_status).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses the failure mode (API shut down, returns 410 Gone), which is the single most important behavioral trait for a dead tool. It goes beyond 'deprecated' to explain the concrete error an agent would hit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the stop signal before any explanation, which is correct ordering. The trailing 'earning_opportunities' tip is unrelated to this tool's decision and is the one sentence that does not strictly earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param deprecated stub with no annotations or output schema, this is complete: status, reason, replacement tools, and a recommended starting call. Nothing an agent needs in order to route correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, which sets the baseline at 4. No parameter context is needed or offered, and the deprecation notice makes parameter semantics moot.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States exactly what the tool used to do (rank correspondents via the aibtc.news API) and immediately flags that it is dead and why (410 Gone). An agent can tell instantly what this tool is and that it must not be selected.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-not-to-use ('⛔ DEPRECATED — do not use') plus named alternatives (legion_status, legion_list_stories) and an ordered starting point ('start with legion_status'). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_list_beatsA
⛔ DEPRECATED — do not use. This tool used to list beats via the aibtc.news API, which has been shut down (410 Gone). aibtc.news now runs on on-chain governance: use legion_status instead (start with legion_status).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well: it discloses the upstream API is shut down and returns 410 Gone, which tells the agent a call will fail rather than succeed. It stops short of saying whether the tool still throws an error or returns a stub response, which would fully close the loop.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The deprecation notice is front-loaded with a clear marker, and the redirect to legion_status follows immediately. The trailing 'Tip' about earning_opportunities is unrelated promotional content that does not help an agent decide anything about this tool, so the description is not fully waste-free.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, deprecated, no-output-schema tool, the description gives everything needed to avoid a wrong call and find the successor. The only residual gap is the exact runtime behavior if invoked anyway (hard error vs. no-op).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify beyond the empty schema (baseline 4). It correctly adds no parameter claims that would need reconciling with the empty input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states precisely what the tool used to do (list beats via the aibtc.news API) and that it is now dead, which is the only purpose information an agent needs. It does not have to distinguish itself positively from siblings because it explicitly routes away from itself to legion_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'do not use' instruction plus a named replacement ('use legion_status instead (start with legion_status)'), including the recommended entry point. There is no ambiguity about when to use this versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_list_editorsA
⛔ DEPRECATED — do not use. This tool used to list editors via the aibtc.news API, which has been shut down (410 Gone). aibtc.news now runs on on-chain governance: use legion_status instead (start with legion_status).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the burden, and it does disclose the critical behavior: calls would fail with 410 Gone because the backing API is shut down. That is exactly the operational warning an agent needs, though it does not mention whether the tool errors or returns a stub payload.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The deprecation warning and replacement are front-loaded in the first two clauses, which is ideal. The trailing 'Tip' about earning_opportunities is unrelated to this tool and adds a small amount of noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter deprecated stub with no output schema, the description covers everything an agent needs: don't call it, here's why, here's the replacement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero parameters, which is the baseline-4 case; there is nothing for the description to disambiguate. It correctly implies no inputs are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list editors) and immediately marks it as DEPRECATED, plus names the concrete reason (aibtc.news API shut down, 410 Gone) and the successor tool. An agent can tell instantly this is a dead endpoint and what replaced it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-NOT-to-use ('do not use') and an explicit alternative ('use legion_status instead, start with legion_status'), matching a real sibling in the tool list. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_list_signalsA
⛔ DEPRECATED — do not use. This tool used to browse the signal feed via the aibtc.news API, which has been shut down (410 Gone). aibtc.news now runs on on-chain governance: use legion_list_stories instead (start with legion_status).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does disclose the key behavioral fact an agent needs: calls would fail because the upstream API returns 410 Gone and the product moved to on-chain governance. It stops short of saying whether the tool now errors outright or returns empty results, which would be the final detail worth having.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the blocking warning symbol and 'DEPRECATED — do not use', so the critical information cannot be missed, followed by reason and migration path. The trailing `earning_opportunities` tip is unrelated to this tool's subject and is the only sentence that does not earn its place here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema, deprecated tool, the description covers everything needed: status, cause, and where to go instead. No further detail would change an agent's decision.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify and the baseline of 4 applies. The absence of parameters is consistent with a deprecated, non-functional listing endpoint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States exactly what the tool did (browse the signal feed via the aibtc.news API) and its current status (deprecated, backed by an endpoint returning 410 Gone). It also names the replacement sibling, legion_list_stories, so an agent can disambiguate it from the many other news_* tools without inspecting the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit and unambiguous: 'do not use', plus the reason (API shut down) and two concrete alternatives with an entry-point ordering (start with legion_status, then legion_list_stories). This is textbook when-not-to-use guidance with routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_publisher_compile_briefA
⛔ DEPRECATED — do not use. This tool used to compile the daily brief via the aibtc.news API, which has been shut down (410 Gone). aibtc.news now runs on on-chain governance: use legion_conclude instead (start with legion_status).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose the crucial trait: the backing API is shut down and would return 410 Gone. It stops short of saying what an actual invocation returns (handler-level error vs. success-shaped stub), which is the only remaining unknown.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The deprecation warning is front-loaded with a visual marker, and the replacement path follows immediately. The trailing 'Tip' about earning_opportunities is only loosely related, but it is a single short sentence and plausibly useful routing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deprecated, zero-parameter tool with no output schema, everything an agent needs is present: deprecation state, cause, replacement, and a fallback suggestion. No ambiguity about whether to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the baseline applies; nothing about parameters needs explaining and the description correctly implies a no-argument call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States exactly what the tool did (compile the daily brief via the aibtc.news API) and its current status (deprecated, backend returns 410 Gone). An agent immediately understands this is a dead stub and what replaced it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-not-to-use (⛔ do not use) plus a concrete alternative and even an entry sequence: legion_conclude, starting with legion_status. No inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_publisher_set_beat_configA
⛔ DEPRECATED — do not use. This tool used to configure a beat via the aibtc.news API, which has been shut down (410 Gone). aibtc.news now runs on on-chain governance: use legion_status instead (start with legion_status).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses that the underlying API is retired, that calls return 410 Gone, and that the domain has migrated to on-chain governance. That is precisely the behavioral fact an agent needs to avoid a wasted call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the deprecation marker, followed by the reason and the replacement in two tight sentences. The closing tip about earning_opportunities is only loosely related to this tool and is the one element that does not strictly earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a retired, zero-parameter tool with no output schema, everything an agent needs is present: status, cause, and the correct next tool. Nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. There is nothing for the description to add regarding inputs, and it correctly does not attempt to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool used to do (configure a beat via the aibtc.news API) and immediately establishes its current status as non-functional (API shut down, 410 Gone). It also names the replacement, legion_status, so the agent can distinguish this tool from its live siblings without further inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-not-to-use ("⛔ DEPRECATED — do not use") plus a named alternative and a starting point ("start with legion_status"). No inference required; the routing instruction is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_record_editor_payoutA
⛔ DEPRECATED — do not use. This tool used to record an editor payout via the aibtc.news API, which has been shut down (410 Gone). aibtc.news now runs on on-chain governance: use legion_conclude instead (start with legion_status).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does so: it discloses that the backing API returns 410 Gone and that the domain has migrated to on-chain governance. It does not mention auth or rate limits, but for a dead endpoint that is irrelevant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the ⛔ marker and DEPRECATED, then reason, then redirect, which is the right order. The trailing tip pointing at earning_opportunities is unrelated to this tool and slightly dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deprecated zero-parameter tool with no annotations and no output schema, the description says everything required: don't call it, why not, and what to call instead. Nothing an agent needs is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema declares an empty object, so there is nothing to document. Baseline 4 applies since no parameter semantics are needed or missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first clause states the exact resource and action ('record an editor payout via the aibtc.news API') and immediately marks the tool as non-functional. An agent knows within one line that this is a retired tool, not a callable operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit prohibition ('do not use'), the reason (API shut down, 410 Gone), and two concrete alternatives in correct order: legion_conclude, starting with legion_status. This is exactly the routing an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_register_editorA
⛔ DEPRECATED — do not use. This tool used to register an editor via the aibtc.news API, which has been shut down (410 Gone). aibtc.news now runs on on-chain governance: use legion_contribute instead (start with legion_status).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden and does so well: it discloses that the API is shut down (410 Gone) and that the new system uses on-chain governance. This is exactly the behavioral context needed to prevent accidental invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The deprecation warning is front-loaded with a clear symbol, followed by concise reasons and alternatives. Every sentence adds value without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is deprecated, has an empty schema, and no annotations, the description provides all necessary information: why not to use it and what to use instead. It is complete for its purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description appropriately does not discuss parameters, as none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's former purpose (registering an editor via aibtc.news) and its deprecated status, explicitly naming replacement tools (legion_contribute, legion_status). An agent can unambiguously identify this as a deprecated tool and know where to go instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'do not use' and provides concrete alternatives with a suggested starting point (legion_status). This is a complete when/when-not guide, leaving no ambiguity about routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nonce_fill_gapA
Fill a nonce gap by sending a minimal STX transfer at the specified nonce.
LAST-RESORT recovery action. Each gap-fill is a real on-chain transaction with a real fee (~0.001-0.01 STX). Most gaps self-resolve within seconds as Stacks blocks are 3-5s. Only use this after confirming the gap persists via nonce_health.
When transactions are pending but a gap exists in the nonce sequence (e.g., nonces 5 and 7 are pending but 6 is missing), the Stacks mempool will not process nonces 7+ until 6 is filled. This tool fills the gap with a 1 micro-STX transfer to the PoX burn address.
Use nonce_health first to identify gaps, then call this tool for each missing nonce.
Requires the wallet to be unlocked. The fee is auto-estimated.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| nonce | Yes | The specific nonce to fill |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses that this is a real on-chain transaction, gives a concrete fee range (~0.001-0.01 STX), states the payload (1 micro-STX to the PoX burn address), and notes the wallet must be unlocked with fee auto-estimated. Cost, precondition and side effect are all covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The critical warning ('LAST-RESORT', cost, use nonce_health first) is front-loaded and each paragraph earns its place. The closing 'Tip: call earning_opportunities' is unrelated promotional content that dilutes an otherwise tight definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation tool with no annotations and no output schema, the description supplies everything needed: the failure mode it addresses, prerequisites (unlocked wallet), cost, and the recommended workflow. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is already documented as 'The specific nonce to fill'. The description adds only contextual framing (gaps are discovered via nonce_health) rather than new semantics such as how to derive the nonce value, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Fill a nonce gap by sending a minimal STX transfer') and explains the mempool mechanics that make the operation necessary. It is clearly distinguishable from nonce_health (diagnostic) and other transfer tools because it names the exact scenario — a missing nonce blocking higher nonces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly frames itself as a 'LAST-RESORT recovery action', warns that gaps usually self-resolve in seconds, and instructs the agent to confirm persistence via nonce_health first, then call once per missing nonce. This is exactly the when/when-not/alternative guidance the dimension rewards.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nonce_healA
Diagnose and heal the full nonce state for the active wallet in one shot.
Handles 90% of stuck-tx cases automatically:
Fetches current nonce state from Hiro API (gaps, mempool)
In dryRun mode: shows what would happen without broadcasting
In execute mode (dryRun=false):
Fills every gap with a 1 uSTX self-transfer to the PoX burn address
Optionally RBF-bumps the chain head (lowest non-gap pending tx) to kick off processing
RBF bump behavior:
Token-transfer txs: rebuilt at same nonce with fee * feeMultiplier and rebroadcast
Sponsored txs: skipped with explanation (sender cannot RBF without sponsor key)
Contract-call txs: skipped with manual RBF instructions
Always run nonce_health first to understand the current state. Requires wallet to be unlocked for execute mode (dryRun=false).
Returns:
address, dryRun flag, confirmedNonce
gapsFound: list of missing nonces
actions: per-action detail (fill_gap or bump_head) with txids, fees, status
warnings: informational notes
summary: human-readable description of what happened
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | If true (default), preview proposed actions without broadcasting. Set to false to execute. | |
| address | No | STX address to heal. Defaults to the active wallet address. | |
| bumpHead | No | Whether to RBF-bump the first real pending tx (chain head) after filling gaps. Default true. | |
| feeMultiplier | No | Fee multiplier for RBF bump (e.g. 1.5 = 50% higher fee). Minimum 1.1. Default 1.5. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and does so well. It discloses that execute mode broadcasts fill transactions, uses 1 uSTX self-transfers to the PoX burn address, RBF-bumps only token-transfer txs, skips sponsored and contract-call txs with explanations, and requires an unlocked wallet. It also explains the return shape and dry-run behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then structured with numbered execution modes and a clear RBF behavior section. It is somewhat long, and the final earning_opportunities tip is promotional rather than essential, but the operational content is well organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a mutation tool with no annotations and no output schema, the description is complete enough for correct invocation. It covers prerequisites, preview vs execute behavior, gap-filling mechanics, RBF edge cases, wallet unlock requirements, and the important fields returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all four parameters and the baseline would be 3. The description adds meaningful semantics beyond the schema by explaining that bumpHead targets the lowest non-gap pending tx, that feeMultiplier is applied to the RBF fee, and how dryRun controls preview versus execution.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: diagnose and heal the full nonce state for the active wallet in one shot. It distinguishes itself from nonce_health by instructing the agent to run that tool first, and from narrower tools by saying it handles both gap filling and RBF bumping. An agent can understand its role without opening sibling schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear usage context: always run nonce_health first, use dryRun to preview, and use execute mode only when dryRun=false with an unlocked wallet. It does not explicitly compare itself to nonce_fill_gap or recover_sponsor_nonce, so the guidance is strong but not fully exhaustive about alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nonce_healthA
Check the sender nonce health for the active wallet.
Compares the local nonce tracker state (persisted at ~/.aibtc/nonce-state.json) against the chain's view from Hiro API. Use this to diagnose:
Nonce conflicts (ConflictingNonceInMempool)
Stuck transaction queues
Gaps in the nonce sequence
Stale local tracker state
Returns:
local: lastUsedNonce, pending count, staleness
chain: possibleNextNonce, lastExecuted, mempool nonces, missing nonces
healthy: whether the nonce state looks good
issues: list of detected problems with recommendations
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | STX address to check. Defaults to the active wallet address. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the data sources (local nonce tracker at ~/.aibtc/nonce-state.json and Hiro API), the comparison performed, and a detailed breakdown of return fields (local, chain, healthy, issues). This is strong behavioral context, though it does not mention any prerequisites like wallet unlock status or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with front-loaded purpose, bulleted diagnostic scenarios, and a clear return breakdown. The final 'Tip' about earning_opportunities is tangential and slightly reduces conciseness, but overall the information is efficiently presented.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no output schema), the description provides thorough context: what it does, when to use it, data sources, and a detailed return field breakdown. It compensates well for the missing output schema, though it could mention wallet state prerequisites for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'address' is fully documented in the schema (100% coverage), including its default to the active wallet. The description adds little beyond the schema, merely implying that the active wallet is the default context. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check') and resource ('sender nonce health for the active wallet'), making the tool's purpose immediately clear. It does not explicitly differentiate this diagnostic tool from sibling repair tools like nonce_heal or nonce_fill_gap, leaving a small gap in sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this to diagnose:' followed by four concrete scenarios (nonce conflicts, stuck queues, gaps, stale state). It provides clear context for when to use the tool, but does not name alternatives or state when not to use it, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nostr_get_profileB
Get a Nostr profile (kind:0 metadata) for any public key. No wallet required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| relay | No | Single relay URL to query. Defaults to all DEFAULT_RELAYS. | |
| pubkey | Yes | Public key to look up (hex or npub bech32 format). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose that no wallet/auth is needed and that the payload is kind:0 metadata, but it says nothing about behavior when the pubkey has no profile, what happens if the specified relay is unreachable, or whether results from multiple default relays are merged.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is tight and front-loaded with the useful information. The second sentence ("Tip: call `earning_opportunities`...") does not earn its place — it is marketing noise that dilutes an otherwise clean two-line definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description should say more about what a returned profile contains (display name, about, picture, nip05?) and the not-found case. The core lookup semantics are covered, but an agent still cannot predict the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — both `pubkey` (hex or npub bech32) and `relay` (defaults to all DEFAULT_RELAYS) are documented in the schema. The description adds no formatting or fallback detail beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ("Get a Nostr profile") and adds the domain detail that it returns kind:0 metadata for any public key, which distinguishes it from nostr_set_profile (the write counterpart) and nostr_get_pubkey. It does not explicitly name those siblings, but the operation is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"No wallet required" is useful prerequisite context that tells the agent this read can be done without unlocked keys, which is real guidance. However, there is no explicit when-to-use vs nostr_set_profile / nostr_read_feed, and the trailing tip pointing at `earning_opportunities` is unrelated cross-promotion rather than guidance for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nostr_get_pubkeyA
Derive the Nostr public key from the active wallet. Uses the NIP-06 derivation path (m/44'/1237'/0'/0/0). Returns both hex pubkey and npub (bech32) formats. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses the NIP-06 derivation path, both hex and npub return formats, and the unlocked-wallet requirement. It stops short of explicitly saying the operation is read-only or describing error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is front-loaded and efficient. However, the appended tip about earning_opportunities is unrelated to selecting or invoking this tool and does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless read operation with no output schema or annotations, the description covers derivation path, output formats, and the wallet prerequisite. It is complete enough to invoke correctly, though explicit read-only confirmation would make it fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero input parameters, so there is no parameter semantics to explain. The baseline for a parameterless tool is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: derive the Nostr public key from the active wallet. It also names the derivation standard and return formats, making the operation unambiguous relative to sibling wallet and key tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the prerequisite that an unlocked wallet is required, which implies a wallet_unlock step. However, it gives no explicit when-to-use guidance versus siblings like taproot_get_pubkey or nostr_sign_event.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nostr_postB
Publish a short-text note (kind:1) to Nostr relays. Optionally include hashtag tags and specify target relays. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Comma-separated hashtags to include (e.g., 'bitcoin,nostr,aibtc'). Do not include the '#' prefix. | |
| relays | No | Relay URLs to publish to. Defaults to wss://relay.damus.io, wss://nos.lol. | |
| content | Yes | The note content to publish. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full load. It does disclose the wallet-unlock prerequisite and the fact that content goes out to relays, but it omits whether posts are public/irreversible, what happens on relay failure, and whether an event id is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core is two tight, front-loaded sentences. The appended 'Tip: call earning_opportunities' is promotional filler that does not help an agent invoke nostr_post, and it dilutes the operational statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations, so the description is the only source of behavioral context. It covers the prerequisite but says nothing about the publish result (event id, relay acceptance), which an agent would reasonably need for a write-to-network tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so tags format, relay defaults, and content are already documented in the schema. The description only echoes 'hashtag tags' and 'target relays' without adding format or behavior detail, so baseline 3 is right.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb plus resource plus protocol detail: 'Publish a short-text note (kind:1) to Nostr relays.' That is distinguishable from read-side siblings like nostr_read_feed and from nostr_sign_event, though the description never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one real precondition — 'Requires an unlocked wallet' — which tells the agent to check wallet state first. But there is no guidance on when to use this versus nostr_sign_event or nostr_set_profile, and the trailing 'Tip' about earning_opportunities is unrelated to invoking this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nostr_read_feedB
Read recent kind:1 notes from Nostr relays. Optionally filter by author pubkey. No wallet required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of notes to return (default: 20). | |
| relay | No | Single relay URL to query. Defaults to all DEFAULT_RELAYS. | |
| pubkey | No | Author public key (hex or npub) to filter by. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It does disclose the important fact that no wallet is required, which is real context, but says nothing about result ordering, pagination, or what happens when a relay is unreachable or returns nothing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are efficient and front-loaded. The trailing 'Tip' about earning_opportunities is unrelated to reading a Nostr feed and consumes space without helping the agent call this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-required-parameter read tool with full schema coverage and no output schema, the definition covers purpose, filtering, and authorization context. The main remaining gap is what shape the returned notes take, but that is a minor omission given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so limit, relay, and pubkey are already documented in the schema. The description's only reference is the pubkey filter, which the schema already covers in more detail; no added semantics beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Read) and a precise resource (recent kind:1 notes from Nostr relays), plus the optional pubkey filter. The kind:1 and relay framing distinguishes it implicitly from nostr_search_tags and nostr_get_profile, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It tells the agent the feed can be narrowed by author pubkey, which is a usable invocation hint. But there is no when-to-use / when-not guidance and no routing to alternatives like nostr_search_tags for tag-based discovery; the second paragraph is a promotional pointer, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nostr_relay_listA
List the configured default Nostr relay URLs. No wallet required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. "List" and "No wallet required" imply a safe read operation with no wallet dependency, but it does not explicitly state read-only behavior, side effects, or return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is concise and front-loaded with the essential purpose. The second sentence is an unrelated promotional tip about `earning_opportunities`, which does not help an agent decide whether or how to call this relay-listing tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only listing tool, the description is nearly complete: it says what is listed and notes that no wallet is required. Since there is no output schema, it could say more about the return format, but the complexity is low enough that this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics to explain. The baseline for zero-parameter tools is 4, and the description does not introduce confusing parameter-like claims.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "List the configured default Nostr relay URLs." The scope phrase "configured default" helps distinguish this from relay health or feed-reading siblings, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a useful usage constraint with "No wallet required," implying the tool is safe to call without wallet setup. However, it does not explain when to use this instead of related tools like `check_relay_health`, `nostr_read_feed`, or `nostr_get_profile`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nostr_search_tagsB
Search Nostr for kind:1 notes matching hashtags using NIP-12 #t filter. No wallet required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | Yes | Comma-separated hashtags to search for (e.g., 'bitcoin,nostr'). Do not include the '#' prefix. | |
| limit | No | Maximum number of notes to return (default: 20). | |
| relay | No | Single relay URL to query. Defaults to all DEFAULT_RELAYS. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral burden: it discloses the event kind, the NIP-12 filter semantics, and that no wallet/auth is needed, which is meaningful. It says nothing about read-only safety, result ordering, relay fallback behavior when some relays fail, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The lead sentence is tight and front-loaded, but the second 'Tip' line is promotional content unrelated to invoking this tool and does not earn its place in a tool definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations, so the description is the only source of operational context, and it omits what a returned note looks like and what happens if relays time out or return nothing. Adequate to call, not enough to predict results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so tags, limit, and relay are fully documented in structured fields (including the '#'-prefix exclusion). The description only adds that tags are expressed as a NIP-12 #t filter, which is marginal value above the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search Nostr for kind:1 notes matching hashtags') plus the mechanism (NIP-12 #t filter), so an agent knows exactly what it retrieves. It never names a sibling such as nostr_read_feed, so the boundary with feed reading is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'No wallet required' removes one blocking assumption, but there is no statement of when to choose this over nostr_read_feed or nostr_get_profile, and no exclusions. The trailing 'Tip' about earning_opportunities is cross-promotion, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nostr_set_profileA
Update the agent's Nostr profile (kind:0 metadata event). Only provided fields are updated; existing fields are preserved by fetching the current profile first. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Display name. | |
| about | No | Bio / about text. | |
| nip05 | No | NIP-05 identifier (e.g., user@example.com). | |
| banner | No | Header/cover image URL. Displayed above the profile picture in most Nostr clients (Primal, Snort, Damus). | |
| relays | No | Relay URLs to publish to. Defaults to wss://relay.damus.io, wss://nos.lol. | |
| picture | No | Profile picture URL. | |
| website | No | Website URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden well: it discloses the kind:0 event type, partial-update behavior, fetch-before-write preservation, and the unlocked-wallet requirement. It does not describe the success response, error behavior, or relay publishing confirmation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose, preservation behavior, and wallet prerequisite are front-loaded and concise. The trailing promotional tip about earning_opportunities is unrelated to invoking this tool and does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with seven optional parameters, no annotations, and no output schema, the description covers the essential invocation context: what is updated, how existing fields are preserved, and the wallet prerequisite. It leaves some gaps around return values and error behavior, but the schema covers the parameters fully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven optional fields, including relay defaults and URL formats. The description adds useful partial-update semantics but does not add parameter-level detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: updating the agent's Nostr profile, explicitly identified as a kind:0 metadata event. This distinguishes it from read-oriented siblings such as nostr_get_profile and generic signing tools such as nostr_sign_event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear that this is the tool for updating profile metadata and states the unlocked-wallet prerequisite. However, it does not explicitly compare against alternatives like nostr_get_profile or explain when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nostr_sign_eventA
Sign a Nostr event (NIP-01) using BIP-340 Schnorr. Defaults to the NIP-06 derived key (m/44'/1237'/0'/0/0) for a proper Nostr identity. Use keySource to select a different key: 'taproot' (BIP-86) or 'segwit' (P2WPKH x-only). Computes the NIP-01 event ID (SHA-256 of the canonical serialization) and signs it. Returns the complete signed event ready to publish to Nostr relays. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | Nostr event kind (e.g., 1 for short text note, 0 for metadata) | |
| tags | No | Optional array of tags (each tag is an array of strings). Defaults to []. | |
| content | Yes | Event content string | |
| keySource | No | Key to sign with. 'nostr' (default): NIP-06 derived key (m/44'/1237'/0'/0/0). 'taproot': BIP-86 Taproot internal key. 'segwit': SegWit/P2WPKH key (x-only, 32 bytes). | |
| created_at | No | Unix timestamp in seconds. Defaults to current time. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the whole burden and does reasonably well: it discloses the default derivation path, that the NIP-01 event ID is computed via SHA-256 of the canonical serialization, the return value (complete signed event), and the unlocked-wallet prerequisite. It omits whether anything is persisted, whether signing is repeatable for the same input, and any key-safety caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core is front-loaded and efficient, but the trailing 'Tip: call earning_opportunities to see how to put your assets to work' is unrelated promotional content that dilutes an otherwise tight definition and could misroute an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by saying it returns the complete signed event ready to publish. Combined with the stated derivation defaults and wallet prerequisite, an agent has enough to call it correctly; the exact returned field set is left to NIP-01 convention.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including kind, tags, content, keySource and created_at is already documented in the schema. The description restates the keySource default and derivation path rather than adding new meaning, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Sign a Nostr event (NIP-01) using BIP-340 Schnorr') and makes clear it only signs and returns an event 'ready to publish', implicitly distinguishing it from a publishing sibling like nostr_post. It never names a sibling explicitly, so the sign-vs-publish boundary must be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete selection guidance for keySource ('nostr' default, 'taproot' BIP-86, 'segwit' P2WPKH x-only) and states the prerequisite 'Requires an unlocked wallet'. It offers no explicit when-not or routing against the other signing siblings (schnorr_sign_digest, sip018_sign, nostr_post).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openrouter_integration_guideA
Get OpenRouter integration examples and code patterns for implementing AI features.
Use this tool when you need to add AI capabilities to any project. Returns:
Code examples for different environments (Node.js, Cloudflare Workers, browser)
API patterns and best practices
Model recommendations
Error handling patterns
This is a reference tool - use the returned code as a template for implementation.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| feature | No | Specific AI feature to implement | all |
| environment | No | Target environment for the integration | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden and does well by explicitly saying this is a reference tool and that returned code should be used as a template. It lists what the response includes, though it does not explicitly state that the tool is read-only or has no side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and appropriately sized, with a clear purpose followed by a useful return-value list. The final tip about earning_opportunities is tangential and somewhat weakens focus, but the overall structure remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete enough for a reference/guide tool: it explains the purpose, usage context, and the kinds of content returned, compensating for the absence of an output schema. It still leaves minor gaps around sibling-tool choice and whether the guide has any execution or side-effect behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage and documents both optional enum parameters, so the schema already explains feature and environment. The description only indirectly references environments and AI features, which meets the baseline for high schema coverage without adding substantial parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: getting OpenRouter integration examples and code patterns for implementing AI features. It clearly frames the tool as a reference resource, though it does not explicitly distinguish itself from the sibling openrouter_models tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage context: use this when you need to add AI capabilities to any project. It also labels the tool as a reference tool for templates, but it does not state when not to use it or name alternatives such as openrouter_models or scaffold_x402_ai_endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openrouter_modelsB
Get list of popular OpenRouter models with capabilities and context lengths.
Use this to choose the right model for your use case. For latest pricing, check openrouter.ai/models
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by model category | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that results include capabilities and context lengths and that pricing data is stale (redirect to openrouter.ai/models), which is real behavioral context. It does not state how many models are returned, ordering, or whether listing is read-only/requires no auth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are front-loaded and tight. The trailing 'Tip: call earning_opportunities...' is unrelated promotional cross-sell that does not help an agent invoke this tool and dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, argument-light read tool with no output schema, the description covers purpose and returned fields adequately. It omits scale/format of the response and the sibling relationship, which would be needed for an agent to decide between this and openrouter_integration_guide.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is a self-describing enum with a default, so the schema does the work. The description adds nothing about what the categories mean (e.g. what qualifies as 'fast' vs 'quality'), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('Get list of popular OpenRouter models') and states the payload content (capabilities and context lengths), so an agent knows exactly what comes back. It does not distinguish itself from the related sibling openrouter_integration_guide, leaving that separation implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this to choose the right model for your use case' gives one intended context, and the pricing pointer implies when NOT to rely on this tool. However, it never names openrouter_integration_guide as the companion tool nor states any exclusion or prerequisite, so routing is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ordinals_buyA
Buy a listed inscription from Magic Eden.
Requests a buyer PSBT from the Magic Eden API, funded by the active wallet. Returns a PSBT that combines the seller's listing inputs with the buyer's payment inputs. The buyer signs the PSBT then broadcasts it to complete the purchase.
Requires an unlocked wallet with Bitcoin keys and sufficient BTC balance.
Steps:
Call ordinals_get_listings to find an inscription and its price
Call ordinals_buy with the inscriptionId and desired buyer address
Sign the returned PSBT using psbt_sign
Broadcast using psbt_broadcast
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| feeRate | No | Fee rate in sat/vB (optional, uses network default if omitted) | |
| buyerAddress | No | BTC address to receive the inscription (defaults to wallet's Taproot address) | |
| inscriptionId | Yes | Inscription ID to purchase, e.g. abc123...i0 | |
| buyerPaymentAddress | No | BTC address to fund the purchase (defaults to wallet's SegWit address) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the upstream dependency (Magic Eden API), that the call only builds and returns a PSBT rather than executing the purchase, that the buyer must sign and broadcast separately, and the wallet/balance prerequisites. It omits risk context such as what happens if the listing is taken or delisted, and whether fees beyond the feeRate are charged.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose, return behavior, prerequisites, and an ordered workflow are front-loaded and each earns its place. The trailing 'Tip: call earning_opportunities to see how to put your assets to work' is an unrelated promotional line that does not help invoke this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an unannotated, no-output-schema mutation-adjacent tool, the description covers what is returned (a PSBT combining seller listing inputs with buyer payment inputs), the signing/broadcast path, and funding prerequisites. Network expectations and failure modes (listing no longer available, insufficient funds) are the main remaining gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter (inscriptionId, buyerAddress, buyerPaymentAddress, feeRate) has its own documented default/format. The description only mentions inscriptionId and a 'desired buyer address', adding essentially nothing beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with venue: 'Buy a listed inscription from Magic Eden.' An agent can distinguish it from psbt_create_ordinal_buy, ordinals_p2p_create_offer, and ordinals_list_for_sale without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit 4-step workflow naming the prerequisite tool (ordinals_get_listings) and the two follow-up tools (psbt_sign, psbt_broadcast), plus the condition 'requires an unlocked wallet with Bitcoin keys and sufficient BTC balance'. It never explicitly contrasts with the near-sibling psbt_create_ordinal_buy, so the alternative-selection guidance is incomplete rather than absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ordinals_cancel_listingA
Cancel an active Magic Eden listing for an inscription.
Requests a cancellation PSBT from Magic Eden. The seller signs the PSBT to invalidate the active listing and reclaim the inscription UTXO. No BTC fee is required beyond the miner fee for the cancellation transaction itself.
Requires an unlocked wallet with Bitcoin (Taproot) keys.
Steps:
Call this tool with the inscriptionId you want to delist
Sign the returned PSBT using psbt_sign
Broadcast using psbt_broadcast to finalize the cancellation
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| inscriptionId | Yes | Inscription ID of the active listing to cancel, e.g. abc123...i0 | |
| sellerAddress | No | BTC Taproot address that owns the listing (defaults to wallet's Taproot address) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it explains that a cancellation PSBT is requested, that the seller must sign it to invalidate the listing and reclaim the UTXO, that no extra BTC fee is required beyond the miner fee, and that an unlocked Taproot wallet is needed. It omits error conditions (e.g. listing already sold) but the core behavior is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence, then behavior, then a numbered workflow. The trailing 'Tip: call earning_opportunities' is tangential to the task but brief and clearly separated, so it doesn't obscure the core instructions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation tool with no annotations and no output schema, the description covers prerequisites, what the call produces (a PSBT), and the downstream signing/broadcast path. Only failure modes and the exact return shape remain unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented, including the sellerAddress default. The description only restates that inscriptionId identifies the listing to delist and adds no format or edge-case detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (cancel an active Magic Eden listing for an inscription), naming the marketplace and the asset type. An agent can distinguish it from siblings such as ordinals_list_for_sale and ordinals_p2p_cancel without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit three-step workflow and names the required follow-up tools (psbt_sign, psbt_broadcast) plus the precondition of an unlocked Taproot wallet. It doesn't state when to prefer an alternative cancellation path (e.g. ordinals_p2p_cancel) or what to do if no active listing exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ordinals_get_listingsA
Browse ordinals/inscriptions listed for sale on Magic Eden.
Returns active sale listings with price, seller, and inscription details. Supports filtering by collection symbol and price range. No wallet required.
Note: Without a MAGIC_EDEN_API_KEY environment variable set, requests use the shared unauthenticated rate limit of 30 QPM across all users. Set MAGIC_EDEN_API_KEY to use an authenticated rate limit.
Examples:
Browse all listings: ordinals_get_listings {}
Filter by collection: ordinals_get_listings { collection: "nodemonkes" }
Price range: ordinals_get_listings { minPriceSats: 100000, maxPriceSats: 1000000 }
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results to return (default 20, max 100) | |
| offset | No | Pagination offset (default 0) | |
| sortBy | No | Sort order: priceAsc, priceDesc, or recentlyListed (default) | recentlyListed |
| collection | No | Magic Eden collection symbol to filter by (e.g. 'nodemonkes', 'bitcoin-puppets') | |
| maxPriceSats | No | Maximum listing price in satoshis | |
| minPriceSats | No | Minimum listing price in satoshis |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the return fields (price, seller, inscription details), that it is a read/browse operation with no wallet needed, and quantifies the rate limit (30 QPM shared unauthenticated) with the env var to lift it. Pagination semantics are only implied via parameters, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence, then return/behavior, then a clearly delineated rate-limit note and examples. Every section earns its place except the trailing 'call earning_opportunities' tip, which reads as cross-promotion rather than tool guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only browse tool with no output schema, the description covers return fields, filters, auth requirements, and rate limits. An agent has everything needed to call it correctly; only explicit sibling disambiguation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit, offset, sortBy, collection, and price bounds are all already documented. The description adds conceptual context ('filtering by collection symbol and price range') and worked examples, but nothing beyond the schema for sortBy/limit/offset. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Browse') and resource ('ordinals/inscriptions listed for sale on Magic Eden'), so the agent knows it's a marketplace listing feed rather than a P2P trade list. It does not explicitly differentiate itself from near-siblings like ordinals_p2p_list_trades or stacks_market_list, leaving some ambiguity for an agent scanning the tool list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete examples for each filter mode (browse all, filter by collection, price range) plus a useful 'No wallet required' precondition. It never states when to prefer this over ordinals_p2p_list_trades or stacks_market_list, so exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ordinals_list_for_saleA
List a wallet inscription for sale on Magic Eden.
Requests a PSBT-based listing transaction from the Magic Eden API. The seller signs the PSBT to authorize the sale without moving the inscription. Requires an unlocked wallet with Bitcoin (Taproot) keys.
Steps:
Call this tool with inscriptionId and priceSats
Sign the returned PSBT using psbt_sign
Submit the signed PSBT back to Magic Eden to complete the listing
Note: The inscription must be in the wallet's Taproot (P2TR) address.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| priceSats | Yes | Listing price in satoshis | |
| inscriptionId | Yes | Inscription ID in txid+index format, e.g. abc123...i0 | |
| receiverAddress | No | BTC address to receive payment (defaults to wallet's Taproot address) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it explains that a PSBT listing transaction is requested, the seller signs without moving the inscription, and an unlocked Taproot wallet is required. It does not detail error conditions or fee implications, but it substantially clarifies the behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, then gives prerequisites and a clean numbered workflow. The final 'earning_opportunities' tip is somewhat tangential, but the overall structure remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-step PSBT listing tool with no annotations or output schema, the description covers prerequisites, the listing flow, and the need to sign and submit the returned PSBT. It could be more complete by explicitly naming the ordinals_list_for_sale_submit sibling for the final submission step.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter meanings are already documented. The description repeats inscriptionId and priceSats and adds a Taproot-address note, but it does not add further semantic detail for the optional receiverAddress beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List a wallet inscription for sale on Magic Eden.' It clearly distinguishes initiation of a listing from sibling operations such as buying, cancelling, or retrieving listings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear usage context: the wallet must be unlocked with Bitcoin Taproot keys, the inscription must be in the wallet's P2TR address, and the flow follows explicit steps. It does not explicitly name when not to use it or name the submit sibling as the alternative next step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ordinals_list_for_sale_submitA
Submit a signed listing PSBT to Magic Eden to finalize an ordinal listing.
Call this after signing the PSBT returned by ordinals_list_for_sale. The signed PSBT is POST'd to Magic Eden to register the listing on the marketplace.
Steps:
Call ordinals_list_for_sale to get a listing PSBT
Sign the PSBT using psbt_sign
Call this tool with the signed PSBT to publish the listing
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| signedPsbt | Yes | The signed PSBT in base64 format returned by psbt_sign | |
| inscriptionId | Yes | The inscription ID being listed |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose the important side effect (the PSBT is POST'd to Magic Eden and the listing is registered on the marketplace), which is useful beyond the name. It does not state what the call returns, whether publishing costs fees, how to undo it (ordinals_cancel_listing exists but is not referenced), or what happens on rejection.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-line purpose followed by the prerequisite, then a compact step list — well structured and easy to scan. The closing 'Tip' promoting earning_opportunities is tangential to the task and is the one sentence that does not fully earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter write tool with no output schema, the critical context — prerequisite signing step, external destination, ordering relative to siblings — is all present. The only gap is the absence of any statement about the result of a successful publish or failure modes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are documented in-schema, so the baseline of 3 applies. The description only restates 'signed PSBT' and does not add format constraints, provenance requirements, or validity windows beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (submit/finalize) on a specific resource (signed listing PSBT for an ordinal listing) and immediately disambiguates from the sibling ordinals_list_for_sale by making clear this is the second, publishing step. An agent can distinguish it from ordinals_list_for_sale, ordinals_cancel_listing and psbt_sign without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use ('call this after signing the PSBT returned by ordinals_list_for_sale') plus a numbered three-step workflow naming the alternative tools (ordinals_list_for_sale, psbt_sign). Nothing about ordering is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ordinals_p2p_agentsA
List active agents registered on the ordinals P2P trade ledger.
Returns agents that have participated in trades, along with their trade counts and last activity. Useful for discovering counterparties.
No wallet required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results per page (default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose the key operational fact that no wallet is required and outlines the response contents. It does not mention pagination behavior, rate limits, or that results are bounded by the limit parameter, which are relevant for a listing call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence, with return contents and the no-wallet note following efficiently. The trailing tip is slightly promotional but short and does not obscure the main content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only single-parameter tool with no output schema and no annotations, the description covers purpose, return fields, and the absence of wallet/auth requirements. The only meaningful gap is pagination guidance for the limit parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (limit) and the schema description coverage is 100%, so the schema already explains 'Results per page (default 50)'. The description adds nothing about paging through results, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: list active agents on the ordinals P2P trade ledger, and clarifies the returned fields (trade counts, last activity). It is distinguishable from siblings like ordinals_p2p_list_trades and ordinals_p2p_my_trades by operating on agents rather than trades, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for discovering counterparties' implies the use case but gives no when-not conditions or explicit alternatives among the many ordinals_p2p_* and reputation_* tools. The 'Tip' points to earning_opportunities, which is a different workflow rather than a substitute for this call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ordinals_p2p_cancelA
Cancel an open offer or counter on the trade ledger.
Only the parties involved in a trade may cancel it. The active wallet signs the cancellation with BIP-137 to prove authorization.
Requires an unlocked wallet with Bitcoin keys.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| metadata | No | Optional reason or metadata | |
| inscription_id | Yes | Inscription ID (must match the trade being cancelled) | |
| parent_trade_id | Yes | Trade ID to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does a good job disclosing authorization behavior: party-only cancellation and BIP-137 signing by the active wallet. It does not explain irreversibility, broadcast behavior, fees, or post-cancellation state, so it falls short of full behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The action is front-loaded, followed by concise authorization and wallet requirements. The closing tip to call earning_opportunities is unrelated to cancellation and is the only sentence that does not clearly earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a wallet-signing mutation with no annotations and no output schema, the description usefully covers eligibility, signing method, and wallet state. It is still missing important context such as consequences of cancellation, expected result, and failure modes, so it is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parent_trade_id, inscription_id, and metadata are already documented in the schema. The description adds context that the target is an open offer or counter, but it does not add parameter-level semantics beyond that baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: it cancels an open offer or counter on the trade ledger. That is enough to distinguish it from sibling operations such as create_offer, counter, get_trade, and list_trades.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states eligibility and prerequisites: only parties involved in the trade may cancel, and an unlocked wallet with Bitcoin keys is required. It does not explicitly name alternatives or exclusions, but the trade-ledger scope distinguishes it from marketplace listing cancellation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ordinals_p2p_counterA
Counter an existing offer with a new proposed price.
Submits a counter-offer linked to a parent trade. The active wallet signs the counter with BIP-137 to prove identity. Either party in a trade may counter.
Requires an unlocked wallet with Bitcoin keys.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| metadata | No | Optional freeform metadata | |
| amount_sats | Yes | Counter-offer price in satoshis | |
| inscription_id | Yes | Inscription ID (must match the parent trade) | |
| parent_trade_id | Yes | ID of the trade being countered |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the BIP-137 signature, wallet unlock prerequisite, and that either trade party may counter, but it omits mutation side effects such as whether funds are escrowed, how the parent trade is affected, or whether the counter can be revoked.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and mostly efficient, with the core action and prerequisites stated clearly. The trailing 'Tip: call earning_opportunities...' is tangential to countering an offer and slightly dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers the core invocation prerequisites, signing method, and party eligibility, which is useful for a mutation tool with no annotations. However, it leaves gaps around transaction consequences and response behavior, making it adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds light semantic framing ('new proposed price', 'parent trade') but does not provide meaningful additional parameter detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Counter an existing offer with a new proposed price' and clarifies it is linked to a parent trade. This clearly distinguishes it from siblings such as ordinals_p2p_create_offer, ordinals_p2p_cancel, and ordinals_p2p_get_trade.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: either party in a trade may counter, and the operation requires an unlocked wallet with Bitcoin keys. It does not explicitly name alternatives or when-not-to-use cases, so it is strong but not fully exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ordinals_p2p_create_offerA
List an inscription for sale on the P2P trade ledger.
Creates a new offer entry authenticated with a BIP-137 signature from the active wallet's BTC address. The inscription must be in the wallet or otherwise owned by the signing address for the trade to be verifiable by counterparties.
Requires an unlocked wallet with Bitcoin keys.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| metadata | No | Optional freeform metadata (e.g. description, terms) | |
| to_agent | No | Target buyer BTC address (omit for public listing) | |
| inscription_id | Yes | Inscription ID in txid+index format, e.g. abc123...i0 | |
| asking_price_sats | No | Asking price in satoshis (omit for open price negotiation) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does useful work: it discloses BIP-137 signature authentication, the ownership-verification requirement, and the unlocked-wallet dependency. It's silent, however, on side effects such as whether the inscription is escrowed or locked, fees, and how the offer is later cancelled, which matters for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and prerequisites are front-loaded and useful, but the middle sentence is verbose and the trailing 'Tip' about earning_opportunities is unrelated advertising that doesn't help an agent call this tool. Minor trimming would improve it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Prerequisites and auth are covered, but for a mutation tool with no annotations and no output schema, the description leaves gaps: what the offer looks like after creation, whether the inscription is committed, any cost, and what is returned. An agent gets enough to attempt the call but not to reason about consequences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all four parameters including the optional to_agent, asking_price_sats, and metadata fields. The description adds no parameter-level detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'List an inscription for sale on the P2P trade ledger', which situates it in the ordinals_p2p domain and distinguishes it from generic listing tools like ordinals_list_for_sale. It doesn't explicitly name those siblings, keeping it just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Prerequisites are stated (inscription owned by signing address, unlocked wallet with BTC keys), which implies when the tool is applicable, but there's no explicit when-not guidance or routing to alternatives like ordinals_list_for_sale_submit or ordinals_p2p_cancel. Usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ordinals_p2p_get_tradeA
Fetch full details for a single trade from the ordinals P2P ledger.
Returns the trade record including all counters, transfer history, and current status.
No wallet required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| trade_id | Yes | Numeric trade ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It usefully discloses the return contents (counters, transfer history, status) and that no wallet is needed, but never explicitly states this is a pure read-only operation or what happens when the trade_id does not exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and return contents in two tight sentences. The trailing 'earning_opportunities' cross-promotion is tangential to the task and slightly dilutes focus, keeping it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema, the description explains return contents and the no-wallet precondition, which is sufficient. Minor gaps around not-found behavior and read-only confirmation prevent a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single trade_id parameter is documented in the schema as 'Numeric trade ID'. The description adds no format, range, or sourcing detail beyond 'single trade', so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Fetch full details') and resource ('single trade from the ordinals P2P ledger'), and the singular emphasis distinguishes it from list_trades/my_trades siblings. It stops short of naming an alternative explicitly, so a 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'No wallet required' gives a useful precondition (no auth needed) and the singular scope implies use when you have one trade_id. However there is no explicit statement of when to prefer this over ordinals_p2p_list_trades or my_trades, nor any failure/exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ordinals_p2p_list_tradesA
Browse the public ordinals P2P trade ledger at ledger.drx4.xyz.
Returns a paginated list of trades with optional filters. Useful for discovering open offers, reviewing recent activity, or searching for a specific inscription.
No wallet required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by trade type | |
| agent | No | Filter by agent BTC address | |
| limit | No | Results per page (default 50) | |
| offset | No | Pagination offset (default 0) | |
| status | No | Filter by trade status | |
| inscription_id | No | Filter by inscription ID (txid + 'i' + index, e.g. abc123i0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does add useful behavior context by stating that the ledger is public and no wallet is required. However, it does not describe rate limits, response fields, sort order, or pagination edge cases, leaving meaningful gaps for a public list endpoint with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence and the returning/pagination behavior follows immediately. The closing tip about earning_opportunities is slightly tangential but not enough to undermine an otherwise efficient description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter paginated list endpoint without an output schema or annotations, the description is adequate but incomplete. It omits return shape, ordering, and practical pagination behavior, which an agent would need for confident use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented in the schema. The description only notes that filters are optional and hints at inscription search, adding little beyond the structured parameter definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: it lists trades from the public ordinals P2P ledger. The 'public' and 'no wallet required' phrasing implicitly distinguishes it from wallet-scoped siblings like ordinals_p2p_my_trades, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear use cases: discovering open offers, reviewing recent activity, or searching by inscription. It lacks explicit when-not guidance or direct naming of sibling tools, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ordinals_p2p_my_tradesA
List all trades involving the active wallet's BTC address.
Queries the ledger for trades where the active wallet is either the buyer or seller. Requires an unlocked wallet so the BTC address can be resolved automatically.
You can optionally filter by status.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results per page (default 50) | |
| offset | No | Pagination offset (default 0) | |
| status | No | Filter by trade status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that this is a ledger query and requires an unlocked wallet so the BTC address resolves, but it does not cover pagination behavior, failure modes when locked, or return characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the core scope in the first sentence. The final tip about `earning_opportunities` is tangential to invoking this tool, but the overall text remains compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with fully documented schema parameters and no output schema, the description is mostly complete: it identifies scope, auth prerequisite, and filtering. It could say more about pagination or expected result shape, but the main invocation requirements are covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents `limit`, `offset`, and `status`. The description only repeats that status filtering is optional and adds no syntax or meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: list trades involving the active wallet's BTC address, where the wallet is buyer or seller. This clearly scopes it to the caller's wallet, though it does not explicitly name the sibling `ordinals_p2p_list_trades` as the non-wallet-scoped alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a prerequisite (unlocked wallet) and mentions optional status filtering, which implies when the tool is usable. However, it does not explicitly compare this tool with sibling alternatives such as `ordinals_p2p_list_trades` or `ordinals_p2p_get_trade`, so selection guidance is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ordinals_p2p_psbt_swapA
Record a completed PSBT atomic swap on the trade ledger.
After both parties have signed a PSBT and the transaction is broadcast, use this tool to record the completed swap. The active wallet signs the record with BIP-137.
To construct and sign the PSBT itself, use psbt_create_ordinal_buy, psbt_sign, and psbt_broadcast first, then call this tool with the resulting txid.
Requires an unlocked wallet with Bitcoin keys.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| tx_hash | Yes | Broadcast atomic swap transaction hash | |
| metadata | No | Optional freeform metadata | |
| to_agent | Yes | Counterparty BTC address (new owner of the inscription) | |
| amount_sats | Yes | Swap amount in satoshis | |
| inscription_id | Yes | Inscription ID swapped | |
| parent_trade_id | No | Parent trade ID being fulfilled (if closing an existing offer) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose two real behaviors: the active wallet signs the ledger record with BIP-137, and an unlocked wallet with Bitcoin keys is required. It does not say whether recording is idempotent for a repeated tx_hash, whether it verifies the on-chain transaction, or what happens if the txid is invalid or already recorded.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The operational content is front-loaded and reasonably tight, but the closing tip ("call earning_opportunities to see how to put your assets to work") is unrelated promotional filler that dilutes an otherwise focused procedural description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The workflow prerequisites and signing mechanism are covered, which is the core need, but there is no output schema, and the description never says what the call returns (e.g. a trade ID) or how failures surface. For a ledger-recording mutation with no annotations, that leaves a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters including parent_trade_id already carry documentation. The description only mentions the txid in passing ("the resulting txid"); it adds no meaning about parent_trade_id vs a standalone swap, or about the optional metadata field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource: "Record a completed PSBT atomic swap on the trade ledger." That distinguishes it from creation/negotiation siblings like ordinals_p2p_create_offer or ordinals_p2p_counter, which construct offers rather than ledger-completing a swap. It stops short of explicitly naming the sibling it contrasts with, which keeps it off a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the precondition (both parties signed, transaction broadcast) and the preceding tool sequence psbt_create_ordinal_buy -> psbt_sign -> psbt_broadcast -> this tool. It does not state when NOT to use it, e.g. whether an unbroadcast or partially signed swap should be routed to ordinals_p2p_counter or ordinals_p2p_cancel instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ordinals_p2p_transferA
Record a completed inscription transfer on the trade ledger.
Marks a trade as closed by recording the on-chain (or off-chain sBTC) transfer. The active wallet signs the record with BIP-137 to prove the transfer was authorized by the sending party.
Requires an unlocked wallet with Bitcoin keys.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| tx_hash | No | On-chain transaction hash (optional for sBTC/off-chain transfers) | |
| metadata | No | Optional freeform metadata | |
| to_agent | Yes | Recipient BTC address | |
| amount_sats | No | Transfer amount in satoshis | |
| inscription_id | Yes | Inscription ID being transferred | |
| parent_trade_id | No | Parent trade ID being fulfilled (if closing an open offer) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does well: it says the tool records to the trade ledger, marks the trade closed, and requires an unlocked wallet with Bitcoin keys. It also discloses BIP-137 signing by the active wallet, though it omits failure conditions and idempotency behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and mostly efficient, starting with the core action and following with signing and wallet requirements. The final earning_opportunities tip does not help invoke this tool and slightly dilutes conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation-style ledger record with six parameters and no output schema, the description covers the key action, side effect, signing behavior, and wallet prerequisite. It could be stronger by explaining success/failure outcomes or expected postconditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains parameters such as tx_hash being optional for sBTC/off-chain transfers. The description adds broad context about on-chain versus off-chain sBTC transfers but does not add per-parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: "Record a completed inscription transfer on the trade ledger" and clarifies that it "Marks a trade as closed." This is clearly a ledger-recording action rather than an actual transfer, though it does not explicitly distinguish itself from the ordinals_p2p_* swap/offer siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides implied usage context by saying it records a completed transfer and closes a trade, but does not state when not to use it or name alternatives such as ordinals_p2p_psbt_swap or ordinals_p2p_create_offer. The earning_opportunities tip is unrelated to selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_add_adminB
Add a backup admin address to your Pillar smart wallet for recovery purposes. The admin can help recover funds if you lose access to your passkey.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| adminAddress | No | Stacks address (SP...) to add as backup admin (can be set in UI) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It explains that the backup admin can help recover funds, which is useful security context, but it does not state whether this is an on-chain transaction, what authentication is required, whether the action is reversible, or what permissions the admin receives.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is short and front-loaded, but the second sentence is followed by an unrelated cross-sell tip for `earning_opportunities`. That tip does not help an agent invoke this tool correctly and dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It omits operational context such as whether a wallet must already exist, whether this requires wallet unlock or signature, what happens on failure, and what the result looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single `adminAddress` parameter is fully documented by the input schema. The description adds only a high-level mention of the admin address and does not provide extra format or validation details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: add a backup admin address to a Pillar smart wallet. It also explains the recovery purpose. However, it does not distinguish this tool from the sibling `pillar_direct_add_admin`, which likely performs a similar function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when this tool is useful: recovery if the user loses access to their passkey. It does not, however, mention when not to use it or name an alternative sibling tool, and the `earning_opportunities` tip is unrelated to usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_auto_compoundB
Configure auto-compound for your Pillar wallet. When enabled, a keeper will automatically boost your position when sBTC accumulates in your wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| minSbtc | No | Minimum sBTC to keep in wallet (in sats) | |
| trigger | No | Amount above minimum that triggers auto-compound (in sats) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden: it does disclose the core behavior (a keeper automatically boosts the position when sBTC exceeds the threshold), which is genuinely useful. But it omits whether this is an on-chain mutation requiring an existing position or approval, how to disable it, and whether the keeper costs anything — meaningful gaps for a state-changing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the purpose and the keeper mechanic front-loaded; the trailing 'Tip' is brief and plausibly useful, though it is somewhat tangential to invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a small two-parameter configuration tool with a fully documented schema and no output schema, the description covers purpose and effect but leaves the disable path, prerequisites, and sibling disambiguation (pillar_direct_auto_compound) unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both params (minSbtc, trigger) are clearly documented in the schema, including the sats unit and the 'above minimum' relationship. The description adds no additional parameter meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (configure) and resource (auto-compound for the Pillar wallet) and explains the effect: a keeper boosts the position once sBTC accumulates. It does not, however, differentiate itself from the near-identically named sibling pillar_direct_auto_compound, which an agent could easily confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only routing guidance is a 'Tip' pointing to earning_opportunities, which is an adjacent strategy tool rather than an alternative to this one. There is no guidance on when to enable vs. leave off, what preconditions exist (e.g. an existing Pillar position), or how this differs from pillar_direct_auto_compound.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_boostA
Create or increase a leveraged sBTC position (up to 1.5x) on your Pillar smart wallet. Opens the Pillar website Boost tab where you can set the amount and confirm. Your sBTC is supplied to Zest, borrowed against, and re-supplied for amplified Bitcoin exposure. For simple yield without leverage, use pillar_supply (Earn) instead. Amounts over 100,000 sats automatically enter DCA mode -- split into daily 100k-sat chunks (max 700k sats per schedule). The first chunk executes immediately, the rest follow daily.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | Amount in satoshis to boost (optional, shown as suggestion) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so well: it discloses that the tool opens the Pillar website Boost tab for amount selection and confirmation, explains the Zest supply/borrow/re-supply mechanics, and details the automatic DCA behavior above 100,000 sats. It omits prerequisites such as wallet connection and risks of leveraged positions, but provides substantial disclosure beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose, then mechanics, alternative, DCA behavior, and a tip. It is slightly long but every sentence contributes useful context; no major redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a leveraged position tool with no annotations or output schema, the description covers what it does, how it works, the non-leverage alternative, and the DCA threshold behavior. It could mention setup prerequisites or wallet connection requirements, but is otherwise complete enough for an agent to act.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single optional amount parameter, so baseline is 3. The description adds meaningful semantics: amounts over 100,000 sats trigger DCA, split into daily 100k-sat chunks with a 700k-sat maximum per schedule, and the first chunk executes immediately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Create or increase a leveraged sBTC position (up to 1.5x) on your Pillar smart wallet.' It also names the non-leveraged alternative (pillar_supply), making the tool's distinct purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly directs agents to pillar_supply for simple yield without leverage, which is the key decision point. It does not address the nearby pillar_direct_boost sibling, but the main alternative and DCA threshold conditions are clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_connectA
Connect to your Pillar smart wallet. Opens the Pillar website - if you're logged in, it will automatically connect and return your wallet address. Use this first before other Pillar actions.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and does real work: it discloses the side effect of opening the Pillar website, the login prerequisite, the auto-connect behavior, and the returned value. It omits what happens on failure or when no session exists, but the core behavioral profile is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose then the connecting behavior then the ordering rule. The trailing 'Tip' about earning_opportunities is a mild tangent but functions as useful routing, so it mostly earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations, but the description explicitly says a wallet address is returned and that a logged-in session is required — the two things an agent needs to decide and act. Only failure/re-auth behavior is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; no schema terms are contradicted or mischaracterized.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (connect to your Pillar smart wallet) and immediately states the outcome (returns your wallet address). It also positions itself against the many sibling pillar_* tools with 'Use this first before other Pillar actions.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear ordering rule ('use this first before other Pillar actions') and names a follow-on tool (earning_opportunities). It stops short of stating when not to call it (e.g. if already connected) or pointing to pillar_disconnect/pillar_status as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_create_walletA
Create a new Pillar smart wallet. Opens the Pillar website to complete registration. You'll need to enter your email to receive updates. If the user doesn't have a referral link, tell them they can DM @pillar_btc on X (https://x.com/pillar_btc) to request one before signing up.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| referral | No | Referral wallet address (optional, defaults to MCP referral) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It usefully explains that the tool opens the Pillar website, requires an email, and involves a referral link, but it does not describe permissions, whether the wallet is created immediately or only via website, key custody, costs, reversibility, or what the tool returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main action and then adds useful procedural details. It is generally efficient, though the final tip about `earning_opportunities` is slightly tangential to the core creation action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with full schema coverage and no output schema, the description provides enough context about the website handoff, email requirement, and referral caveat. It still leaves some ambiguity about the relationship to `pillar_direct_create_wallet` and what the user should expect after registration, but it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the sole `referral` parameter, including its optional nature and default behavior. The description mentions referral links but does not add syntax, format, or validation details beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a new Pillar smart wallet.' It also clarifies that the process opens the Pillar website for registration, which distinguishes it somewhat from a purely backend wallet tool. However, it does not explicitly differentiate itself from the sibling `pillar_direct_create_wallet`, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the tool for creating a Pillar smart wallet and gives referral-related instructions. But it never states when to use this tool versus alternatives such as `pillar_direct_create_wallet`, `wallet_create`, or `pillar_connect`. Usage is inferable but not explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_dca_inviteB
Invite a DCA partner by email or wallet address. DCA partners hold each other accountable — both must boost each week to keep the streak alive.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| partner | Yes | Partner's email address or Stacks wallet address (SP...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden. It does disclose the reciprocal commitment (both parties must boost weekly to preserve the streak), which is real context an agent would not otherwise have. However, it omits whether the invite sends an email, whether the partner must accept, whether the call is idempotent or repeatable, and what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action and the streak consequence are front-loaded in two tight sentences with zero filler. The trailing 'Tip' pointing at earning_opportunities is tangential promotion that doesn't help the agent invoke this tool, keeping it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description should cover what a successful invite produces and what the caller needs in place first. It gives the social contract but not the operational outcome (pending invitation state, follow-up via pillar_dca_partners), leaving a gap for a mutation-style tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One required parameter with 100% schema coverage, so the baseline is 3. The description repeats the schema's email-or-wallet duality without adding format rules, validation constraints, or resolution behavior beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Invite a DCA partner by email or wallet address.' That is clearly distinguishable from read siblings like pillar_dca_partners or pillar_dca_status, but the near-identical sibling pillar_direct_dca_invite is never mentioned, so the agent cannot tell which variant to pick from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied via the accountability mechanic ('both must boost each week to keep the streak alive'), which hints at the context in which a partnership makes sense. There is no explicit when-to-use versus when-not, no mention of prerequisites (connected pillar wallet), and no disambiguation from pillar_direct_dca_invite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_dca_leaderboardA
View the DCA streak leaderboard. Shows top partnerships by streak length, and highlights your entry if you have one.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the shape of the result (top partnerships by streak, your entry highlighted) and implicitly establishes a read-only, non-mutating operation. It does not say whether the call requires a registered DCA position, how many entries are returned, or whether the leaderboard is global or scoped.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core behavior front-loaded, followed by a short pointer. The promotional tip is mildly tangential but brief enough not to dilute the opening.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-argument read-only tool with no output schema, describing the return content (ranked partnerships, own entry highlighted) covers what an agent needs to know before calling. Minor gaps remain around result size and whether a wallet/identity context is required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema leaves nothing to explain; baseline 4 applies. The description correctly implies no inputs are needed, consistent with the empty properties object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('View the DCA streak leaderboard') and specifies what it displays: top partnerships ranked by streak length plus the caller's own entry. That is concrete and actionable, but it never distinguishes itself from the near-identical sibling pillar_direct_dca_leaderboard, nor from adjacent tools like pillar_dca_partners or pillar_dca_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: checking rankings is self-evidently what a leaderboard call is for. There is no statement of when to prefer this over pillar_dca_partners/pillar_dca_status, no prerequisites, and the 'Tip' points to earning_opportunities as a next step rather than as an alternative to this call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_dca_partnersB
View your DCA partners and weekly status. Shows active partnerships with streak, PnL, and weekly status badges, plus any pending invites.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses what the response contains: active partnerships, streak, PnL, weekly status badges, and pending invites. It does not state whether the operation is read-only, what wallet/auth context is required, or how empty states are represented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is front-loaded and compact: two sentences cover what is shown and what extra content appears. The trailing tip is supplementary but not disruptive. Nothing is redundant enough to violate conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with no output schema and no annotations, the description covers the essential return contents. It still leaves minor gaps around authentication/wallet context and response shape, but an agent can call it without needing input parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to explain. The baseline score of 4 applies because the description does not need to compensate for an input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'View your DCA partners and weekly status.' It also names the returned content (streak, PnL, status badges, pending invites). It does not, however, distinguish this tool from very similar siblings such as pillar_direct_dca_partners or pillar_dca_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. The tip about earning_opportunities is a cross-reference, not a usage-selection rule. An agent must infer that this is a read-only partner-viewing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_dca_statusA
Check your DCA schedule status. Shows all active DCA schedules (up to 10) with chunk progress (completed, pending, failed) and next execution time.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing the returned data: active DCA schedules, a cap of 10, chunk progress states, and next execution time. "Check" and "Shows" imply a read-only operation, though it does not explicitly state auth or whether only the caller's schedules are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is front-loaded, specific, and brief. The trailing tip about earning_opportunities is not necessary for selecting or invoking this tool, which slightly reduces conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter status tool with no output schema or annotations, the description provides enough detail about what will be returned and the 10-schedule limit. It would be stronger if it explicitly confirmed read-only behavior and prerequisite wallet connection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to document. The baseline score of 4 is appropriate because the description does not need to compensate for parameter documentation gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb-resource pair, "Check your DCA schedule status," and adds concrete output detail about active schedules, chunk progress, and next execution time. It does not distinguish this tool from the closely named sibling pillar_direct_dca_status, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but gives no explicit guidance on when to use it instead of alternatives such as pillar_direct_dca_status. The tip to call earning_opportunities is a related next action, not usage guidance for this status tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_direct_add_adminB
Add a backup admin address to your Pillar smart wallet for recovery purposes. Agent-signed, no browser needed. The admin can help recover funds if you lose access to your passkey. Backend sponsors gas.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| newAdmin | Yes | Stacks address (SP...) to add as backup admin |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses agent signing, no browser requirement, backend gas sponsorship, and the recovery role, but omits permission requirements, whether existing admins are replaced or merely added, reversibility, and post-call effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action in the first sentence and no filler. The appended tip about earning_opportunities is tangential but brief and does not obscure how to invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers purpose, gas sponsorship, signing mode, and recovery intent. It still lacks prerequisite wallet state, permission or confirmation details, and what happens after the admin is added, so it is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required parameter, newAdmin, has 100% schema description coverage, and the schema already documents the expected Stacks address format. The description reinforces that this is a backup admin address but adds no validation or syntax details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Add a backup admin address to your Pillar smart wallet,' with recovery context. It is clear what the tool does, but it does not distinguish itself from the sibling pillar_add_admin or explain why the 'direct' variant is different.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the use case as recovery if the user loses access to their passkey, and notes that it is agent-signed with no browser needed. However, it gives no explicit prerequisites, exclusions, or guidance on when to choose this over pillar_add_admin.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_direct_auto_compoundB
Configure auto-compound for your Pillar wallet. When enabled, a keeper automatically boosts when sBTC accumulates above the trigger. Agent-signed, no browser needed. Backend sponsors gas.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | Enable or disable auto-compound | |
| minSbtc | Yes | Minimum sBTC to keep in wallet (in sats) | |
| trigger | Yes | sBTC amount above minimum that triggers auto-compound (in sats) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does add useful behavior: a keeper auto-boosts when sBTC accumulates above the trigger, no browser is needed, and gas is sponsored. However, it does not disclose what happens on reconfiguration or disabling, whether existing settings are overwritten, permission requirements, or what the call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and behavior, then supporting details. Slightly more than strictly necessary, especially the cross-sell tip, but no wasted sentences in the main explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description covers purpose, mechanism, signing model, and gas sponsorship. It remains incomplete for a configuration mutation because it does not say what happens to existing settings, how disabling interacts with an in-flight boost, or what the result looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: `enabled`, `minSbtc`, and `trigger` are each documented in the schema, including units (sats). The description's mention of sBTC accumulating above the trigger loosely connects to `trigger` and `minSbtc`, but adds no semantics beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Configure auto-compound for your Pillar wallet.' Clear what it does, but it does not distinguish itself from the very similar sibling tool `pillar_auto_compound` (nor from related direct tools like `pillar_direct_boost`).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains how auto-compound behaves, but gives no guidance on when to use this tool versus alternatives such as `pillar_auto_compound` or `pillar_direct_boost`. The `earning_opportunities` tip is a cross-reference for yield, not a use-case selector.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_direct_boostA
Create or increase a leveraged sBTC position (up to 1.5x) on your Pillar smart wallet. Agent-signed, no browser needed. Your sBTC is supplied to Zest, borrowed against, and re-supplied for amplified Bitcoin exposure. Backend sponsors gas. For simple yield without leverage, use pillar_direct_supply instead.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| sbtcAmount | Yes | sBTC amount in sats to supply as collateral | |
| aeUsdcToBorrow | Yes | aeUSDC amount to borrow (6 decimals) | |
| minSbtcFromSwap | Yes | Min sBTC from swap in sats (slippage protection) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses leverage up to 1.5x, the Zest supply/borrow/re-supply mechanics, agent signing, no browser requirement, and gas sponsorship. It still omits material behavior such as liquidation risk, whether the action is reversible, and any required wallet/key state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and mechanics, and each sentence mostly earns its place. The final tip about earning_opportunities is useful but slightly tangential to invoking this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex leveraged DeFi mutation with no annotations and no output schema, the description covers mechanics and gas well. It remains incomplete on important context: prerequisites for the wallet/key, liquidation implications, and what a successful invocation returns or changes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented. The description explains the overall leveraged strategy but does not add parameter-specific meaning beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb+resource: creating or increasing a leveraged sBTC position on a Pillar smart wallet, with a specific leverage cap of 1.5x. It distinguishes itself from pillar_direct_supply, but does not explain how it differs from the similarly named pillar_boost sibling, which leaves some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit usage context and names pillar_direct_supply as the alternative for simple yield without leverage. However, it does not address when to use this versus pillar_boost, nor prerequisites such as whether a Pillar wallet or unlocked key is required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_direct_create_walletA
Create a new Pillar smart wallet for agent direct operations. This is a bundled operation: generates a signing keypair, unlocks it, and deploys a new smart wallet with the pubkey registered. Backend deploys the contract and calls onboard() in background. After ~20-30 seconds the wallet is ready for pillar_direct_* operations.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| referredBy | No | Contract address of the referring wallet. Defaults to the Pillar team wallet if not provided. | SPV9K21TBFAK4KNRJXF5DFP8N7W46G4V9RCJDC22.beta-v2-wallet |
| walletName | Yes | Wallet name (3-20 chars, lowercase letters, numbers, hyphens). The contract will be deployed as {walletName}-wallet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that this is a bundled multi-step operation (keypair generation, unlock, contract deployment), that the backend deploys and calls onboard() asynchronously in the background, and that the wallet is ready after ~20-30 seconds. It does not cover failure behavior, fee/cost implications, or where the generated keypair is persisted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then layers the bundled-operation mechanics and timing detail in a logical order, ending with a relevant tip. It is efficient, though the closing tip about earning_opportunities is only loosely tied to this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the operation's side effects and async timing well, which is the hardest part to infer. However, with no annotations and no output schema, the description should also say what the call returns (wallet address/identifier) and whether there is a cost or auth requirement; those are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both walletName and referredBy are already documented in the schema, including the {walletName}-wallet deployment naming and the referredBy default. The description adds no parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a new Pillar smart wallet') and qualifies it with scope ('for agent direct operations'), which distinguishes it from the managed-wallet siblings in the pillar_ family. It does not explicitly name pillar_create_wallet as the contrasting alternative, so differentiation is inferable rather than spelled out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies the use case by saying the wallet is for 'agent direct operations' and becomes usable for pillar_direct_* tools, but never states when to pick this over pillar_create_wallet or what prerequisites exist. An agent can infer the context but is given no exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_direct_dca_inviteB
Invite a DCA partner by email or wallet address. DCA partners hold each other accountable — both must boost each week to keep the streak alive.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| partner | Yes | Partner's email address or Stacks wallet address (SP...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and does supply real domain behavior: the invite creates a mutual weekly-boost commitment. However it omits mechanics that matter for a mutation call — whether the partner must accept, whether an invite can be duplicated, and any auth/precondition requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action and its consequence are front-loaded in two tight sentences with zero padding. The closing tip is somewhat tangential but is clearly demarcated and short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a one-parameter mutation with a fully documented schema, and the streak/accountability context is genuinely useful. Still short of complete for an unannotated write tool: invite lifecycle (pending/accepted), failure modes, and required wallet state are all unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already documents email-or-Stacks-address with the SP... format. The description's 'by email or wallet address' merely restates it, adding no format, validation, or resolution detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (invite a DCA partner) with the two accepted identifier forms. It is clear on its own, but it never distinguishes itself from the very similarly named sibling `pillar_dca_invite`, which an agent choosing between the two would need.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the scenario (pairing with an accountability partner who must boost weekly), but gives no explicit when-to-use or when-not-to-use guidance and names no alternative. The `earning_opportunities` tip is adjacent context rather than a routing instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_direct_dca_leaderboardB
View the DCA streak leaderboard. Shows top partnerships by streak length, and highlights your entry if you have one.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It reasonably discloses that this is a read-only 'View' operation and that it may highlight the caller's entry if one exists. It does not state whether wallet connection or authentication is required, nor does it describe ordering, pagination, or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the core purpose. The trailing 'Tip' about 'earning_opportunities' is tangential to selecting or invoking this tool, but it is brief and does not obscure the main instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read operation, the description adequately explains what the tool returns: a streak-sorted partnership leaderboard with the caller's entry highlighted. It is not fully complete because it omits the distinction from the sibling 'pillar_dca_leaderboard' and does not say whether a connected wallet is needed for the personalized portion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to explain. The baseline score of 4 is appropriate because the schema is empty and the description does not misrepresent any inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'View the DCA streak leaderboard.' It also states what the leaderboard contains: top partnerships by streak length plus the caller's entry if present. However, it does not distinguish this tool from the sibling 'pillar_dca_leaderboard,' leaving ambiguity about which leaderboard variant to select.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the closely named 'pillar_dca_leaderboard' or the related DCA status/partner tools. The only cross-reference is to 'earning_opportunities,' which is not an alternative for viewing the leaderboard. Usage is only implied by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_direct_dca_partnersB
View your DCA partners and weekly status. Shows active partnerships with streak, PnL, and weekly status badges, plus any pending invites.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that this is a read-only 'View' operation and lists the returned data, but it omits any mention of authentication requirements, side effects, or whether the data is scoped to the connected user.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is two efficient sentences that front-load the purpose. The appended tip about earning_opportunities is tangential and does not help an agent select or invoke this specific tool, slightly reducing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read-only view tool with no output schema and no annotations, the description sufficiently explains the returned content (active partnerships, streak, PnL, weekly badges, pending invites). It could clarify scope (e.g., connected wallet) but is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters; the schema is empty and fully described. Per the rubric, zero parameters yield a baseline of 4. The description does not need to add parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb 'View' and specifies the resource 'DCA partners and weekly status', listing the data shown (streak, PnL, weekly status badges, pending invites). It does not explicitly differentiate from similarly named siblings like pillar_dca_partners or pillar_direct_dca_status, leaving ambiguity about which partner/status view to use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives; the only cross-reference is a tip to call earning_opportunities, which serves a different purpose. The implied usage is 'use this to view your DCA partners' but no exclusions or conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_direct_dca_statusA
Check your DCA schedule status. Shows all active DCA schedules (up to 10) with chunk progress (completed, pending, failed) and next execution time.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose the meaningful behavioral facts: this is a read-only status check, results are capped at 10 active schedules, and each entry reports completed/pending/failed chunk progress plus next execution time. It stops short of stating prerequisites (wallet connection, ownership scoping) or behavior when no schedules exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The functional content is front-loaded in two tight sentences with no redundancy. The third "Tip" sentence is promotional rather than operational and does not help an agent call the tool, so it marginally dilutes an otherwise efficient description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description must supply both return shape and behavior; it does a fair job on return shape but is silent on whose schedules are returned (connected wallet? address?) and on the empty-result case. For a zero-param read tool that gap is tolerable but real.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly implies the call is unfiltered and implicitly scoped to the caller's own schedules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Check your DCA schedule status") and enumerates the returned data: up to 10 active schedules, chunk progress states, and next execution time. It is clear on its own, but it does not distinguish itself from the similarly named sibling pillar_dca_status (or pillar_dca_leaderboard/partners), leaving the agent to guess which DCA status tool applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The imperative "Check your DCA schedule status" implies a usage context, and the inclusion of "next execution time" hints at monitoring use, but there is no explicit when-to-use vs when-not guidance and no named alternative. The closing tip points at earning_opportunities, which is a cross-sell rather than a routing alternative, so it does not help tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_direct_positionA
View your Pillar smart wallet balances (STX, sBTC, aeUSDC) and Zest position. No signing needed — reads on-chain data.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It explicitly states that no signing is needed and that the tool reads on-chain data, which tells the agent this is a safe read-only operation. It does not cover auth requirements, rate limits, or response shape, but the key safety behavior is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core capability and token scope, followed by a short safety note and a relevant tip. Every sentence is short and purposeful, with no repetition or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only position viewer, the description gives enough information to call the tool: it names the balances and Zest position it returns and clarifies that signing is not required. The lack of an output schema is minor here, though the description could better distinguish the tool from sibling position tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to explain. The schema is empty and the description appropriately adds no parameter guidance, making the baseline score of 4 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('View') and names the exact resources: Pillar smart wallet balances in STX, sBTC, and aeUSDC plus Zest position. It is clear what the tool returns, but it does not distinguish this from closely named siblings such as pillar_position or zest_get_position.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by saying it reads on-chain data and needs no signing, and it points to earning_opportunities as a follow-up. However, it does not say when to choose this over pillar_position, get_wallet_info, get_stx_balance, or zest_get_position, nor does it give any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_direct_quoteA
Get a boost quote showing projected leverage, LTV, and swap details. No signing needed. Use this to determine aeUsdcToBorrow and minSbtcFromSwap before calling pillar_direct_boost.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| sbtcAmount | Yes | sBTC amount in sats to boost |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that no signing is needed and describes the quote's contents (leverage, LTV, swap details), but it omits behavior material to a quote tool, such as how long the quote is valid, whether it is a simulation only, or any rate/freshness constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and the pre-boost sequencing are front-loaded in two compact sentences. The trailing 'Tip' about earning_opportunities is relevant but peripheral, adding a small amount of non-essential text to an otherwise tight definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter quote tool with no output schema, the description explains what the quote exposes and how to use its outputs downstream in pillar_direct_boost, which is most of what an agent needs. The main gap is quote validity/lifetime, which is not addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single sbtcAmount parameter is already documented as 'sBTC amount in sats to boost' with an exclusive minimum. The description adds no further meaning about the parameter, such as units beyond sats or acceptable ranges, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get a boost quote') and enumerates what the quote contains: projected leverage, LTV, and swap details. It also distinguishes itself from the sibling mutation tool pillar_direct_boost by noting 'No signing needed,' so an agent can tell it is the read/preview step rather than the execution step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear sequencing rule: use this to determine aeUsdcToBorrow and minSbtcFromSwap before calling pillar_direct_boost, which names the alternative and the condition that selects it. It does not say when not to use it (for example, whether a quote can be reused or when it goes stale), so it stops short of full explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_direct_resolve_recipientA
Resolve a recipient before sending. Resolves BNS names (.btc) via backend, Pillar wallet names via backend, or validates a Stacks address. Use this BEFORE pillar_direct_send to confirm the resolved address with the user.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient: BNS name (muneeb.btc), Pillar wallet name, or Stacks address (SP...) | |
| recipientType | No | Type of recipient: 'bns' (default), 'wallet', or 'address' | bns |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It does disclose that resolution happens via the backend and that this is a pre-send validation step rather than a mutation, but it says nothing about failure behavior (what happens if the name does not resolve), latency/caching, or whether any auth is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are tightly front-loaded and carry the real information. The trailing 'Tip: call earning_opportunities...' is promotional filler unrelated to resolving a recipient and dilutes an otherwise efficient definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should indicate what resolution returns (resolved address, detected type, error on failure) since the agent is instructed to confirm it with the user. That return-side gap leaves the definition only adequate for a two-parameter lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are already documented with examples and an enum for recipientType, so the baseline is 3. The description's enumeration of recipient formats merely restates what the schema says and adds no syntax or edge-case detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (resolve) and resource (recipient) and enumerates the three supported identifier forms: .btc BNS names, Pillar wallet names, and Stacks addresses. It also positions itself relative to the sibling pillar_direct_send, so an agent can tell these apart without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use this BEFORE pillar_direct_send to confirm the resolved address with the user" gives explicit sequencing and a prerequisite workflow step, which is exactly the guidance an agent needs. It does not, however, address when to use this versus the other BNS-resolution siblings (lookup_bns_name, reverse_bns_lookup, get_bns_info), leaving that ambiguity unaddressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_direct_revoke_fast_poolA
Revoke Fast Pool STX delegation from your Pillar smart wallet (pox-4 revoke-delegate-stx; refused while pox-4 is not the active PoX contract). Agent-signed, no browser needed. Backend sponsors gas. After revoking, STX stays locked until the current PoX cycle ends, then returns to liquid.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden and does: signing model (agent-signed, no browser), cost (backend sponsors gas), a refusal condition tied to PoX contract state, and the post-state consequence (STX locked until the current cycle ends, then liquid). This is exactly the behavior an agent needs before committing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, front-loaded with the action and contract call, then preconditions and post-effects. The closing 'Tip' about earning_opportunities is mildly promotional but still points to a useful next action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, no-annotation, no-output-schema mutation, the description covers preconditions, cost, signing, and state effects. It does not say what a successful response looks like or how to verify the revoke landed, which is the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 and there is nothing for the description to disambiguate. No misleading parameter-like language is introduced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (revoke) and resource (Fast Pool STX delegation) scoped to the Pillar smart wallet, and names the underlying contract call (pox-4 revoke-delegate-stx). This distinguishes it from siblings like pillar_direct_stack_stx or unstake_stx without needing either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete precondition ('refused while pox-4 is not the active PoX contract') and a follow-up route to earning_opportunities. It does not explicitly exclude alternatives (e.g. pillar_unwind or dual_stacking_opt_out), so context is clear but exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_direct_sendA
Send sBTC from your Pillar smart wallet to a recipient. Agent-signed, no browser needed. Supports BNS names, wallet names, or Stacks addresses. Backend sponsors gas.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient: BNS name (muneeb.btc), Pillar wallet name, or Stacks address (SP...) | |
| amount | Yes | Amount in satoshis | |
| recipientType | No | Type of recipient: 'bns' (default), 'wallet', or 'address' | bns |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does add genuine context: signing is agent-side, no browser session is required, and the backend sponsors gas. It omits other behavior an agent needs – whether the transfer waits for confirmation, whether it is irreversible, what happens on recipient-resolution failure, and whether a key must be unlocked first.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core capability and the two differentiators (agent signing, gas sponsorship) are front-loaded in short sentences. The trailing 'Tip' promoting earning_opportunities is tangential cross-sell that does not help an agent invoke this tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a value-transfer mutation with no annotations and no output schema, the description should state what comes back (transaction id? confirmation state?) and the preconditions for signing. It covers the sending mechanics well but leaves the result and prerequisite picture incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so `to`, `amount` (satoshis) and the `recipientType` enum are already fully documented. The description repeats the accepted recipient formats (BNS, wallet name, Stacks address) but adds no new syntax, defaults, or edge-case semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (send sBTC) plus the owning context (your Pillar smart wallet) and the recipient formats accepted. The 'agent-signed, no browser needed' clause implicitly distinguishes it from browser/session-based siblings like pillar_send, but no sibling is named outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Agent-signed, no browser needed' gives a concrete condition for choosing this over interactive Pillar flows, which is real guidance. However, it never says when NOT to use it (e.g. use pillar_direct_quote or pillar_direct_resolve_recipient first) and states no prerequisites such as an unlocked key or an existing Pillar wallet.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_direct_stacking_statusA
Check stacking status for your Pillar smart wallet. No signing needed — reads on-chain data. Shows STX balance (locked vs liquid), current PoX cycle info, and dual stacking enrollment status.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it declares the operation read-only and signing-free, then enumerates the data returned (locked vs liquid STX, current PoX cycle, dual stacking enrollment). Missing only details like permission/wallet-state prerequisites or freshness/caching behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences plus a short tip; the core purpose and read-only nature are front-loaded and there is no filler. The earning_opportunities tip is only loosely related to checking status, slightly diluting focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, no-annotation, no-output-schema tool, the description compensates by spelling out exactly what information comes back. It is nearly sufficient to call correctly; only guidance on which overlapping stacking-status sibling to prefer is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to document and the baseline of 4 applies. The description correctly implies no inputs are required by framing it as a simple status read.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (check) and resource (stacking status) scoped to the Pillar smart wallet, and summarizes what is shown (STX locked vs liquid, PoX cycle, dual stacking enrollment). It does not explicitly distinguish itself from sibling status tools like get_stacking_status, dual_stacking_status, or pillar_dca_status, so the Pillar scoping is the only differentiator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'no signing needed — reads on-chain data' line implies when this is appropriate (a read-only status check), and the tip routes to earning_opportunities for follow-up. However, it never states when to use this versus get_stacking_status or dual_stacking_status, which overlap heavily, so guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_direct_stack_stxA
Stack STX from your Pillar smart wallet via Fast Pool or Stacking DAO. Agent-signed, no browser needed. Backend sponsors gas. Fast Pool delegates STX to the pox4-fast-pool-v3 contract through pox-4, and is refused while pox-4 is not the active PoX contract (PoX-5 is live; use stack_stx for PoX-5 staking). Stacking DAO deposits STX into Stacking DAO core for stSTX yield. Your wallet must be enrolled in dual stacking first (automatic for v2 wallets with sBTC).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| pool | Yes | Stacking pool to use: 'fast-pool' (delegates to pox4-fast-pool-v3) or 'stacking-dao' (deposits into Stacking DAO for stSTX) | |
| stxAmount | Yes | Amount of STX to stack in micro-STX (1 STX = 1,000,000 micro-STX) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and discloses important behaviors: agent-signed, no browser needed, backend sponsors gas, dual-stacking prerequisite, and a failure mode for Fast Pool. It stops short of describing return values, lock periods, or minimum amounts, leaving some gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and efficiently packs prerequisites, pool semantics, and a failure condition into a few sentences. The trailing tip about earning_opportunities is somewhat tangential but not disruptive; overall it earns its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description covers critical context: agent signing, gas sponsorship, dual-stacking enrollment, contract-level behavior, and a refusal condition. It could be stronger by mentioning what the call returns or typical lock periods, but it is sufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful context beyond the schema by explaining Fast Pool delegates to pox4-fast-pool-v3 through pox-4 and Stacking DAO deposits into core for stSTX yield, clarifying the economic and contract differences between the two enum values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Stack STX from your Pillar smart wallet via Fast Pool or Stacking DAO') and distinguishes the two pool options with contract-level detail. It explicitly names the alternative sibling ('use stack_stx for PoX-5 staking'), enabling an agent to tell this tool apart from generic stacking tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear prerequisite ('wallet must be enrolled in dual stacking first') and a critical when-not condition ('Fast Pool ... is refused while pox-4 is not the active PoX contract'), with a direct alternative ('use stack_stx for PoX-5 staking'). The agent knows both when this tool can be used and when it must be avoided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_direct_supplyA
Earn yield on your Bitcoin. Supply sBTC from your Pillar smart wallet to Zest Protocol. No leverage, no liquidation risk. Agent-signed, no browser needed. Backend sponsors gas. For leveraged exposure (1.5x), use pillar_direct_boost instead.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| sbtcAmount | Yes | sBTC amount in sats to supply |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and does well: it discloses no leverage, no liquidation risk, agent-signing with no browser, and backend-sponsored gas. It does not state failure conditions (e.g., insufficient sBTC, allowance/approval steps), which leaves a modest gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, followed by risk/gas traits and the sibling routing, all in a few tight sentences. The trailing 'Tip' is mildly promotional but earns its place as a discovery pointer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter supply action with no annotations or output schema, the description covers safety profile, signing model, and gas handling adequately. It omits what to expect on return and how to verify resulting position (there is a pillar_direct_position sibling), a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single well-described sbtcAmount parameter in sats, so the schema already does the work. The description adds nothing about units, minimums, or validation beyond 'supply sBTC', matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: supply sBTC from a Pillar smart wallet into Zest Protocol, with the yield-earning outcome spelled out. It also explicitly distinguishes itself from the leveraged sibling pillar_direct_boost, so an agent can pick correctly without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing guidance is given for the leveraged alternative (pillar_direct_boost) and a pointer to earning_opportunities for discovery. It stops short of addressing the closely-related zest_supply sibling or prerequisites like wallet readiness, but the primary when-to-use condition is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_direct_unwindA
Close or reduce your leveraged sBTC position. Agent-signed, no browser needed. Swaps sBTC to aeUSDC to repay debt, then withdraws remaining sBTC collateral. Backend sponsors gas.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| sbtcToSwap | Yes | sBTC to swap to aeUSDC for repayment (in sats) | |
| sbtcToWithdraw | Yes | sBTC to withdraw after repayment (in sats) | |
| minAeUsdcFromSwap | Yes | Min aeUSDC from swap (slippage protection, 6 decimals) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With zero annotations the description carries the full burden, and it delivers real behavioral facts: the operation is agent-signed with no browser, it executes as an ordered swap-then-withdraw sequence, and the backend sponsors gas. It omits failure behavior (what happens if `minAeUsdcFromSwap` is not met), whether the position is fully closed or partially reduced, and any auth/permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the outcome, then the mechanism, then the gas note, then a tip. Every sentence is short and purposeful. The trailing `earning_opportunities` tip is mild cross-sell noise that doesn't help invoke this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter destructive financial operation with no annotations and no output schema, the description explains mechanics and gas but leaves preconditions, result format, and partial-vs-full unwind semantics unspecified. It is adequate to start the call but not to predict the outcome.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented with units (sats, 6 decimals) and slippage semantics. The description's swap-then-withdraw narrative corroborates those parameters but adds no format, range, or edge-case detail beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: 'Close or reduce your leveraged sBTC position', followed by the exact two-step mechanism (swap sBTC→aeUSDC to repay debt, then withdraw remaining collateral). 'Agent-signed, no browser needed' implicitly distinguishes it from the hosted `pillar_unwind` sibling, but no sibling is named explicitly, so the agent must infer the `pillar_direct_*` vs `pillar_*` split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by 'close or reduce your leveraged sBTC position', which tells the agent the triggering situation. However, it never states prerequisites (an existing position must exist), nor does it point to `pillar_direct_withdraw_collateral` for partial-collateral-only withdrawal or to `pillar_direct_boost`/`pillar_direct_supply` as the inverse operations. The only cross-reference is an unrelated tip to `earning_opportunities`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_direct_withdraw_collateralB
Withdraw sBTC collateral from Zest on the Pillar smart wallet. Agent-signed, no browser needed. Backend sponsors gas.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| sbtcAmount | Yes | sBTC amount in sats to withdraw |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description usefully discloses that the call is agent-signed, requires no browser, and has gas sponsored by the backend — real behavioral value. It stops short of mutation consequences: no mention of wallet-unlock/auth requirements, what happens if sbtcAmount exceeds the collateral position, or that the withdrawal triggers an on-chain transaction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the operation, then operating model, then a pointer. The trailing earning_opportunities tip is only marginally relevant to a withdrawal action but is cheap.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a value-moving DeFi mutation with no annotations and no output schema, the description covers the operating model but omits preconditions, failure modes, and any hint of what the call returns (tx hash, confirmation status). Adequate, not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (sbtcAmount is documented as sats with an exclusive minimum of 0), so baseline is 3. The description only restates 'sBTC collateral' and adds no unit, minimum, or relationship-to-position detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb + resource + venue + context: 'Withdraw sBTC collateral from Zest on the Pillar smart wallet' tells an agent exactly what operation this performs. It does not, however, distinguish itself from plausible siblings such as pillar_unwind or zest_withdraw, leaving the agent to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus pillar_unwind, zest_withdraw, or pillar_direct_supply, and no preconditions (e.g. an existing Zest supply position). The only guidance present is an unrelated tip pointing at earning_opportunities for yield discovery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_disconnectB
Disconnect from Pillar. Clears locally stored wallet address.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden. It does usefully disclose that the effect is local (the stored wallet address is cleared) rather than an on-chain action, but it doesn't say whether key material is retained, whether funds or positions are unaffected, or whether the disconnect is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and efficient, but the second sentence is a cross-sell tip that adds nothing to invoking this tool correctly and dilutes the useful signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter teardown tool this is a minimal but workable description: it says what is cleared and that it is local. Still missing, and not covered by annotations or an output schema, is what happens to the underlying key, whether reconnection is required afterward, and how it relates to pillar_connect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. No parameter-level gaps exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Disconnect from Pillar') plus the concrete effect ('Clears locally stored wallet address'), which is more than a restatement of the name. However, it does not differentiate from nearby siblings like pillar_key_lock, wallet_lock, or wallet_switch, which an agent could easily confuse with disconnecting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never says when to use this versus locking a key (pillar_key_lock) or switching wallets, nor does it state prerequisites or consequences for the session. The only forward reference is a promotional tip to call earning_opportunities, which is unrelated to deciding whether to disconnect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_fundA
Fund your Pillar smart wallet. Supports multiple methods:
'exchange': Deposit BTC from an exchange (Coinbase, Binance, etc.) - generates a deposit address
'btc': Deposit BTC from your Leather/Xverse wallet - auto-converts to sBTC
'sbtc': Deposit sBTC directly from your Leather/Xverse wallet Opens the frontend with the appropriate deposit flow.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | Amount in satoshis to deposit (optional, can be set in UI) | |
| method | Yes | Funding method: 'exchange' (deposit from Coinbase/Binance), 'btc' (from Leather/Xverse BTC), 'sbtc' (from Leather/Xverse sBTC) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that 'exchange' generates a deposit address, 'btc' auto-converts to sBTC, and the tool opens the frontend with the appropriate deposit flow. It does not state authentication requirements, whether funds move immediately, fee implications, or other operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and structured as a short, scannable method list. Every sentence adds useful context or a relevant follow-up tip without unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with full schema coverage and no output schema, the description is largely complete. It explains the funding methods and the frontend-opening behavior. It could be stronger by noting wallet connection or authentication requirements, but the key invocation context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining the method-specific outcomes, such as generating a deposit address for exchanges and auto-converting BTC to sBTC. It does not mention the optional amount parameter, but that is already well documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: fund a Pillar smart wallet. It enumerates the three supported funding methods, so the agent knows the scope. It does not explicitly differentiate this tool from sibling funding or supply tools such as pillar_supply or pillar_direct_supply.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains which method corresponds to which funding source, which gives implied guidance for choosing a method. However, it provides no explicit when-to-use or when-not-to-use guidance relative to sibling tools, and no prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_inviteB
Get your Pillar referral link to invite friends. Share this link and earn rewards when friends sign up.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the outcome (a shareable link that accrues rewards for sign-ups), which usefully implies a read-style retrieval rather than a state mutation. It omits whether the call requires an authenticated/unlocked Pillar account, whether the link is stable per user, or whether calling it provisions anything on-chain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Core purpose is front-loaded in the first sentence, with the reward rationale immediately after. The trailing 'Tip' about earning_opportunities is mildly off-topic for a referral-link getter and could be dropped without loss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description covers what is returned (a referral link) and why. The remaining gap is the lack of sibling disambiguation against pillar_dca_invite/pillar_direct_dca_invite, which matters in a toolset this crowded.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. No misleading parameter language is present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb+resource are specific: 'Get your Pillar referral link to invite friends.' It is clearly a referral/invite generator rather than a transfer or staking action. However, it does not differentiate itself from the very similar siblings pillar_dca_invite and pillar_direct_dca_invite, leaving the agent to guess which invite flavor applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the link is for (sharing with friends) but never states when to call this tool versus the two sibling invite tools, nor any precondition such as requiring a connected Pillar wallet. The appended tip routes to earning_opportunities, which is an unrelated cross-sell rather than guidance for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_key_generateB
Generate a new secp256k1 signing keypair for Pillar smart wallet direct operations. Returns the compressed public key (33 bytes hex). After generation, propose this pubkey on your smart wallet contract (admin must do this).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| smartWallet | No | Smart wallet contract ID this key is for (e.g. SPV9K21TBFAK4KNRJXF5DFP8N7W46G4V9RCJDC22.my-wallet). Use 'pending' if creating a new wallet — pillar_direct_create_wallet will update it automatically. | pending |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full disclosure burden for a security-critical operation. It does state the return format (compressed pubkey, 33 bytes hex) and the admin proposal step, but says nothing about where the private key is stored, whether an existing key is overwritten, whether the wallet must be unlocked first, or what happens if the pubkey is never proposed on-chain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence and the follow-up step are front-loaded and tight. The trailing 'Tip: call earning_opportunities...' is unrelated promotion that does not help an agent invoke this key-generation tool and dilutes the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and one fully documented parameter, the description covers the return value shape and the required on-chain follow-up. It remains incomplete on the key's lifecycle and security semantics (persistence, unlock requirements, overwrite behavior), which matter for a keypair-generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single optional parameter, and the schema itself explains the 'pending' sentinel and the contract-ID format. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Generate a new secp256k1 signing keypair') and scopes it to Pillar smart wallet direct operations, which separates it from the pillar_direct_* action tools. It does not explicitly position itself against the closely-named siblings pillar_key_info, pillar_key_lock and pillar_key_unlock, so the boundary with those is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a post-condition ('After generation, propose this pubkey on your smart wallet contract (admin must do this)'), which is genuine usage context. However it never says when to call this versus pillar_key_info/pillar_key_unlock or how it relates to pillar_direct_create_wallet, and offers no when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_key_infoA
Show signing key info: pubkey, smart wallet, lock status, and all stored keys.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden; 'Show' plus the field list implies a safe read, but it never states that it is non-mutating, whether the private key is exposed or redacted, or what permissions are needed. The enumeration partially compensates for the missing output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and dense with useful specifics. The appended 'Tip' about `earning_opportunities` is unrelated promotional filler that does not help an agent call this tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with no output schema and no annotations, listing the returned fields (pubkey, smart wallet, lock status, stored keys) supplies most of what an agent needs to know what comes back. Only the safety/permission profile is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline applies. No parameters are undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Show') plus resource ('signing key info') and an enumeration of returned fields (pubkey, smart wallet, lock status, stored keys). That clearly separates it from the sibling mutators pillar_key_generate/unlock/lock, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied — an agent must infer this is the read/status check to call before generate/unlock/lock. The one explicit pointer is to `earning_opportunities`, which is a promotional cross-sell, not a routing rule for choosing between key tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_key_lockB
Lock the signing key, clearing sensitive data from memory.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose one real behavioral trait: sensitive key material is wiped from memory. It omits other traits an agent would want — what state the key is left in, whether re-unlocking is required afterward, and whether re-locking needs credentials — so the disclosure is partial for a security-sensitive mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is tight and front-loaded with the effective action. The second sentence is an unrelated cross-sell for earning_opportunities that does not help an agent decide whether or how to lock the key, so it dilutes rather than serves the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, no-annotation tool with no output schema, the description covers the core action and its security effect, which is the essential part. It leaves open the post-lock state and the relationship to the other lock/unlock tools (wallet_lock, lightning_lock, pillar_key_unlock), so it is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the schema to under-specify and the baseline is 4. The description adds no parameter detail, which is appropriate here since none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Lock the signing key") plus the concrete effect ("clearing sensitive data from memory"), which is far more than the name alone conveys. It does not explicitly differentiate itself from nearby siblings such as pillar_key_unlock or wallet_lock, so an agent must infer that relationship.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the name's inverse relationship to pillar_key_unlock; there is no explicit when-to-use, when-not-to-use, or named alternative. The second sentence is a promotional tip pointing at earning_opportunities and gives no guidance about locking at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_key_unlockA
Unlock a signing key for Pillar direct operations. Uses auto-derived password. Usually not needed — tools auto-unlock on first use.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| keyId | No | The signing key ID to unlock. If omitted, unlocks the first stored key. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does add real context: an auto-derived password is used, so no credential is required, and unlocking normally happens automatically. However, it says nothing about what unlocking permits, whether it persists across calls or is session-scoped, or what happens if it fails — gaps that matter for a security-adjacent operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are front-loaded and efficient, but the closing tip promoting `earning_opportunities` is unrelated to unlocking a key and dilutes an otherwise tight definition. Removing it would cost nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single optional-parameter tool with no output schema and no annotations, the description covers what it does, the credential model, and the normal-case avoidance. Only the post-unlock state and failure behavior are left unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and keyId is already documented in the schema, including the 'if omitted, unlocks the first stored key' default. The description adds no further meaning about keyId, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Unlock a signing key for Pillar direct operations.' That is clearly distinct from pillar_key_generate and pillar_key_lock by implication, though it never names those siblings or explicitly contrasts with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Usually not needed — tools auto-unlock on first use' is an explicit when-not-to-use signal that most definitions lack, and it points at the implicit alternative (just call the operation). It stops short of saying when it IS necessary, e.g. after a failure or explicit lock.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_positionB
View your Pillar wallet balance and Zest position. Opens the Position page in the browser AND returns the data (sBTC balance, collateral, borrowed, LTV, liquidation price).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does disclose a real side effect that structured fields don't cover: it opens the Position page in the browser AND returns the data. However, it says nothing about whether a wallet must be connected, unlocked, or which active wallet is used, and it never explicitly says the call is read-only or free of state changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and returned fields come first, followed by one short tip, with no filler. The tip is slightly peripheral, but it is one sentence and reads as a clear forward reference.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description usefully lists the return fields, which is the right compensation. But for a wallet-reading tool it omits prerequisites (wallet connection, unlock state, network) and doesn't clarify how the browser-opening behavior interacts with headless or agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly implies no input is needed, and the field list it gives is about output, not arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('View your Pillar wallet balance and Zest position') and enumerates the returned fields (sBTC balance, collateral, borrowed, LTV, liquidation price). But it doesn't distinguish itself from nearby siblings such as `pillar_direct_position` and `zest_get_position`, which appear to read the same data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only routing hint is 'call `earning_opportunities` to see how to put your assets to work', which is a next-step suggestion, not guidance on when to use this tool. It never says when to prefer it over `zest_get_position`, `pillar_direct_position`, or `get_wallet_info`, even though those siblings exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_sendA
Send sBTC from your Pillar smart wallet. Requires being connected first (use pillar_connect). Opens the frontend for signing, then waits for confirmation. Supports three recipient types: 'bns' for BNS names (muneeb.btc), 'wallet' for Pillar wallet names (iphone), 'address' for Stacks addresses (SP...).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient: BNS name (muneeb.btc), Pillar wallet name (iphone), or Stacks address (SP...) | |
| amount | Yes | Amount in satoshis | |
| recipientType | No | Type of recipient: 'bns' (default), 'wallet' for Pillar smart wallets, or 'address' for raw Stacks addresses |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does disclose key traits: a frontend opens for signing and the call then blocks waiting for confirmation, plus the connection prerequisite. It omits fee behavior, failure/timeout handling, and what happens if the user rejects signing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Action, prerequisite slots and recipient-type mapping are front-loaded and each sentence carries information. The trailing 'Tip: call earning_opportunities' is promotional and not needed to invoke this tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers the prerequisite, the asynchronous signing flow, and recipient semantics. The main remaining gap is what is returned after confirmation and how fees are handled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents 'to', 'amount' (satoshis) and the recipientType enum. The description restates the three recipient types with examples, reinforcing but not adding meaning beyond the schema (e.g. no amount limits or format validation rules).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource (send sBTC) scoped to the Pillar smart wallet, which separates it from generic siblings like sbtc_transfer. It does not explicitly contrast with the very similar pillar_direct_send, so differentiation from the closest sibling is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a concrete prerequisite ('Requires being connected first (use pillar_connect)') and explains which recipientType to pick for each input form. It stops short of naming alternatives such as sbtc_transfer for non-Pillar wallets or saying when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_statusB
Check if you're connected to Pillar and get your wallet address.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior itself. 'Check' and 'get' imply a safe read operation, which is useful, but the description never says what happens when the user is not connected (error, null, empty address) or whether this tool has side effects, such as how it relates to pillar_connect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, with the core purpose stated up front. The trailing 'Tip' about earning_opportunities is tangential to this tool's job, but it is clearly marked as a tip and is not harmful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter status tool with no output schema, the description covers the essentials: what is checked and what value comes back. The only real gap is the disconnected-state behavior, which matters here because the tool's whole job is to report connectivity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline for this dimension is 4. The description correctly does not discuss parameter syntax and instead focuses on the output value (the wallet address).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: it checks Pillar connectivity and returns the user's wallet address. That is clear on its own, but among many sibling status/position tools (pillar_position, pillar_dca_status, pillar_direct_stacking_status, wallet_status, legion_status) it does not explain how it differs from them beyond the word 'connected'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is a 'Tip' pointing at earning_opportunities, which is a next-step recommendation rather than a when-to-use rule for this tool. Nothing tells the agent whether to call this before pillar_connect, how it relates to pillar_disconnect, or what the agent should do if it isn't connected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_supplyA
Earn yield on your Bitcoin. Supply sBTC from your Pillar smart wallet to Zest Protocol. Your sBTC earns interest with no leverage and no liquidation risk. This is the simplest way to earn on Pillar (Earn tab). For leveraged exposure, use pillar_boost instead.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | Amount in satoshis to supply (optional, can be set in UI) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose the risk profile (no leverage, no liquidation risk) and the fund flow (wallet → Zest), but says nothing about prerequisites such as an unlocked wallet or existing sBTC balance, nor about what the call actually submits or returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and front-loaded: purpose first, differentiation second, discovery tip last. A little promotional phrasing ('the simplest way to earn') costs a bit of precision but nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a fund-moving write operation with no annotations and no output schema, the description should say what happens on success and what the agent should check afterwards (e.g., pillar_position) and what prerequisites must hold. It covers the 'why' well but leaves the operational 'how' implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema description coverage is 100%, so the schema already explains that amount is in satoshis and optional. The description adds no units, limits, or defaults beyond that; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (supply), resource (sBTC), source (your Pillar smart wallet), and destination venue (Zest Protocol). It also frames the outcome (earns interest, no leverage, no liquidation risk), which lets an agent distinguish it from pillar_boost at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: use this for plain yield, use pillar_boost for leveraged exposure, and points to earning_opportunities for discovery. The remaining gap is that it never distinguishes itself from the very similarly named sibling pillar_direct_supply, which an agent could easily confuse with this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pillar_unwindB
Close or reduce your leveraged sBTC position. Opens a modal to repay borrowed sBTC and withdraw collateral back to your wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| percentage | No | Percentage of position to unwind (1-100, optional, can be set in UI) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose genuinely useful behavior — that a modal opens and that borrowed sBTC is repaid while collateral returns to the wallet. It omits prerequisites (must a position exist? must the wallet be unlocked?), what happens at 100% versus partial unwind, and whether the action is confirmable/cancellable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action is front-loaded in the first sentence, followed by the mechanism. The trailing promotional tip is short but is the least essential sentence in the block.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a position-closing operation with no annotations and no output schema, the description covers what happens but not the operational context an agent needs: prerequisites, risk of an unrecoverable state, or expected result. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single optional `percentage` param, so the schema already defines the 1-100 range. The description only hints at the parameter via 'reduce' and adds no semantics about defaults or how a partial unwind behaves. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource: 'Close or reduce your leveraged sBTC position,' and adds the mechanism (repay borrowed sBTC, withdraw collateral). It does not, however, distinguish itself from the closely-named sibling `pillar_direct_unwind`, so an agent has no textual basis for choosing between the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource itself — you call it to exit a leveraged sBTC position. There is no explicit when-not guidance and no mention of the near-duplicate `pillar_direct_unwind` alternative. The `earning_opportunities` tip is a follow-on suggestion, not a usage-selection rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preorder_bns_nameA
Preorder a BNS domain name (step 1 of 2-step registration). NOTE: For .btc names, prefer claim_bns_name_fast instead — it registers in one transaction. Use this 2-step flow only for non-.btc namespaces or if claim-fast is unavailable. After preorder is confirmed (~10 minutes), call register_bns_name with the same salt. IMPORTANT: Save the returned salt - you'll need it for the register step!
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | BNS name to preorder (e.g., 'myname' or 'myname.btc') | |
| salt | No | Optional salt for the preorder hash. If not provided, a random salt will be generated. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the two-step state dependency, the ~10 minute confirmation wait (latency), and that a salt is returned and must be persisted. It omits cost/fee implications and any wallet/network prerequisites, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and the routing NOTE, and the workflow steps follow in execution order. The trailing promotional "Tip: call earning_opportunities" is unrelated to preordering and does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with no output schema, the description supplies the essentials an agent needs: the return value that must be saved, the wait period, and the next call. It never mentions checking availability or price first (check_bns_availability, get_bns_price), which is a real gap in a registration workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so a baseline of 3 applies, but the description adds real meaning beyond the schema: the salt returned here must be reused verbatim in register_bns_name, which explains why the optional salt parameter matters across calls. The name parameter semantics are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Preorder a BNS domain name") and immediately frames it as step 1 of a 2-step registration. It explicitly names the sibling it is not (claim_bns_name_fast) and the follow-up tool (register_bns_name), so an agent can distinguish it from the other BNS tools in the sibling list without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use and when-not-to-use: prefer claim_bns_name_fast for .btc names, use this flow only for non-.btc namespaces or when claim-fast is unavailable. It also spells out the sequencing condition (wait ~10 minutes for confirmation, then call register_bns_name with the same salt).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
probe_x402_endpointA
Probe an x402 API endpoint to discover its cost WITHOUT making payment.
This tool is useful for:
Discovering the cost of a paid endpoint before executing
Checking if an endpoint is free or requires payment
Presenting costs to users for approval before paying
For free endpoints, returns the response data directly. For paid endpoints, returns payment details (amount, asset, recipient) without executing payment.
After probing a paid endpoint, use execute_x402_endpoint to actually execute and pay.
Supported sources:
x402.aibtc.com (mainnet) / x402.aibtc.dev (testnet), the default: Use path like "/inference/openrouter/chat"
x402.biwas.xyz: Use apiUrl="https://x402.biwas.xyz" with path like "/api/pools/trending"
stx402.com: Use apiUrl="https://stx402.com" with path like "/registry/list"
aibtc.com (mainnet) / aibtc.dev (testnet): Use apiUrl="https://aibtc.com" with path like "/api/inbox/{address}"
Any x402-compatible URL: Use url parameter with full endpoint URL
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Full endpoint URL (e.g., 'https://x402.aibtc.com/hashing/sha256'). Takes precedence over path+apiUrl. | |
| data | No | Request body for POST/PUT requests | |
| path | No | API endpoint path (e.g., '/api/pools/trending'). Required if url is not provided. | |
| asset | No | Quote the cost in this asset when the endpoint accepts several. Accepts a symbol ("sBTC", "STX") or a full contract identifier. Defaults to the first asset this client can pay; the full accepts[] list is always returned. | |
| apiUrl | No | API base URL: https:// plus the source host from list_x402_endpoints (x402.aibtc.com, x402.biwas.xyz, stx402.com, aibtc.com). Defaults to x402.aibtc.com (testnet x402.aibtc.dev). | |
| method | No | HTTP method | GET |
| params | No | Query parameters for GET requests |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that no payment occurs, that free endpoints return response data directly, and that paid endpoints return amount/asset/recipient details instead of executing. It stops short of stating auth/credential requirements or whether the probe itself has side effects on the remote server.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and the free-vs-paid return behavior are front-loaded and never buried. The supported-sources block is long but each line is actionable; the closing "Tip: call earning_opportunities" is promotional and doesn't help an agent invoke this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by describing both return branches (raw response data vs payment details). It leaves error behavior and non-x402 URLs unaddressed, which matters for a tool whose whole job is hitting arbitrary endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description goes beyond it by listing the supported source hosts and pairing each with a concrete path example, and by clarifying that the default is x402.aibtc.com. The url > path+apiUrl precedence is repeated from the schema rather than added to, keeping it from a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Probe an x402 API endpoint to discover its cost") and immediately adds the crucial scope qualifier "WITHOUT making payment." This clearly separates it from execute_x402_endpoint (which pays) and list_x402_endpoints (which enumerates sources).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the when-to-use cases (discover cost before executing, check free vs paid, present costs for approval) and routes the agent to the sibling execute_x402_endpoint for the follow-up action. The condition that selects the alternative is stated outright.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
psbt_broadcastB
Finalize a fully signed PSBT and broadcast it to the Bitcoin network via mempool.space.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| psbtBase64 | Yes | Fully signed PSBT in base64 format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the burden. It usefully discloses the external broadcast route (mempool.space) and that the input must already be fully signed, but says nothing about irreversibility, failure behavior, or whether a transaction ID is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and tight. The trailing promotional tip about earning_opportunities does not help an agent select or invoke this tool and dilutes the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter broadcast tool with full schema coverage and no output schema, the definition should say what comes back (e.g., a txid) and what happens on rejection. Those gaps leave the post-call picture incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter with 100% schema coverage, so the schema already documents psbtBase64. The description reinforces the 'fully signed' constraint but adds no format, size, or validation detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (finalize + broadcast) and resource (fully signed PSBT) plus the routing service (mempool.space). It does not explicitly distinguish itself from close siblings like psbt_sign or broadcast_transaction, leaving the agent to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Fully signed PSBT" implies the prerequisite that psbt_sign must run first, but no when-to-use/when-not or alternative is stated. The 'Tip' about earning_opportunities is a cross-sell, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
psbt_create_ordinal_buyB
Create a PSBT for buying an ordinal: buyer pays seller in BTC, seller's inscription UTXO is transferred to buyer. This prepares the PSBT for both parties to sign.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| feeRate | No | Fee rate: 'fast' (~10 min), 'medium' (~30 min), 'slow' (~1 hr), or explicit sat/vB | medium |
| priceSats | Yes | Purchase price in satoshis paid to seller | |
| sellerAddress | Yes | Seller BTC address to receive payment | |
| inscriptionUtxo | Yes | Seller inscription outpoint in txid:vout format | |
| buyerReceiveAddress | Yes | Buyer BTC address that will receive the inscription UTXO |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose key behavior: the BTC/inscription flow and that this only produces a PSBT requiring both parties' signatures (i.e., not a broadcast). It omits who the caller is assumed to be, fee implications, and what happens on partial signing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is two tight, front-loaded sentences that earn their place. However, the appended 'Tip: call earning_opportunities...' is an unrelated promotional plug that dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-party PSBT-building mutation with no annotations and no output schema, the description covers the transaction semantics but leaves gaps: no indication of return shape, expected next steps, or error conditions. Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (including feeRate's enum-plus-number union) are documented in the schema. The description adds no additional parameter meaning beyond that, which is acceptable at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Create a PSBT') plus the exact trade mechanics (buyer pays BTC, seller's inscription UTXO to buyer). It is clearly distinct from psbt_sign/psbt_broadcast, though it doesn't explicitly differentiate itself from siblings like ordinals_buy or ordinals_p2p_psbt_swap that may overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The line 'prepares the PSBT for both parties to sign' implicitly places the tool mid-workflow (before signing/broadcast), which is helpful context. But it never states explicitly when to use this versus ordinals_buy or ordinals_p2p_psbt_swap, and includes no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
psbt_decodeB
Decode a PSBT to inspect inputs, outputs, signatures, and signing status before broadcast.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| psbtBase64 | Yes | PSBT in base64 format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does convey that this is an inspection operation reading inputs, outputs, signatures, and signing status. It does not explicitly state that the tool is read-only, whether any network call or auth is required, or what the response shape looks like, which are meaningful gaps for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is efficient and front-loaded. The appended 'Tip: call earning_opportunities...' is unrelated promotional content that does not help the agent invoke psbt_decode and dilutes an otherwise tight definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, non-mutating inspect tool with no output schema, the description adequately conveys what the decode reveals (inputs, outputs, signatures, signing status). Only minor gaps remain around exact return structure and any limits on PSBT size.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage ('PSBT in base64 format'), so the schema already does the work. The description adds the inspection purpose but no format or validation nuances beyond what the schema states, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Decode) and resource (PSBT) and enumerates what is surfaced: inputs, outputs, signatures, and signing status. It does not explicitly name the sibling it contrasts with (psbt_sign, psbt_broadcast), so the differentiation is only implicit through the verb and the 'before broadcast' phrasing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'before broadcast' signals a timing/context of use, implying you decode to verify prior to signing or sending. However, no alternatives are named and no exclusions are stated, leaving the agent to infer the workflow position itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
psbt_signB
Sign one or more PSBT inputs with the active wallet. Supports buyer (P2WPKH) and taproot keys.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| psbtBase64 | Yes | PSBT in base64 format | |
| signInputs | No | Optional input indexes to sign. Signs all signable inputs if omitted. | |
| finalizeSignedInputs | No | Finalize only the inputs signed in this call |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does add useful behavior context — signing uses the active wallet and covers both P2WPKH (buyer) and taproot keys — but it omits whether the wallet must be unlocked, whether signing is local only (i.e. no broadcast), and what happens to inputs that cannot be signed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are tight and front-loaded. The trailing "Tip: call `earning_opportunities`..." is an unrelated cross-sell that does not help an agent invoke this signing tool and dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a stateful signing tool with zero annotations and no output schema, the description should say what comes back (a signed PSBT ready for psbt_broadcast) and any prerequisites such as wallet unlock. Supported key types are covered, but the end-to-end expectation is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: psbtBase64, signInputs ("signs all signable inputs if omitted"), and finalizeSignedInputs are all documented in the schema. The description adds nothing beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Sign one or more PSBT inputs") plus the signing context ("with the active wallet") and key types supported. An agent can distinguish it from psbt_broadcast or psbt_decode, but neither sibling is named explicitly, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"With the active wallet" implies the wallet must be the selected/active one, but the description never says when to use this versus psbt_broadcast, psbt_decode, or psbt_create_ordinal_buy, nor what the next step in the workflow is. Usage is inferable from the name only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recover_sponsor_nonceA
Attempt automated recovery of stuck sponsor transactions via the relay API, or resync the local nonce counter.
Run check_relay_health first to identify stuck txids and missing nonces, then use this tool to trigger recovery without needing to contact the AIBTC team manually.
Recovery modes:
rbf: Replace-by-fee — rebroadcasts stuck transactions with a higher fee so miners prioritize them. Provide specific txids or omit to bump all stuck transactions.
fill-gaps: Nonce gap-fill — submits placeholder transactions to fill any missing nonces that are blocking the queue. Provide specific nonces or omit to fill all gaps.
both: Attempt both RBF and gap-fill in sequence (default).
resync-local-nonce: Force-reset the MCP server's in-memory nonce counter for the active wallet. Use this when the local counter is out of sync with the chain (e.g. after a server restart, manual transaction sent outside the MCP server, or a confirmed-but-locally-stuck counter). The counter will be re-seeded from the chain on the next transaction. Requires the wallet to be unlocked.
If the relay does not yet support relay endpoints it returns a 404 or 501 and this tool will respond with a clear message rather than throwing an error. In that case, share the txids and nonces from check_relay_health with the AIBTC team.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| txids | No | Specific stuck transaction IDs for RBF (omit to bump all stuck txs) | |
| action | No | Which recovery operation to attempt | both |
| nonces | No | Specific missing nonces for gap-fill (omit to fill all detected gaps) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses that rbf rebroadcasts with a higher fee, that fill-gaps submits placeholder transactions, the default of 'both', the wallet-unlocked prerequisite, the counter re-seeding behavior, and that 404/501 is converted into a clear message instead of an error. These are exactly the mutation and failure traits an agent needs before invoking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and prerequisite, then a clean mode-by-mode breakdown — the structure is easy to scan. The closing tip pointing at earning_opportunities is unrelated filler that does not earn its place, and the mode list is somewhat verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter mutation tool with no annotations and no output schema, the description covers triggers, per-mode behavior, prerequisites, defaults, and degradation when the relay does not support the endpoints. What it does not describe is what a successful recovery returns (txids bumped, gaps filled), leaving the agent to infer the outcome shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning the enum names alone do not carry — what 'rbf' and 'fill-gaps' actually do on-chain, and that omitting txids/nonces widens the blast radius to all stuck transactions or all detected gaps. It adds real semantics rather than restating the schema, though it does not explain format constraints on the txid/nonce arrays.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('automated recovery of stuck sponsor transactions via the relay API, or resync the local nonce counter') and immediately contrasts itself with check_relay_health, which is named as the diagnostic predecessor. An agent can tell it apart from nonce_fill_gap, nonce_heal, and check_relay_health from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly prescribes the workflow ('Run check_relay_health first to identify stuck txids and missing nonces, then use this tool') and gives a concrete condition for each mode, including the specific situations that warrant resync-local-nonce (server restart, tx sent outside the MCP server, confirmed-but-locally-stuck counter). It also states the fallback when the relay lacks support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_bns_nameA
Register a BNS domain name after preorder is confirmed. This is step 2 of a 2-step process. You MUST use the same salt from the preorder step. Only call this after the preorder transaction has been confirmed on-chain (~10 minutes). Auto-detects contract version: V2 for .btc names, V1 for other namespaces.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | BNS name to register (must match the preordered name) | |
| salt | Yes | The hex salt used in the preorder step (REQUIRED - must match exactly) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the on-chain confirmation gate, the mandatory salt reuse, and contract-version auto-detection (V2 for .btc, V1 for other namespaces) — behavior not inferable from the schema. It omits failure modes (what happens if the preorder is unconfirmed or the salt mismatches) and the fee/irreversibility of the registration, which keeps it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core content is front-loaded and dense: operation, step position, timing gate, salt requirement, version detection — all in three tight sentences. The trailing 'Tip: call earning_opportunities' line is a cross-sell unrelated to executing this tool and does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter mutation with no annotations and no output schema, the description supplies the sequencing, timing, and salt-binding context an agent needs to invoke it correctly. The remaining gap is expected failure behavior and fee implications, which an agent would likely want before signing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented, including the salt's 'must match exactly' constraint. The description reinforces the salt requirement but adds no syntax, format, or edge-case meaning beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Register a BNS domain name') and immediately situates it as step 2 of a 2-step preorder flow, which cleanly separates it from preorder_bns_name (step 1) and from claim_bns_name_fast. An agent can identify the operation and its position in the flow without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit invocation preconditions: preorder must be confirmed on-chain (~10 minutes) and the salt from the preorder must be reused. That is strong when-to-use guidance. It stops short of explicitly contrasting with claim_bns_name_fast as an alternate registration path, so it lands at 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reputation_append_responseA
Append a response to feedback received from a client. Must be called by the agent that received the feedback. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Fee preset ("low", "medium", "high") or micro-STX amount. Optional. | |
| index | Yes | Feedback index to respond to | |
| client | Yes | Stacks address of the client (SP... mainnet or ST... testnet) | |
| agentId | Yes | Agent ID that received the feedback | |
| sponsored | No | Use sponsored transaction relay so a relay service pays fees instead of your wallet. Requires SPONSOR_API_KEY env var or wallet-level sponsorApiKey. | |
| responseUri | Yes | URI pointing to the response content | |
| responseHash | Yes | Response hash as hex string (32 bytes) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the wallet-unlock prerequisite and the caller-identity restriction, but omits that this is an on-chain write that costs a fee (the schema exposes fee/sponsored), whether the response is permanent, or what happens if the index is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core two sentences are front-loaded and efficient, but the trailing 'Tip: call earning_opportunities...' is unrelated promotional filler that dilutes focus for a feedback-response tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations, so the description is the only source of behavioral context. It covers identity and wallet requirements but leaves cost, irreversibility, and failure modes unexplained for what is a transactional write with 7 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter is documented in-schema (fee presets, index meaning, client address format, sponsored relay). The description adds no parameter-level meaning beyond that, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Append a response to feedback received from a client'), which is clearly distinct from siblings like reputation_give_feedback or reputation_revoke_feedback. It does not explicitly name those siblings, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Adds real selection constraints: the caller must be the agent that received the feedback, and an unlocked wallet is required. It gives prerequisites but no explicit 'use X instead when...' routing to related reputation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reputation_approve_clientA
Approve a client to submit feedback up to a specified index limit. Must be called by the agent owner. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Fee preset ("low", "medium", "high") or micro-STX amount. Optional. | |
| client | Yes | Stacks address of the client (SP... mainnet or ST... testnet) | |
| agentId | Yes | Agent ID to approve a client for | |
| sponsored | No | Use sponsored transaction relay so a relay service pays fees instead of your wallet. Requires SPONSOR_API_KEY env var or wallet-level sponsorApiKey. | |
| indexLimit | Yes | Maximum feedback index the client is approved for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the caller-authorization constraint (agent owner) and the wallet-state prerequisite (unlocked wallet), but it does not mention that this is a state-changing on-chain transaction, whether approval is reversible, or how it interacts with revoke or fee/sponsored options. It is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and prerequisites are front-loaded and efficient. However, the trailing promotional tip ('call earning_opportunities to see how to put your assets to work') is off-topic noise that does not help an agent decide whether or how to use this approval tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter mutation tool with no annotations and no output schema, the description covers purpose, caller identity, wallet state, and approval scope. It omits what the agent should expect after the call (for example, a transaction hash, confirmation, or on-chain effects) and does not mention reversibility, which leaves the behavioral picture incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters, including agentId, client, indexLimit, fee, and sponsored, are already documented. The description's phrase 'up to a specified index limit' merely restates what the schema already says and adds no syntax, format, or edge-case meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (approve), resource (client), and scope (up to a specified index limit), which is enough for an agent to distinguish it from sibling tools such as reputation_revoke_feedback, reputation_give_feedback, and reputation_get_clients without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit prerequisites are given: 'Must be called by the agent owner' and 'Requires an unlocked wallet.' These are the decisive context conditions for invocation. However, there is no guidance on when not to use it or on an alternative for revoking or adjusting existing approvals, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reputation_get_approved_limitA
Get the approved feedback index limit for a specific client of an agent. Returns the maximum index up to which the client is approved to submit feedback. No wallet required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| client | Yes | Stacks address of the client (SP... mainnet or ST... testnet) | |
| agentId | Yes | Agent ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose 'No wallet required' plus the read-oriented return semantics. It still omits explicit read-only/side-effect disclosure, rate limits, or other behavioral constraints beyond wallet access.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the purpose and return value, then briefly notes wallet access. The unrelated earning_opportunities tip does not earn its place, but the overall description remains short and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with full schema coverage and no output schema, the description supplies purpose, return meaning, and no-wallet access. It is adequate, though an explicit read-only statement would strengthen it further in the absence of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both agentId and client are already documented in the schema. The description only restates the client-of-agent relationship and adds no format, constraint, or edge-case semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('approved feedback index limit') scoped to a client of an agent, and clarifies the return value as the maximum index for feedback submission. It is clear, but it does not explicitly differentiate itself from sibling tools such as reputation_get_last_index or reputation_get_feedback_count.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides the useful usage note 'No wallet required,' implying a read query. However, it does not state when to use this tool versus related reputation tools, and the tip to call earning_opportunities is unrelated to selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reputation_get_clientsA
Get a paginated list of clients who gave feedback to an agent. Returns client addresses and a nextCursor for pagination. No wallet required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Pagination cursor. Default 0. | |
| agentId | Yes | Agent ID to get clients for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does a fair job: it discloses the return payload (client addresses), pagination mechanism (nextCursor), and an access precondition (no wallet required). What is missing is ordering of results and whether addresses are deduplicated, so it falls short of fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are tight and front-loaded, stating purpose then return shape. The third sentence is an unrelated promotional tip about earning_opportunities that does not help an agent select or invoke this tool, so not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only list tool with full schema coverage, no output schema, and no annotations, the description covers purpose, return contents, and pagination adequately. Additional detail on result ordering or empty-list behavior would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (agentId, cursor) are already documented in the schema. The description only restates that results are paginated and that agentId selects the agent; it adds no extra semantics such as cursor behavior on invalid values or page size. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: a paginated list of clients who gave feedback to a given agent. That scoping ('clients who gave feedback') distinguishes it from the sibling feedback readers such as reputation_read_feedback and reputation_read_all_feedback, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource description plus the prerequisite note 'No wallet required,' which tells the agent it is a safe unauthenticated read. There is no explicit when-to-use / when-not guidance and no named alternative among the many reputation_* siblings; the closing tip points at an unrelated tool (earning_opportunities) rather than a real alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reputation_get_feedback_countB
Get the total number of feedback entries for an agent from the ERC-8004 reputation registry. No wallet required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | Agent ID to get feedback count for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the load; it does disclose that no wallet is required, which signals a read-only, unauthenticated call. Beyond that it says nothing about cost, rate limits, or what happens for unknown agent IDs, leaving real behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is well-formed and front-loaded with the verb and resource. The second sentence is a cross-promotional plug for earning_opportunities that does not help an agent call this tool correctly and dilutes the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with no output schema, saying what is counted, from which registry, and that no wallet is needed is nearly sufficient. Only the shape of the return value (a plain integer vs. an object) is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter exists and schema description coverage is 100%, so the schema already documents agentId fully. The description's 'for an agent' adds no syntax, range, or sourcing detail beyond the schema, making baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (total number of feedback entries for an agent) plus the source registry, ERC-8004. It implicitly separates itself from the read_feedback siblings by returning a count rather than entries, though it never names those siblings to make the distinction explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"No wallet required" gives a useful precondition and the purpose implies a lightweight count check rather than fetching entries, but there is no explicit when-to-use/when-not guidance relative to reputation_read_feedback or reputation_get_summary. The trailing tip about earning_opportunities is unrelated to selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reputation_get_last_indexB
Get the last feedback index submitted by a specific client for an agent. No wallet required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| client | Yes | Stacks address of the client (SP... mainnet or ST... testnet) | |
| agentId | Yes | Agent ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose that no wallet is required, which is real behavioral context for a chain-facing tool, and 'Get' implies a read. It says nothing about whether the call fails when the client has never submitted feedback, or what the returned value looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is efficient and front-loaded. The second sentence is an unrelated promotional tip about earning_opportunities that does not help an agent invoke this tool, so it does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read with no output schema, the description covers the essential purpose and the no-wallet constraint. It omits what a 'feedback index' is used for downstream (e.g., revoke_feedback or append_response) and behavior when no feedback exists, leaving real gaps for a reputation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both client (Stacks address pattern) and agentId fully documented in the schema. The description restates the two roles but adds no format, edge-case, or sentinel-value guidance beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get the last feedback index submitted by a specific client for an agent.' An agent can tell this returns a single index value scoped to a client-agent pair. It does not explicitly distinguish itself from nearby siblings such as reputation_get_feedback_count or reputation_read_feedback, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'No wallet required' gives a useful precondition, implying this is a free read path where sibling reputation write tools would need a wallet. However there is no explicit when-to-use vs. when-to-use-an-alternative guidance among the many reputation_* siblings. The trailing tip pointing at earning_opportunities is unrelated to choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reputation_get_summaryB
Get aggregated reputation summary for an agent from the ERC-8004 reputation registry. Returns average rating as a WAD string (18 decimals) and total feedback count. No wallet required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | Agent ID to get reputation summary for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does carry real behavioral weight: it discloses that no wallet is required (read-only, unauthenticated) and specifies the return shape (average rating as an 18-decimal WAD string plus feedback count), which is valuable given there is no output schema. It does not cover edge behavior such as what is returned for an agent with zero feedback or an invalid agentId, so the disclosure is partial rather than complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core content is front-loaded and tight: purpose, return format, and access requirement in two sentences. The trailing 'Tip' about earning_opportunities is off-topic for this tool and dilutes an otherwise clean definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the description supplies what the agent most needs: the data source, the return types and encoding, and the fact that no wallet is needed. The remaining gap (behavior for missing reputation data) is minor at this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single agentId parameter, so the schema already documents it fully. The description adds no format, range, or sourcing detail for agentId beyond what the schema states, which is the expected baseline for a high-coverage single-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get aggregated reputation summary for an agent') and names the data source (ERC-8004 reputation registry), which is concrete. It does not explicitly distinguish itself from nearby siblings such as reputation_get_feedback_count or reputation_read_feedback, though 'aggregated summary' implies a rollup rather than raw records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus the other reputation_* tools (read_feedback, get_feedback_count, get_clients). The only directive is a tangential 'Tip' pointing at earning_opportunities, which is not an alternative for this purpose and does not help the agent choose a reputation tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reputation_give_feedbackA
Submit feedback for an agent using the ERC-8004 reputation registry. Value is normalized to 18 decimals (WAD) internally for aggregation. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Fee preset ("low", "medium", "high") or micro-STX amount. Optional. | |
| tag1 | No | Optional tag 1 (max 64 chars) | |
| tag2 | No | Optional tag 2 (max 64 chars) | |
| value | Yes | Feedback value (e.g., 5 for a 5-star rating) | |
| agentId | Yes | Agent ID to give feedback for | |
| endpoint | No | Optional endpoint URL | |
| sponsored | No | Use sponsored transaction relay so a relay service pays fees instead of your wallet. Requires SPONSOR_API_KEY env var or wallet-level sponsorApiKey. | |
| feedbackUri | No | Optional URI pointing to off-chain feedback details | |
| feedbackHash | No | Optional feedback hash as hex string (32 bytes) | |
| valueDecimals | Yes | Decimals for the value (e.g., 0 for integer ratings) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses internal WAD normalization and the unlocked-wallet requirement, but says nothing about on-chain cost, irreversibility, or that submitted feedback can later be revoked via a sibling tool — gaps that matter for a 10-param mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and normalization note are front-loaded and efficient. The trailing tip about earning_opportunities is promotional and does not help the agent invoke this tool, so it fails to earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 optional/required params, no annotations, and no output schema, the description tells the agent what the tool does, how the numeric value is interpreted, and what wallet state is needed. The remaining gaps are behavioral depth rather than missing information required to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline would be 3. The description adds real value by explaining that value is normalized to 18 decimals (WAD) internally for aggregation, which clarifies the value/valueDecimals relationship beyond the per-field schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Submit feedback for an agent using the ERC-8004 reputation registry'), which is unambiguous. It does not explicitly differentiate itself from close siblings such as reputation_append_response or reputation_revoke_feedback, but the verb makes the function clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The prerequisite 'Requires an unlocked wallet' is stated, which is useful before attempting a write. However, there is no guidance on when to prefer this over reputation_append_response or reputation_revoke_feedback, and the closing tip about earning_opportunities is unrelated to usage of this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reputation_read_all_feedbackA
Read all feedback entries for an agent with optional tag filtering and pagination. Returns up to 20 entries per page. Pass nextCursor from the previous response to page. WARNING: Uses one RPC call per entry (N+1 pattern) — avoid calling for agents with large feedback sets without using cursor-based pagination. No wallet required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| tag1 | No | Filter by tag1 (exact match). Optional. | |
| tag2 | No | Filter by tag2 (exact match). Optional. | |
| cursor | No | Pagination cursor (index to start from). Default 0. | |
| agentId | Yes | Agent ID to read all feedback for | |
| includeRevoked | No | Include revoked feedback entries. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and delivers real behavioral facts: 20 entries per page, an N+1 RPC-per-entry cost warning, and that no wallet/auth is required. It omits what an entry looks like and whether revoked entries are excluded by default in behavior terms, but the cost and auth disclosures are substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose, page size, pagination mechanics and the cost warning are front-loaded and earn their place. The closing 'Tip: call earning_opportunities...' is unrelated promotional text that dilutes a tool definition and should be cut.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter read tool with no annotations and no output schema, the definition covers pagination and cost but leaves the returned entry shape and the effect of includeRevoked on results undescribed. The cursor/nextCursor inconsistency also leaves an agent unsure how to actually iterate pages.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so cursor, tag1/tag2, and includeRevoked are already documented and the baseline is 3. The description adds the page size and the existence of a next-page token, but it tells the agent to 'pass nextCursor from the previous response' while the schema's parameter is an integer 'cursor' index — a naming mismatch that could confuse an agent even though the schema remains authoritative.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read all feedback entries for an agent') plus scope modifiers (tag filtering, pagination, includes revoked control). It implies the difference from the sibling reputation_read_feedback via the word 'all' but never names that sibling or states the distinction explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one conditional usage rule — use cursor pagination when an agent has a large feedback set, because of the N+1 cost — which is genuinely actionable. It does not route the agent to alternatives (e.g. reputation_read_feedback for a single entry, reputation_get_feedback_count for just a count), so selection among the reputation_* family is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reputation_read_feedbackA
Read a specific feedback entry for an agent by index from the ERC-8004 reputation registry. Returns client address, value, decimals, tags, and timestamp. No wallet required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | Feedback index to read | |
| agentId | Yes | Agent ID to read feedback for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden: it correctly discloses this is a read with 'No wallet required' and enumerates the returned fields (client address, value, decimals, tags, timestamp). It says nothing about behavior on an out-of-range index, ordering of entries, or empty results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core is two tight, front-loaded sentences covering purpose and return fields. The trailing 'Tip: call earning_opportunities...' is an unrelated ad that does not earn its place and dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with no output schema, the description covers the source, the inputs, and the returned fields, which is nearly everything an agent needs. It falls short only on edge cases such as an invalid index or no feedback existing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented in the schema. The description's 'by index' and 'for an agent' restate the same mapping without adding format, range, or indexing-order semantics beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — read a specific feedback entry for an agent by index from the ERC-8004 reputation registry — which is enough to distinguish it from siblings like reputation_read_all_feedback and reputation_get_summary. The scope ('a specific ... by index') is precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Calling it 'a specific feedback entry ... by index' implies usage versus reading all feedback, but no sibling is named and no when/when-not conditions are stated. The appended tip about earning_opportunities is unrelated cross-promotion, not guidance for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reputation_revoke_feedbackA
Revoke a previously submitted feedback entry by index. Only the original submitter can revoke their feedback. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Fee preset ("low", "medium", "high") or micro-STX amount. Optional. | |
| index | Yes | Feedback index to revoke | |
| agentId | Yes | Agent ID the feedback was given for | |
| sponsored | No | Use sponsored transaction relay so a relay service pays fees instead of your wallet. Requires SPONSOR_API_KEY env var or wallet-level sponsorApiKey. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose two real behavioral constraints: submitter-only authorization and the unlocked-wallet requirement. It says nothing about on-chain fee implications, whether revocation is reversible, or what happens to responses attached to the revoked entry — significant omissions for a state-mutating transaction tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first three sentences are front-loaded and earn their place. The trailing tip pointing at earning_opportunities is unrelated boilerplate that dilutes the definition and can mislead an agent about the tool's scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, authorization, and wallet state, which is decent for a 4-parameter mutation tool. But with no annotations and no output schema, it should also address fee/sponsored behavior and the effect on any existing responses, leaving the definition adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters including fee and sponsored are already documented in the schema; baseline 3 applies. The description adds only that the index refers to a feedback entry the submitter previously created, which is minor clarification beyond the schema's 'Feedback index to revoke'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Revoke) plus resource (a previously submitted feedback entry) and the selector (by index). It is clearly distinguishable from siblings like reputation_give_feedback and reputation_append_response, which create rather than remove entries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the eligibility condition ('Only the original submitter can revoke their feedback') and the state prerequisite ('Requires an unlocked wallet'), which is exactly the context an agent needs before attempting the call. It does not name alternatives such as reputation_append_response for amending feedback, so it stops short of full when-vs-what-else routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reverse_bns_lookupB
Get the BNS domain names owned by an address.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Stacks address to lookup. Uses configured wallet if not provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. 'Get' implies a read-only lookup and it states the returned content as BNS domain names, but it does not mention output shape, rate limits, wallet requirements, or behavior when no names exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and sufficiently concise. The second sentence is an unrelated promotional tip that does not help invoke the tool, so a meaningful portion of the description does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool, the description identifies the operation and returned content. However, with no annotations and no output schema, it could do more to describe return shape or edge cases, and it lacks sibling differentiation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the address parameter is already fully documented, including the fallback to the configured wallet. The description adds no additional semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: get BNS domain names owned by an address. The direction of lookup is clear, which helps distinguish it from a forward name lookup, but it does not explicitly name the relevant sibling tools such as lookup_bns_name or list_user_domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. The only extra sentence, 'Tip: call earning_opportunities...', is unrelated cross-sell advice and does not help an agent choose this tool over lookup_bns_name, list_user_domains, or get_bns_info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runes_get_activityB
Get recent on-chain activity (mints, transfers, burns) for a specific Bitcoin Rune.
Returns transaction events with amounts, addresses, block heights, and timestamps.
Useful for monitoring rune distribution and trading activity.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| rune | Yes | Rune name (e.g., 'UNCOMMONGOODS' or 'UNCOMMON•GOODS') or numeric rune ID | |
| limit | No | Number of results to return (1-60, default: 20) | |
| offset | No | Number of results to skip for pagination (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden: it does disclose the shape of the returned events (amounts, addresses, block heights, timestamps), which is genuinely useful. However, it says nothing about ordering (newest-first?), whether results are capped/truncated beyond the limit parameter, latency, or that the call is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core is front-loaded and the return-shape sentence is efficient, but the trailing 'Tip: call earning_opportunities...' is cross-promotional and does not help an agent select or invoke this tool, weakening an otherwise tight definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, three-parameter, fully documented tool with no output schema, the description covers what is returned and why an agent would call it. Only ordering and truncation behavior of the event list remain undisclosed, which is a minor gap given the schema already explains pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — rune name/ID formats, limit range (1–60, default 20) and offset pagination are all documented in the input schema. The description adds no extra parameter semantics beyond restating that a specific rune is required, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource — fetching recent on-chain activity (mints, transfers, burns) for a given Bitcoin Rune — which is unambiguous. It doesn't explicitly contrast with the close sibling runes_get_address_activity, but the rune-scoped framing distinguishes it implicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for monitoring rune distribution and trading activity' implies a use case but gives no explicit when-to-use/when-not guidance and names no alternative for address-level or holder-level views, which are provided by siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runes_get_address_activityA
Get Bitcoin Rune transaction activity for a specific Bitcoin address.
Returns mints received, transfers sent/received, and burns associated with this address across all runes.
Address can be any Bitcoin address format (P2WPKH bc1q..., P2TR bc1p..., legacy 1..., etc.)
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results to return (1-60, default: 20) | |
| offset | No | Number of results to skip for pagination (default: 0) | |
| address | Yes | Bitcoin address to query rune activity for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral weight; it does disclose the return payload categories (mints received, transfers sent/received, burns across all runes), which is useful. However it says nothing about read-only safety, rate limits, permission needs, or result ordering, leaving gaps for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and return contents in two compact sentences, then adds the address-format note efficiently. The final 'Tip' sentence is promotional rather than operational and slightly dilutes the focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations, but the description compensates by naming the returned data categories and accepted address formats. Pagination and ordering behavior are left to the schema; overall enough for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description adds genuine value by spelling out accepted address formats (P2WPKH bc1q, P2TR bc1p, legacy 1...), which the schema's one-line address description does not. Pagination params are left to the schema, which is fine.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get Bitcoin Rune transaction activity') plus scope ('for a specific Bitcoin address') and enumerates the content returned (mints, transfers, burns). This cleanly separates it from siblings like runes_get_activity (global), runes_get_address_balances (balances, not activity), and runes_get_holders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the scope phrase 'for a specific address'; it never says when to prefer this over runes_get_activity or runes_get_address_balances. The trailing 'Tip: call earning_opportunities' is a cross-sell, not guidance about alternatives to this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runes_get_address_balancesA
Get all Bitcoin Rune balances for a Bitcoin address.
Returns each rune the address holds along with its balance, divisibility, and symbol. Useful for checking which runes a wallet owns.
Address can be any Bitcoin address format (P2WPKH bc1q..., P2TR bc1p..., legacy 1..., etc.)
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Bitcoin address to check rune balances for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden; it implies a read-only lookup through 'Get all' and 'Returns', and it names returned fields such as balance, divisibility, and symbol. However, it does not state whether the call has side effects, whether results are paginated, or what happens for addresses with no runes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core operation and return contents. The final earning_opportunities tip is somewhat tangential, but it does not obscure the primary invocation information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema, the description sufficiently explains what is returned and what address formats are accepted. It could be slightly more complete by describing empty-result behavior or result shape details, but no critical invocation information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, and the description adds useful meaning by specifying that the address can be any Bitcoin address format, with examples including P2WPKH, P2TR, and legacy addresses.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: getting Bitcoin Rune balances for a Bitcoin address, with the address scope clearly constraining the operation. It does not explicitly differentiate from the sibling get_rune_balances, but the address-specific framing makes the purpose mostly clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says the tool is useful for checking which runes a wallet owns, which implies its use case, but it gives no explicit when-to-use guidance or comparison against alternatives such as get_rune_balances. The earning_opportunities tip is unrelated to choosing this tool versus other balance tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runes_get_etchingA
Get details for a specific Bitcoin Rune by its name or numeric ID.
Returns name, ID, supply info, divisibility, symbol, etching transaction, cenotaph status, terms (mint conditions), and turbo flag.
Rune names use spacers (e.g., 'UNCOMMONGOODS' or 'UNCOMMON•GOODS').
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| rune | Yes | Rune name (e.g., 'UNCOMMONGOODS' or 'UNCOMMON•GOODS') or numeric rune ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the burden and does disclose the return payload in detail (supply, divisibility, symbol, etching tx, cenotaph status, mint terms, turbo flag), which is real behavioral value. It still omits safety profile (read-only), rate limits, and what happens when the rune is not found or the name is ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence, then a compact list of returned fields, then a format note — all earning their place. The closing 'Tip: call earning_opportunities' is promotional and unrelated to invoking this tool, which costs a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the description supplies the field-level result list an agent needs to decide whether this call answers its question. Remaining gaps (not-found behavior, read-only declaration) are minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'rune' parameter is already documented with example formats. The description's spacer note ('UNCOMMONGOODS' or 'UNCOMMON•GOODS') restates the schema rather than adding new meaning, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource+scope: 'Get details for a specific Bitcoin Rune by its name or numeric ID.' The word 'specific' plus the identifier-based lookup cleanly separates it from the sibling list/aggregate tools (runes_list_etchings, runes_get_holders, runes_get_activity).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the 'specific ... by name or ID' framing; there is no explicit when-to-use/when-not or named alternative such as runes_list_etchings for enumeration. The one explicit pointer ('call earning_opportunities') is an unrelated cross-sell rather than invocation guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runes_get_holdersA
Get the list of holders for a specific Bitcoin Rune.
Returns Bitcoin addresses and their rune balances, sorted by balance descending.
Supports pagination for runes with many holders.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| rune | Yes | Rune name (e.g., 'UNCOMMONGOODS' or 'UNCOMMON•GOODS') or numeric rune ID | |
| limit | No | Number of results to return (1-60, default: 20) | |
| offset | No | Number of results to skip for pagination (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does add real behavioral detail: the return payload contents, the descending balance sort order, and pagination support. It does not cover error behavior for an unknown rune, data freshness/indexing, or any rate limits, so it falls short of full disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences front-load the purpose and payload, and the sort order is stated up front. The trailing 'Tip' about earning_opportunities is a cross-sell that does not help an agent select or invoke this tool, costing a bit of tightness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with three fully documented parameters and no output schema, the description covers purpose, return shape, ordering, and pagination. Only edge-case behavior (invalid rune, empty results) is left unaddressed, which is minor for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — rune name/ID formats, the 1-60 limit with default 20, and offset are all documented in the schema. The description adds nothing parameter-specific beyond a generic mention of pagination, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get the list of holders for a specific Bitcoin Rune') and immediately clarifies the payload (addresses plus rune balances). It is clearly distinguishable from balance-oriented siblings such as get_rune_balances or get_token_holders by virtue of the 'holders' framing, though it never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the tool for enumerating a rune's holders. There is no explicit when-to-use/when-not-to-use guidance and no mention of the closely related runes_get_address_balances or runes_get_activity. The closing tip pushes an unrelated follow-up (earning_opportunities) rather than clarifying selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runes_list_etchingsA
List all Bitcoin Rune etchings (token deployments) with pagination.
Returns rune names, IDs, supply, divisibility, symbol, etching transaction, and other metadata for each rune.
Use runes_get_etching to get full details on a specific rune.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results to return (1-60, default: 20) | |
| offset | No | Number of results to skip for pagination (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It discloses the returned fields (names, IDs, supply, divisibility, symbol, etching tx) and that results are paginated, which is useful given there is no output schema; however it says nothing about read-only safety, authentication needs, rate limits, or ordering of results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and return contents are front-loaded and the sibling routing follows logically. The closing 'Tip: call earning_opportunities' is unrelated promotional content that does not help the agent invoke this tool and dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-param list endpoint with no output schema, the description supplies the return-field summary and the escalation path to the detail tool — enough to call it correctly. Missing only operational context (auth, ordering, rate limits) that an unannotated tool would ideally disclose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with limit (1-60, default 20) and offset (default 0) already fully documented in the schema. The description only echoes 'with pagination', adding no syntax, ordering, or guidance beyond what the schema provides — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List), a specific resource (Bitcoin Rune etchings / token deployments), and scope (paginated enumeration). It explicitly names the sibling runes_get_etching as the single-rune detail tool, so an agent can distinguish the two immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to runes_get_etching for full details on a specific rune, which is a genuine alternative-selection rule. It does not say when NOT to use this tool (e.g., that no name/symbol filtering is available beyond paging) — though the schema's two params imply it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sbtc_depositA
Deposit BTC to receive sBTC on Stacks L2.
This builds, signs, and broadcasts a Bitcoin transaction to the sBTC deposit address. After confirmation, sBTC tokens are minted to your Stacks address.
The transaction uses your wallet's Taproot address for the reclaim path. If the deposit fails, you can reclaim your BTC after the lock time expires.
By default, only uses cardinal UTXOs (safe to spend - no inscriptions). Set includeOrdinals=true to allow spending ordinal UTXOs (advanced users only).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount to deposit in satoshis (1 BTC = 100,000,000 satoshis) | |
| feeRate | No | Fee rate: 'fast' (~10 min), 'medium' (~30 min), 'slow' (~1 hr), or number in sat/vB | medium |
| maxSignerFee | No | Max fee the sBTC system can charge in satoshis (default: 80000 sats) | |
| includeOrdinals | No | Include ordinal UTXOs (contains inscriptions). Default: false (cardinal only). WARNING: Setting this to true may destroy valuable inscriptions! | |
| reclaimLockTime | No | Block height when reclaim becomes available if deposit fails (default: 950 blocks) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the whole behavioral burden and does well: it discloses that a real Bitcoin transaction is broadcast, that sBTC arrives only after confirmation, that the Taproot reclaim path exists with a lock-time fallback for failed deposits, and that the default UTXO policy avoids ordinals (with an explicit warning that includeOrdinals=true can destroy inscriptions). Gaps remain around operational requirements — wallet unlock state, BTC balance/fee implications, and expected confirmation latency — so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the outcome (BTC in, sBTC out), then mechanics, failure handling, and the ordinal warning in descending order of importance — a sensible funnel. The includeOrdinals sentence largely restates the schema's own warning, and the trailing 'Tip' is promotional rather than operational, so there is minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter, no-output-schema, no-annotation mutation tool, this covers what an agent needs to decide and act: what happens on chain, what happens on failure, spend-safety defaults, and a next step. Well above the minimum bar for a financial operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description earns an upgrade by tying includeOrdinals to the cardinal-vs-ordinal UTXO tradeoff and its destruction risk, and by linking reclaimLockTime to the failure/reclaim narrative. amount, feeRate, and maxSignerFee are left entirely to the schema, so it does not add value on every parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a specific verb and resource ('Deposit BTC to receive sBTC on Stacks L2') and the follow-up clarifies the full mechanic (build, sign, broadcast a Bitcoin tx that mints sBTC). It is unambiguous against sbtc_withdraw/sbtc_transfer, but it never names or distinguishes itself from the competing BTC-deposit sibling styx_deposit, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is clear — you call this when you want sBTC on L2 rather than holding BTC — and it supplies a conditional rule for includeOrdinals (default safe, set true only for advanced users). It also points to earning_opportunities as a follow-up step. It stops short of explicit when-not-to-use guidance or a comparison against styx_deposit, and never states the prerequisite that a funded, unlocked wallet is required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sbtc_deposit_statusC
Check the status of an sBTC deposit transaction from Emily API.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| txid | Yes | Bitcoin transaction ID of the deposit | |
| vout | No | Output index of the deposit (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden. It names the data source (Emily API) but says nothing about what states are returned (pending/confirmed/failed), latency, or behavior for an unknown or non-deposit txid. For a status lookup with zero annotation coverage this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is tight and front-loaded. The second sentence is a cross-sell tip that adds no information about this tool and dilutes an otherwise one-line definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should tell the agent what a status result looks like and how to interpret it. It does neither, leaving the agent unable to judge success versus an unknown/failed deposit from the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so txid and vout are already documented including the default for vout. The description adds no format hints (e.g., endianness of the txid, what vout identifies), so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Check the status of an sBTC deposit transaction') and names the upstream source (Emily API). It stops short of distinguishing itself from the close sibling sbtc_get_deposit_info, which reads as another way to look up deposit data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus sbtc_get_deposit_info, sbtc_withdrawal_status, or get_transaction_status. The only redirect offered is a promotional tip toward earning_opportunities, which is unrelated to disambiguating the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sbtc_get_balanceB
Get the sBTC balance for a wallet address.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Wallet address to check. Uses configured wallet if not provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden; it implies a read-only lookup but says nothing about whether the call hits the network, whether a missing address falls back to the configured wallet (only the schema says that), or what the returned amount looks like. For a low-risk single-value read, this is an acceptable but thin disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and wastes nothing. The trailing "Tip" is a cross-sell that does not help an agent invoke this specific tool, so it slightly dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read with no output schema, the description is minimally complete: an agent knows what to pass, but not what comes back — units (sats vs. sBTC), formatting, or error behavior when the address is invalid — all of which are unconstrained by an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single `address` parameter is fully documented in the schema, including the configured-wallet default. The description adds no meaning beyond that, which matches the baseline of 3 when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Get the sBTC balance") with a clear scope qualifier ("for a wallet address"), which separates it from the STX/BTC/token balance siblings. It never explicitly names those adjacent balance tools, so differentiation is achieved by the resource name alone rather than by routing language.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: read it when you need an sBTC balance. The one guidance sentence points at `earning_opportunities`, which is a downstream action, not an alternative for retrieving a balance, so it does not help an agent choose between this and `get_token_balance` or `sbtc_get_peg_info`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sbtc_get_deposit_infoA
Get information about how to deposit BTC to receive sBTC.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden; 'Get information' successfully implies a read-only, side-effect-free call. But it discloses nothing about what the info contains (deposit address, minimums, confirmation steps), whether a wallet must be unlocked or configured, or any network prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is stated in one front-loaded sentence. The trailing 'Tip' about earning_opportunities is a cross-sell that is only loosely related to depositing BTC and does not quite earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description must convey what the agent gets back, and it stays at the level of 'information.' For a zero-parameter info tool this is workable but leaves the agent unsure whether the response is instructions, an address, or config requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, and the empty object schema makes that unambiguous; there is nothing for the description to disambiguate. Baseline 4 applies for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get information about how to deposit BTC to receive sBTC') and makes the informational, non-mutating nature clear. It does not, however, distinguish itself from nearby siblings such as sbtc_deposit, sbtc_deposit_status, or sbtc_get_peg_info, which an agent could easily confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied ('how to deposit' suggests a pre-flight/learn step before sbtc_deposit), and no alternative or exclusion is named. The one pointer given routes to earning_opportunities, which is a different concern (yield), not a substitute for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sbtc_get_peg_infoB
Get sBTC peg information including total supply and peg ratio.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden. It does disclose the two main outputs and implies a read-only lookup, but says nothing about whether the peg ratio is on-chain or cached, how fresh it is, or whether any auth/network config (e.g. Stacks API key) is required. For a zero-parameter read this is acceptable but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The substantive content is a single front-loaded sentence with zero waste. The trailing promotional tip is the only sentence that does not help an agent invoke this tool, slightly diluting an otherwise tight definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must convey the return shape; it names total supply and peg ratio, which covers the essentials for a simple info getter. The word 'including' signals more fields exist but leaves them unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, which is the baseline-4 case. The description correctly implies a global, unfiltered query of the peg state with nothing to specify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get sBTC peg information') and names the two headline values returned: total supply and peg ratio. It does not distinguish itself from nearby siblings such as sbtc_get_balance or sbtc_get_deposit_info, so an agent must infer the split, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus sbtc_get_balance, sbtc_get_deposit_info, or styx_price. The second sentence ('Tip: call earning_opportunities...') is a cross-sell pointing at an unrelated tool rather than a condition that selects this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sbtc_initiate_withdrawalB
Initiate an sBTC peg-out to a Bitcoin L1 address.
Locks (amount + maxFee) of sBTC in the sBTC protocol and creates a withdrawal request. Signers later process the request and send BTC on L1.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Optional fee: 'low' | 'medium' | 'high' preset or micro-STX amount. | |
| amount | Yes | Amount to withdraw in satoshis | |
| maxFee | No | Maximum signer fee in satoshis | |
| sponsored | No | Use sponsored transaction relay so a relay service pays fees instead of your wallet. Requires SPONSOR_API_KEY env var or wallet-level sponsorApiKey. | |
| btcRecipientAddress | Yes | Bitcoin recipient address (P2PKH/P2SH/P2WPKH/P2WSH/P2TR) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It helpfully discloses that the tool locks amount plus maxFee and creates an asynchronous withdrawal request processed later by signers, but it does not cover permissions, irreversibility, fee/sponsor behavior, or what identifying result the caller receives.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the core action and mechanism. The earning_opportunities tip is somewhat tangential for a withdrawal tool, keeping it just short of fully concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers the core locking and asynchronous signer flow. It still leaves gaps around prerequisites, permissions, return value or request tracking, and failure/reversal behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds that amount and maxFee are locked during initiation, which is useful behavioral context, but it does not add significant meaning beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Initiate an sBTC peg-out to a Bitcoin L1 address.' It clearly distinguishes the action from deposit and status siblings, but it does not name or explain its relationship to close siblings like sbtc_withdraw or sbtc_withdrawal_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies when to use it: initiating an sBTC peg-out to Bitcoin L1. However, there is no explicit guidance on when to choose it over sbtc_withdraw or how to follow up with sbtc_withdrawal_status/sbtc_withdraw_status. The earning_opportunities tip does not clarify tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sbtc_transferB
Transfer sBTC tokens to a recipient address.
sBTC uses 8 decimals (same as Bitcoin). Example: To send 0.001 sBTC, use amount "100000" (satoshis).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Optional fee: 'low' | 'medium' | 'high' preset or micro-STX amount. If omitted, auto-estimated. | |
| memo | No | Optional memo message | |
| amount | Yes | Amount in satoshis (0.00000001 sBTC). Example: '100000' for 0.001 sBTC | |
| recipient | Yes | The recipient's Stacks address | |
| sponsored | No | Use sponsored transaction relay so a relay service pays fees instead of your wallet. Requires SPONSOR_API_KEY env var or wallet-level sponsorApiKey. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden for a value-moving mutation, yet it says nothing about irreversibility, confirmation, failure modes, or whether fees are deducted from the amount. The only added behavior detail is the decimals convention, which is really a parameter issue; the sponsored/fee mechanics live in the schema, not here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in one line and the decimals/satoshi note is genuinely useful for avoiding unit errors. The trailing tip about `earning_opportunities` is promotional and arguably does not earn its place in a transfer tool's definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-param mutation with 100% schema coverage and no output schema or annotations, the description covers purpose and unit semantics adequately. What is missing is risk context — that the transfer is irreversible and what happens if the fee is omitted — but the schema handles the rest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters (fee presets, memo, sponsored env requirement, amount) are already fully documented. The description's decimals explanation and 0.001 sBTC example restate what the `amount` schema entry already says, adding no net value; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Transfer sBTC tokens') with the target (recipient address), which is clear enough to distinguish it from transfer_stx or transfer_btc by asset name. However, it never explicitly contrasts itself with the many sibling transfer tools, so an agent must infer differentiation from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the verb 'transfer'; there is no explicit statement of when to use this versus transfer_token, transfer_stx, or sbtc_initiate_withdrawal, nor any prerequisite notes. The closing tip points at `earning_opportunities`, but that is a cross-sell rather than guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sbtc_withdrawB
Alias for sbtc_initiate_withdrawal. Initiates an sBTC peg-out request to BTC L1.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Optional fee: 'low' | 'medium' | 'high' preset or micro-STX amount. | |
| amount | Yes | Amount to withdraw in satoshis | |
| maxFee | No | Maximum signer fee in satoshis | |
| sponsored | No | Use sponsored transaction relay so a relay service pays fees instead of your wallet. Requires SPONSOR_API_KEY env var or wallet-level sponsorApiKey. | |
| btcRecipientAddress | Yes | Bitcoin recipient address (P2PKH/P2SH/P2WPKH/P2WSH/P2TR) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden for a fund-moving operation. It says a peg-out is initiated but omits irreversibility, signer fees/maxFee behavior, timing to BTC L1 confirmation, and the fact that settlement must be polled via a status tool — significant gaps for a value-transfer call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded: the alias and the core action come first. The trailing earning_opportunities tip is promotional and not needed to invoke this tool, slightly diluting focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-annotation, no-output-schema mutation of BTC-denominated assets, the description gives the what but not the lifecycle: no statement of what is returned (tx id?), no pointer to sbtc_withdrawal_status for completion, and no failure modes. The fully documented schema covers inputs, so this is adequate but clearly incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (amount in satoshis, btcRecipientAddress types, fee preset vs micro-STX, maxFee, sponsored), so the schema already does the parameter work. The description adds nothing beyond it, which is the baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: initiates an sBTC peg-out request to BTC L1. It also declares itself an alias for sbtc_initiate_withdrawal, which lets an agent distinguish it from the near-named siblings sbtc_withdrawal_status / sbtc_withdraw_status and from sbtc_transfer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The alias note tells the agent this is interchangeable with sbtc_initiate_withdrawal, which usefully prevents redundant discovery, but there is no explicit guidance on when to prefer one over the other, no preconditions (sBTC balance, funded wallet), and no mention of how to track the withdrawal afterwards.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sbtc_withdrawal_statusB
Check status of an sBTC withdrawal request by requestId or initiating txid.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| txid | No | Initiate-withdrawal transaction ID (used to resolve requestId) | |
| requestId | No | Withdrawal request ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden: 'Check status' clearly signals a non-mutating read, which is useful. Beyond that it says nothing about what status values are returned, whether a request can be pending/failed, or any auth needs, so an agent gets safety signal but no behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and waste-free, but the second sentence is a promotional pointer to `earning_opportunities` that does nothing to help select or invoke this tool — a sentence that fails to earn its place in a status-check definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with full schema coverage this is nearly sufficient, but with no annotations and no output schema the agent is left with no idea what a returned 'status' looks like or how to interpret a pending vs. completed withdrawal, which is exactly what a status tool exists to convey.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both `txid` and `requestId` are already documented in detail, including that txid resolves the requestId. The description only restates these two options and adds no syntax, format, or mutual-exclusivity guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource (check status of an sBTC withdrawal request) and names the two supported identifiers. It does not, however, disambiguate from the near-identically named sibling `sbtc_withdraw_status` also present in the tool list, which is the main source of potential mis-selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the two lookup keys and thereby implies the usage (poll a withdrawal after initiating it), but never says when to use this versus `sbtc_withdraw_status`, `sbtc_initiate_withdrawal`, or `get_transaction_status`. No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sbtc_withdraw_statusC
Alias for sbtc_withdrawal_status. Check the status of an sBTC peg-out (withdrawal) request.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| txid | No | Initiate-withdrawal transaction ID (used to resolve requestId) | |
| requestId | No | Withdrawal request ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and mostly doesn't. 'Check the status' implies a read-only operation, but nothing is said about what happens when the request isn't found, how pending/failed states are represented, or what data comes back.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The alias note and purpose are front-loaded and tight, but the trailing 'Tip: call earning_opportunities' sentence is promotional and unrelated to this tool, so it does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A status-query tool with no annotations and no output schema needs the description to explain return values (status states, identifiers) and the absence-of-record behavior; it does neither. The alias pointer is useful but insufficient for the tool's full surface.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the txid and requestId semantics (including that txid resolves the requestId) are already documented in the schema. The description adds nothing about either parameter, which is acceptable at full coverage but earns only the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: check the status of an sBTC peg-out (withdrawal) request, and explicitly labels itself as an alias for sbtc_withdrawal_status. An agent can tell what it does, though it doesn't say whether this alias behaves any differently from the canonical tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to call this versus the identically-purposed sibling sbtc_withdrawal_status, nor versus sbtc_initiate_withdrawal/sbtc_withdraw. The only 'tip' points to earning_opportunities, which is unrelated to choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scaffold_x402_ai_endpointA
Create a complete x402 paid AI API project with OpenRouter integration.
This creates a NEW PROJECT FOLDER with everything needed to deploy a pay-per-use AI API:
Full Hono.js application with x402 payment middleware
OpenRouter integration for Claude, GPT-4, Llama, etc.
Ready for deployment to Cloudflare Workers
What Gets Created
A folder named {projectName} containing:
src/index.ts - Hono app with your x402-protected AI endpoints
src/x402-middleware.ts - Payment verification (uses native relay fetch)
src/openrouter.ts - OpenRouter API client
wrangler.jsonc - Cloudflare Worker config
.dev.vars - Local dev variables (needs OPENROUTER_API_KEY)
README.md - Documentation
AI Types
chat: General chat/Q&A
completion: Text completion
summarize: Summarize text
translate: Translate text
custom: Custom system prompt
Quick Start After Generation
cd {projectName}
npm install
# Edit .dev.vars with RECIPIENT_ADDRESS and OPENROUTER_API_KEY
npm run devTip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network for payments (default: mainnet) | mainnet |
| relayUrl | No | Custom relay URL (default: https://x402-relay.aibtc.com) | |
| endpoints | Yes | Array of AI endpoint configurations | |
| outputDir | Yes | Directory where the project folder will be created (e.g., '/Users/me/projects' or '.') | |
| projectName | Yes | Project name - a folder with this name will be created (e.g., 'my-ai-api') | |
| defaultModel | No | Default OpenRouter model for all endpoints (default: anthropic/claude-3-haiku) | anthropic/claude-3-haiku |
| recipientAddress | No | Stacks address to receive payments. If not provided, uses your configured wallet address or must be set in .dev.vars |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that a NEW folder named {projectName} is written into outputDir, lists the exact files created, and flags that .dev.vars requires OPENROUTER_API_KEY and RECIPIENT_ADDRESS. It omits overwrite behavior if the folder already exists and the return shape, which keeps it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Content is front-loaded with a clear one-line purpose followed by structured sections (What Gets Created, AI Types, Quick Start), and every section is scannable. The trailing 'Tip: call earning_opportunities' is off-topic promotional noise, and the file listing approaches verbosity, preventing a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a scaffold tool with no output schema and no annotations, the description is largely complete: it covers the file tree, the required secrets, supported AI types, and next steps. Gaps remain on error/overwrite handling and the return value (what the tool reports back after scaffolding), so it is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters, making 3 the baseline. The description adds some value by explaining what each aiType means semantically (chat/completion/summarize/translate/custom) and how the projectName folder is used, but it does not cover recipientAddress fallback behavior or the network/relayUrl implications in any depth.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Create a complete x402 paid AI API project with OpenRouter integration') and enumerates exactly what gets produced. It distinguishes itself from scaffold_x402_endpoint only implicitly (AI/OpenRouter focus) rather than naming the sibling, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Quick Start After Generation' block gives post-generation steps (cd, npm install, edit .dev.vars, npm run dev), which implies when this tool fits. However, there is no explicit when-to-use/when-not guidance and no contrast with the near-identical sibling scaffold_x402_endpoint, so an agent must infer the choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scaffold_x402_endpointA
Create a complete x402 paid API project as a Cloudflare Worker.
This creates a NEW PROJECT FOLDER with everything needed to deploy a pay-per-use API:
Full Hono.js application with x402 payment middleware
Ready for deployment to Cloudflare Workers
Based on production patterns from x402-api and stx402
What Gets Created
A folder named {projectName} containing:
src/index.ts - Hono app with your x402-protected endpoints
src/x402-middleware.ts - Payment verification (uses native relay fetch)
wrangler.jsonc - Cloudflare Worker config with staging/production envs
package.json - Dependencies including hono (no x402-stacks dependency)
.dev.vars - Local dev variables (pre-filled if you have a wallet)
README.md - Documentation
Pricing Tiers
Use tiers for consistent pricing:
simple/standard: 0.001 STX
ai: 0.003 STX
heavy_ai: 0.01 STX
storage_read: 0.0005 STX
storage_write: 0.001 STX
Quick Start After Generation
cd {projectName}
npm install
npm run devTip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network for payments (default: mainnet) | mainnet |
| relayUrl | No | Custom relay URL (default: https://x402-relay.aibtc.com) | |
| endpoints | Yes | Array of endpoint configurations | |
| outputDir | Yes | Directory where the project folder will be created (e.g., '/Users/me/projects' or '.') | |
| projectName | Yes | Project name - a folder with this name will be created (e.g., 'my-x402-api') | |
| recipientAddress | No | Stacks address to receive payments. If not provided, uses your configured wallet address or must be set in .dev.vars |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses that a NEW folder is created on disk, lists every generated file, notes `.dev.vars` is pre-filled only if a wallet exists, and gives the deployment target. It omits what happens if the target folder already exists (overwrite/error) and whether generation makes any network calls to the relay.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core one-sentence purpose, then organized into scannable sections (What Gets Created, Pricing Tiers, Quick Start). The file-by-file listing is long but earns its place for a scaffolding tool; the closing `earning_opportunities` tip is the one piece that does not serve this tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter generator with no annotations and no output schema, the description supplies what is generated, where, and how to run it. It falls short on the return side — with no output schema, the description should say what the tool reports back (created path, success/failure) — and on failure modes such as an existing folder.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the description mostly repeats structured information. It does add real value with the pricing-tier table, which maps tier enum values to concrete STX amounts that the schema's enum list does not provide, but it says nothing about `outputDir`, `relayUrl`, or `recipientAddress` behavior beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: create a complete x402 paid API project as a Cloudflare Worker, and enumerates exactly what the generated project contains. The one gap is sibling differentiation — `scaffold_x402_ai_endpoint` appears in the sibling list and is presumably close in function, yet the description never states how this differs (e.g., generic endpoints vs. AI-specific).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the framing (you want to stand up a pay-per-use API) and a Quick Start block tells the agent what to do after generation, but there is no explicit when-to-use/when-not, no prerequisites, and no routing between this tool and `scaffold_x402_ai_endpoint`. The trailing `earning_opportunities` tip is unrelated to selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schnorr_sign_digestA
Sign a raw 32-byte digest with Schnorr (BIP-340) using the wallet's Taproot private key. Use for Taproot script-path spending, multisig coordination, or any case where you need a BIP-340 Schnorr signature over a pre-computed hash (e.g., BIP-341 sighash). WARNING: This signs raw digests that cannot be human-verified — use confirmBlindSign=true after reviewing the digest. A signed sighash can authorize a Bitcoin spend the spending limit never sees, so the user must also enable it with AIBTC_ALLOW_BLIND_SIGN=true in this server's config. Returns a 64-byte signature and the x-only public key. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| digest | Yes | 32-byte hex-encoded digest to sign (e.g., BIP-341 transaction sighash) | |
| auxRand | No | Optional 32-byte hex auxiliary randomness for BIP-340 (improves side-channel resistance) | |
| confirmBlindSign | No | Set to true to confirm you have reviewed the digest and accept the risk of signing a raw hash. Default is false, which returns a warning with the digest for review before signing. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses the blind-signing hazard, the confirmBlindSign gate, the server-side env flag that must be enabled, and the wallet-unlock requirement. It also states the return payload (64-byte signature plus x-only pubkey), which is not otherwise documented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then the warning, then the return contract — the ordering is correct and nearly every sentence earns its place. The appended 'Tip: call earning_opportunities' is unrelated promotional content and dilutes an otherwise tight definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description specifies the return value and the exact length of the signature, plus the state prerequisites (unlocked wallet, config flag). An agent has everything needed to decide whether to call it and what to expect back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description adds real meaning by framing confirmBlindSign as a review-then-confirm gate rather than a bare boolean, and by tying digest to the BIP-341 sighash case. auxRand is left entirely to the schema, which keeps it just short of a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource+scheme: sign a raw 32-byte digest with Schnorr BIP-340 using the wallet's Taproot key. This immediately separates it from message-signing siblings (btc_sign_message, sip018_sign) and from schnorr_verify_digest.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete use cases (Taproot script-path spending, multisig coordination, BIP-341 sighash) and a hard prerequisite (unlocked wallet, AIBTC_ALLOW_BLIND_SIGN=true). It does not name the sibling alternative for cases better served by a message-signing tool, so it stops short of full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schnorr_verify_digestA
Verify a BIP-340 Schnorr signature over a 32-byte digest. Takes the digest, signature, and public key, returns whether the signature is valid. Use for verifying Taproot signatures from other agents in multisig coordination.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| digest | Yes | 32-byte hex-encoded digest that was signed | |
| publicKey | Yes | 32-byte hex-encoded x-only public key of the signer | |
| signature | Yes | 64-byte hex-encoded BIP-340 Schnorr signature |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the return behavior ('returns whether the signature is valid'), which is the key trait for a verifier, but says nothing about failure modes (malformed hex, out-of-range key, invalid signature vs. error) or confirming that the call is side-effect free.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are tight and front-loaded, but the closing 'Tip: call `earning_opportunities`...' is unrelated promotional content that does not help an agent call this tool and dilutes an otherwise clean definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter pure verification call with a fully documented schema and no output schema, the description covers what the tool does, the return semantics, and a usage context. Only edge-case/error behavior is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each of the three parameters is documented with byte length, hex encoding, and meaning, so the schema does the heavy lifting. The description only restates the parameter list ('takes the digest, signature, and public key') without adding constraints or format guidance, which is baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Verify a BIP-340 Schnorr signature over a 32-byte digest') with enough technical specificity that an agent can distinguish it from message-verification siblings like btc_verify_message or co-signature tools like taproot_verify_cosig. It does not name any sibling explicitly, so differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use for verifying Taproot signatures from other agents in multisig coordination' gives a concrete usage context, which is more than most definitions offer. It provides no when-not conditions and does not contrast with the several other verify tools (sip018_verify, taproot_verify_cosig, stacks_verify_message) that an agent could easily confuse it with.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_inbox_messageA
⛔ DEPRECATED — do not use. Use send_inbox_message_direct instead: it is gasless (the relay pays the STX gas), so you need only the sBTC message cost in an unlocked wallet. Mainnet only.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Message content (max 500 characters) | |
| recipientBtcAddress | Yes | Recipient's Bitcoin address (bc1...) | |
| recipientStxAddress | Yes | Recipient's Stacks address (SP...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description's most valuable disclosure is deprecation status, and it delivers that plus a contrast implying this path carries an STX gas burden. However it never says whether calling it still works or fails, nor what it costs or destroys, so the behavior of this tool itself remains undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The deprecation warning and the redirect are front-loaded and stated crisply in two sentences. The closing tip promoting earning_opportunities is unrelated to invoking this tool and is the one line that does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deprecation stub with a fully documented 3-parameter schema and no output schema, the essential information — don't call this, call that instead, here's why — is present. Only the absence of any statement about what happens if it is called anyway keeps it from being complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters carry their own descriptions (BTC address, STX address, content max 500 chars), so the schema does the work. The description adds no parameter guidance — notably nothing about the recipient needing to match on both address fields — so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description never states what this tool itself does — the reader must infer "send an inbox message" from the name alone. It is explicit that the tool is deprecated and does name the intended replacement, which disambiguates it from send_inbox_message_direct, but the actual operation is never described in words.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an unambiguous when-not-to-use ("⛔ DEPRECATED — do not use"), names the exact alternative, and supplies the reason a caller should prefer it (gasless, relay pays STX gas, only sBTC cost required, mainnet only). Nothing about tool selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_inbox_message_directA
Send a paid x402 message to another agent's inbox on aibtc.com. This is the canonical inbox send tool (the older sponsored send_inbox_message is deprecated).
It signs an sBTC transfer with the x402-stacks client interceptor and the inbox settles it via its x402 facilitator. When the inbox offers sponsorship (402 extra.feePayer), the transfer is gasless — you pay only the sBTC message cost. Otherwise you also pay your own STX gas fee.
Requires an unlocked wallet holding sBTC (message cost), plus STX for gas when the inbox does not sponsor. Mainnet only.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Message content (max 500 characters) | |
| recipientBtcAddress | Yes | Recipient's Bitcoin address (bc1...) | |
| recipientStxAddress | Yes | Recipient's Stacks address (SP...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well: it discloses that this is a paid write (sBTC transfer), that gas may be sponsored (402 extra.feePayer) making it gasless, and that the wallet must be unlocked on mainnet. It stops short of describing what success/failure looks like or whether the message is irreversibly inscribed, so a 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and sibling deprecation are front-loaded, followed by the payment/gas mechanics and prerequisites. Each sentence adds signal, though the closing 'earning_opportunities' tip is tangential to invoking this tool and could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param paid-mutation tool with no annotations and no output schema, the description covers the essentials: cost model, sponsorship behavior, wallet state, and network. It omits failure modes and any indication of what the tool returns on success, which is the only meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so recipientBtcAddress, recipientStxAddress, and content (max 500 chars) are already documented. The description adds no per-parameter detail such as format guidance or why both a BTC and an STX address are required; baseline 3 applies when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (send a paid x402 message to another agent's inbox on aibtc.com) and explicitly distinguishes itself from the deprecated sibling send_inbox_message. An agent can identify the canonical tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the deprecated alternative (send_inbox_message) and mandates this one instead, then lists concrete preconditions: unlocked wallet holding sBTC, STX for gas when unsponsored, and mainnet only. The selection and eligibility conditions are explicit rather than inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_hiro_api_keyA
Save a Hiro API key to ~/.aibtc/config.json for authenticated Hiro API requests. Authenticated requests get higher rate limits than public (unauthenticated) requests. Get a free API key at https://platform.hiro.so/
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your Hiro API key - WARNING: sensitive value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the burden. It usefully discloses persistence to ~/.aibtc/config.json and the downstream rate-limit effect. It does not say whether an existing key is overwritten, whether the key is validated before writing, or whether a restart is needed for the new key to take effect — all material for a config-mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first three sentences are tight and front-loaded with the action and destination. The trailing 'Tip: call earning_opportunities...' is unrelated promotional content that does not help an agent decide whether to persist a key, and it dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter config tool with no output schema, the description covers the action, the file written, the benefit, and where to get a key — enough to invoke correctly. The missing piece is overwrite/idempotency behavior, which an agent may care about when a key is already set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the apiKey property is documented with a sensitivity warning, so the baseline is 3. The description adds only the acquisition URL; it says nothing about accepted key format or validation behavior beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource: 'Save a Hiro API key to ~/.aibtc/config.json', with the destination file named explicitly. The verb alone separates it from the get_hiro_api_key / delete_hiro_api_key siblings, but the description never names those alternatives to confirm the split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear condition for use: authenticated requests get higher rate limits than unauthenticated ones, so an agent knows this is the step to take before high-volume Hiro calls. It also says where to obtain a free key. It stops short of stating when not to use it (e.g. a key is already configured) or pointing at get_hiro_api_key to check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_stacks_api_urlA
Point all Stacks API requests at a custom node instead of the default Hiro API. Use this if you run your own stacks-blockchain-api node (default port 3999) or use a third-party provider. The URL should serve the same /v2/ and /extended/v1/ endpoints as api.hiro.so. Example: http://localhost:3999
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Base URL of your Stacks API node (e.g. http://localhost:3999) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden, and it does disclose the key side effect: this redirects ALL Stacks API requests globally, not just one call. It also gives the compatibility requirement (must serve /v2/ and /extended/v1/). It leaves gaps on persistence (does it survive restart?), whether it takes effect immediately, and validation/rejection behavior for a bad URL.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core is well front-loaded: action, when to use, URL requirements, example. However, the closing 'Tip: call earning_opportunities to see how to put your assets to work' is unrelated promotional content that does not help an agent decide whether or how to call this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter config setter with no output schema, the description covers purpose, prerequisites, and URL format well enough to call correctly. Missing pieces are persistence/revert semantics and whether the change is immediately effective — useful for an agent configuring an environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100% (url, uri format, example), so the baseline is 3; the description adds genuinely new constraints beyond the schema — the node must expose the same /v2/ and /extended/v1/ endpoints as api.hiro.so, and the conventional port 3999. That is useful semantic guidance the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Point all Stacks API requests at a custom node') and names the default it replaces ('instead of the default Hiro API'), so its effect is unambiguous. It is clearly distinguishable from the get_/delete_stacks_api_url siblings by scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives the trigger conditions: run your own stacks-blockchain-api node or use a third-party provider. It stops short of naming the counterpart tools (get_stacks_api_url, delete_stacks_api_url) or stating when not to use it / how to revert, so it misses the top tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sip018_hashA
Compute the SIP-018 message hash without signing. Returns the full encoded hash, domain hash, and message hash. Useful for preparing data for on-chain verification or multi-sig coordination. Does not require an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain binding for the hash | |
| message | Yes | The structured data as a JSON object. Use type hints for explicit types: {type: 'uint', value: 100}, {type: 'principal', value: 'SP...'}, etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It discloses that the operation is pure computation requiring no unlocked wallet, and names the returned hashes – valuable behavioral context. It doesn't discuss determinism or error cases for malformed type hints, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and return values, tight sentences otherwise. The trailing 'Tip: call earning_opportunities...' is unrelated promotional content that doesn't earn its place, a minor deduction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter hash-computation tool with no output schema, the description covers purpose, return shape, and the no-wallet requirement. Sufficient to invoke correctly, though nested-object handling relies entirely on the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents domain fields and the message type-hint convention. The description adds no parameter detail beyond what's in the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Compute') plus resource ('SIP-018 message hash') with an explicit negation ('without signing') that cleanly separates it from the sibling sip018_sign and sip018_verify. The description also enumerates exactly what is returned (encoded hash, domain hash, message hash).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the use case ('preparing data for on-chain verification or multi-sig coordination') and the key condition ('without signing', 'does not require an unlocked wallet'), which implicitly routes the agent away from sip018_sign. It stops short of an explicit when-not/alternative statement but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sip018_signA
Sign structured Clarity data using SIP-018 standard. Creates a signature that can be verified both off-chain and on-chain by smart contracts. Use cases: meta-transactions, off-chain voting, permits, proving address control. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain binding for the signature. Prevents cross-app and cross-version replay. | |
| message | Yes | The structured data to sign as a JSON object. Use type hints for explicit types: {type: 'uint', value: 100}, {type: 'principal', value: 'SP...'}, etc. Implicit conversion: strings->utf8, numbers->int, booleans->bool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose the unlocked-wallet prerequisite and the dual verification property. It omits whether signing is deterministic, how domain binding prevents replay (left to schema), and what happens if the wallet is locked or the domain omits a verifying contract.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The tool content is front-loaded and efficient, but the trailing 'Tip: call earning_opportunities' is unrelated promotional padding that does not help an agent invoke this signing tool and dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an unannotated signing tool with a nested 2-parameter schema and no output schema, the description covers purpose, use cases, and the wallet prerequisite. It never states what is returned (signature format/encoding), which an agent needs in order to chain it into verify or contract calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the nested domain/message semantics (type hints, implicit conversions, replay protection) are fully documented there. The description adds no meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Sign') plus resource ('structured Clarity data using SIP-018 standard') and clarifies the output is a signature verifiable off-chain and on-chain. This clearly separates it from siblings sip018_verify and sip018_hash.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Lists concrete use cases (meta-transactions, off-chain voting, permits, proving address control) and states the prerequisite of an unlocked wallet. It does not, however, name the sibling alternatives (sip018_hash to build the digest, sip018_verify to check it) or say when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sip018_verifyA
Verify a SIP-018 signature and recover the signer's address. Takes the verification hash (from sip018_sign or sip018_hash 'verification' field) and the signature, then recovers the public key and derives the signer's Stacks address.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| signature | Yes | The signature in RSV format (65 bytes hex from sip018_sign) | |
| messageHash | Yes | The SIP-018 verification hash (from sip018_sign/sip018_hash 'verification' field). This is sha256(prefix || domainHash || messageHash). | |
| expectedSigner | No | Optional: expected signer address to verify against. If provided, returns whether the signature is valid for this signer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the core behavior: recovering the public key and deriving the signer's Stacks address. It does not state whether the operation is purely read-only, what errors occur on invalid signatures, or how the optional expectedSigner parameter changes the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is short and front-loaded, clearly stating the verification and recovery behavior first. However, the trailing 'Tip: call earning_opportunities...' sentence is unrelated to invoking this tool and does not earn its place, slightly reducing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There are no annotations and no output schema, so the description should explain behavior and returns more fully. It covers the primary input source and the recovered address, but it does not describe the response shape or clarify what is returned when expectedSigner is supplied, leaving an important gap for a verification tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description reinforces the source of messageHash from sip018_sign or sip018_hash, but this repeats the schema and it omits the optional expectedSigner parameter entirely. The baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Verify a SIP-018 signature and recover the signer's address.' It also names the related sip018_sign and sip018_hash tools as the source of the required verification hash, which distinguishes this operation from generic message or digest verification siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives prerequisite context by stating the verification hash comes from sip018_sign or sip018_hash 'verification' field. However, it does not explain when to use this tool versus siblings such as stacks_verify_message, btc_verify_message, or schnorr_verify_digest, leaving the choice to be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
souldinals_display_soulA
Parse and display soul traits from a specific inscription.
Fetches the inscription content from Unisat and extracts structured soul traits:
name: first H1 heading
description: first paragraph after H1
values: list items under 'Values' or 'Core Values' sections
focusAreas: list items under 'Focus' or 'Focus Areas' sections
sections: all named H2/H3 sections
Also returns raw Markdown content.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| inscriptionId | Yes | Inscription ID (format: {txid}i{index}) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It usefully explains that it fetches from Unisat, applies Markdown-parsing heuristics for name/description/values/focusAreas/sections, and returns raw Markdown. It does not disclose failure behavior for invalid IDs or Unisat outages, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the bulleted extraction rules are efficient, clarifying exactly what the return payload contains. The closing earning_opportunities tip is promotional and not relevant to invoking this tool, which is the only meaningful waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description does a good job explaining the returned structured traits plus raw Markdown. It is nearly complete for a simple read-only parse/display tool, though it omits error and external-dependency failure behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the sole inscriptionId parameter already documents the required {txid}i{index} format. The description does not add format, constraints, or validation semantics beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb + resource: parse and display soul traits from a specific inscription. It also enumerates the exact traits extracted, making the purpose concrete. It does not explicitly contrast with sibling tools like souldinals_load_soul or souldinals_list_souls, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies you need a specific inscription ID, but gives no explicit when-to-use guidance, no exclusions, and no routing relative to the souldinals_load_soul, souldinals_list_souls, or souldinals_inscribe_soul siblings. The trailing tip to call earning_opportunities is unrelated to selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
souldinals_inscribe_soulA
Inscribe a soul.md as a child inscription - STEP 1: Broadcast commit transaction.
Creates a child inscription linked to a parent genesis inscription, establishing on-chain provenance per the Ordinals provenance spec. Content type is always text/markdown.
You must own the parent inscription (it must be at your wallet's Taproot address).
This broadcasts the commit tx and returns immediately. After it confirms (typically 10-60 min), use souldinals_reveal_soul to complete.
Returns: commitTxid, revealAmount, contentBase64 (save all for souldinals_reveal_soul)
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| feeRate | No | Fee rate: 'fast' (~10 min), 'medium' (~30 min), 'slow' (~1 hr), or number in sat/vB (default: medium) | |
| soulContent | Yes | The soul.md content as a string (Markdown text). Will be inscribed as text/markdown. | |
| parentInscriptionId | Yes | Genesis parent inscription ID (format: {txid}i{index}). You must own this inscription. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present the description carries the full burden, and it does most of it well: it discloses the broadcast side effect, that the call returns immediately rather than waiting for confirmation, the 10-60 minute confirmation window, and the fixed content type. It stops short of stating that the commit spends real BTC/fees or what happens if the commit is never revealed, but the core behavioral profile is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The step label and the commit/reveal split are front-loaded, and the 'Returns:' line is compact and actionable. The trailing 'Tip: call earning_opportunities' is unrelated promotional content that does not help invoke this tool and slightly dilutes the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description compensates by naming the exact return fields (commitTxid, revealAmount, contentBase64) and instructing the agent to preserve them for the reveal step. Combined with the prerequisite and timing info, an agent has everything needed to call this correctly and hand off to the next tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline would be 3, but the description adds real meaning: parentInscriptionId carries an ownership and Taproot-address constraint, and soulContent is pinned to text/markdown regardless of input. The feeRate parameter is left entirely to the schema, which is acceptable given full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Inscribe a soul.md as a child inscription') and immediately narrows scope to STEP 1 of a two-step flow, with a clear note that content type is always text/markdown. An agent can distinguish this from inscribe_child, souldinals_reveal_soul, and the plain inscribe tool without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly sequences the workflow: this tool broadcasts and returns, then 'After it confirms (typically 10-60 min), use souldinals_reveal_soul to complete.' It also states a hard precondition (you must own the parent inscription and it must sit at your wallet's Taproot address), which is exactly the kind of when-to-use/when-not information that prevents failed calls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
souldinals_list_soulsA
List all soul inscriptions (text/markdown) owned by a Taproot address.
Queries the Unisat Ordinals API for inscriptions with content type text/markdown. If no address is provided, uses the current wallet's Taproot address.
Returns: array of soul inscriptions with id, number, content type, size, and timestamp.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Taproot (bc1p...) address to query. Omit to use the current wallet's Taproot address. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full load and does reasonably well: it names the upstream data source (Unisat Ordinals API), states the read-only listing behavior, discloses the wallet-address fallback, and enumerates the returned fields. Missing only rate limits or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then source, then default behavior, then returns. The closing 'Tip: call earning_opportunities' is promotional rather than definitional, but it is short and routing-relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only list with no output schema, the description covers source, defaulting behavior, and return shape, which is everything needed to call it correctly. Only edge cases and pagination/limits are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single address parameter at 100% coverage, including the exact same 'omit to use wallet Taproot address' semantics. The description therefore adds no meaning beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource plus a meaningful qualifier: soul inscriptions of content type text/markdown owned by a Taproot address. That distinguishes it from the generic get_inscriptions_by_address sibling without naming it, so the differentiation is inferable but not explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Covers one conditional ('if no address is provided, uses the current wallet's Taproot address') which is useful call guidance. However, it never says when to use this instead of get_inscriptions_by_address or get_ordinal_utxos, so sibling selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
souldinals_load_soulA
Load and display the full content of the oldest soul inscription from a Taproot address.
Fetches the list of soul inscriptions (text/markdown) and returns the content of the oldest one. If no address is provided, uses the current wallet's Taproot address.
Returns: inscription metadata and full Markdown content.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Taproot (bc1p...) address to query. Omit to use the current wallet's Taproot address. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It makes clear this is a read/fetch operation, specifies which inscription is selected, and describes the return value. It does not cover failure modes or wallet-unlock requirements, but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and return behavior. The final tip about earning_opportunities is tangential to invocation but does not obscure the main instructions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single optional-parameter read tool with no output schema, the description is largely complete: it covers the operation, default address behavior, and return content. It could say more about error handling or empty results, but nothing critical for basic invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the address parameter is already fully documented. The description adds the same default-address behavior found in the schema, providing no extra semantic detail beyond that baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: load/display the oldest soul inscription from a Taproot address. It clearly explains the selection rule (oldest) and default address fallback, though it does not explicitly distinguish itself from siblings like souldinals_list_souls or souldinals_display_soul.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied: use this to retrieve the oldest soul's content, optionally specifying a Taproot address. However, it does not state when to use this versus souldinals_list_souls or souldinals_display_soul, nor does it mention prerequisites such as wallet availability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
souldinals_reveal_soulA
Complete a soul inscription - STEP 2: Broadcast reveal transaction.
Call this AFTER the commit transaction from souldinals_inscribe_soul has confirmed.
Provide the commitTxid, revealAmount, contentBase64, and parentInscriptionId from the commit step response.
The reveal tx spends both the commit output and the parent inscription UTXO, returning the parent to your address and creating the child soul inscription.
Returns: inscriptionId ({revealTxid}i0) on success
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| feeRate | No | Fee rate for reveal tx (default: medium) | |
| commitTxid | Yes | Transaction ID of the confirmed commit transaction (from souldinals_inscribe_soul) | |
| revealAmount | Yes | Amount in the commit output (from souldinals_inscribe_soul response) | |
| contentBase64 | Yes | Base64-encoded soul.md content (from souldinals_inscribe_soul response) | |
| parentInscriptionId | Yes | Parent inscription ID (must match the commit step) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it explains that the reveal tx spends both the commit output and the parent inscription UTXO, returns the parent to the caller's address, and creates a child inscription. It doesn't discuss fee selection defaults, failure/retry behavior, or irreversibility of the broadcast, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well front-loaded: purpose, sequencing, inputs, and return value each get one compact statement. The closing 'Tip' about earning_opportunities is tangential sales copy rather than tool guidance, which costs a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by stating the return value shape (inscriptionId as {revealTxid}i0). Combined with the two-step workflow and the UTXO-spending behavior, an agent has what it needs, though fee handling and error cases are left to the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is already documented in the schema, including the note that values come from the commit step. The description repeats that these four values come 'from the commit step response' but adds no extra semantics, and the optional feeRate parameter is not mentioned at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource up front ('Complete a soul inscription - STEP 2: Broadcast reveal transaction') and labels itself as the second half of a two-call flow, making it unambiguously distinct from the commit-phase sibling souldinals_inscribe_soul.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the precondition ('Call this AFTER the commit transaction from souldinals_inscribe_soul has confirmed') and names the alternative step, so an agent knows both when to use it and what must happen first. It even redirects to earning_opportunities for a follow-on task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stacks_market_buy_noA
Buy NO shares in a Stacks Market prediction market.
Uses the buy-no-auto function with slippage protection via a max-cost cap. The transaction will fail if the cost exceeds max_cost_ustx.
Requires an unlocked wallet. Only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| shares | Yes | Number of NO shares to buy (integer, smallest unit) | |
| market_id | Yes | Market ID (epoch ms timestamp) | |
| max_cost_ustx | Yes | Maximum cost in micro-STX you are willing to pay (slippage protection) | |
| target_cap_ustx | Yes | Target liquidity cap in micro-STX (use current market cap from stacks_market_get) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full load, and it does disclose the key traits: slippage protection via a max-cost cap, an explicit failure mode ('transaction will fail if the cost exceeds max_cost_ustx'), and the mainnet plus unlocked-wallet requirements. It stops short of describing the on-chain side effects or what a successful call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core content — action, slippage mechanism, failure condition, prerequisites — is front-loaded and tight. The trailing 'Tip: call earning_opportunities...' is unrelated promotional copy that dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an unannotated mutation tool with no output schema, the description covers the failure mode and the preconditions an agent needs before spending funds. It could say more about the result of a successful transaction (tx id, position update), which is the one gap left.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both the slippage cap and the target cap are already documented at the parameter level. The description adds only the failure consequence of max_cost_ustx and the underlying contract function name, which is marginal extra value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise action and target: 'Buy NO shares in a Stacks Market prediction market.' That explicit 'NO' distinguishes it cleanly from stacks_market_buy_yes and from the sell variants without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real preconditions (unlocked wallet, mainnet only) but never says when to prefer this over stacks_market_buy_yes, when to quote first, or when not to use it. The 'call stacks_market_get for current cap' guidance lives only in the schema, so the description leaves the choice of sibling to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stacks_market_buy_yesA
Buy YES shares in a Stacks Market prediction market.
Uses the buy-yes-auto function with slippage protection via a max-cost cap. The transaction will fail if the cost exceeds max_cost_ustx.
Requires an unlocked wallet. Only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| shares | Yes | Number of YES shares to buy (integer, smallest unit) | |
| market_id | Yes | Market ID (epoch ms timestamp) | |
| max_cost_ustx | Yes | Maximum cost in micro-STX you are willing to pay (slippage protection) | |
| target_cap_ustx | Yes | Target liquidity cap in micro-STX (use current market cap from stacks_market_get) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the burden well: it discloses the on-chain function invoked, that slippage protection is enforced by a hard cap, that the transaction aborts if the cap is exceeded, and that an unlocked wallet plus mainnet are required. It does not say whether the call signs and broadcasts automatically or whether spending is irreversible, which would complete the mutation picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core mechanics are front-loaded in three tight lines covering action, slippage mechanism, and prerequisites. The closing 'Tip: call earning_opportunities' is promotional and does not help an agent invoke this tool, so it dilutes an otherwise efficient definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description supplies the prerequisites, the failure mode, and the contract path an agent needs to avoid a footgun. It stops short of describing what a successful call returns (transaction ID, broadcast vs. signed payload), which an agent would still need to know.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters including the micro-STX units are already documented in the schema. The description reinforces the max_cost_ustx slippage role but adds no unit, format, or sourcing detail beyond what the schema and its 'use current market cap from stacks_market_get' note already provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Buy YES shares in a Stacks Market prediction market') and names the underlying contract function (buy-yes-auto). The YES-side qualifier inherently separates it from the buy_no/sell_yes/sell_no siblings without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives preconditions (unlocked wallet, mainnet only) and a failure condition (cost above max_cost_ustx), which is useful context. But it never routes the agent between this tool and stacks_market_quote_buy, stacks_market_buy_no, or stacks_market_get for pricing, so the choice of tool is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stacks_market_getB
Get full details for a specific prediction market on stacksmarket.app.
Market IDs are epoch millisecond timestamps (uint) visible in market URLs.
Note: Stacks Market is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| market_id | Yes | Market ID (epoch ms timestamp, e.g. '1710000000000') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It usefully discloses the mainnet-only limitation, but says nothing about what 'full details' contains, what happens with an unknown or malformed market_id, or whether the call is read-only — gaps that matter for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and ID-format note are front-loaded and efficient. The trailing 'Tip: call earning_opportunities...' does not help an agent invoke this tool and dilutes an otherwise tight definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter lookup with no output schema and no annotations, the definition covers the input side adequately but leaves the return shape ('full details') and error behavior undefined. An agent knows how to call it but not what to expect back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter already documents itself as an epoch-ms timestamp with an example. The description mostly restates that format, though 'visible in market URLs' adds a useful hint on where to source the value, nudging it slightly above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get full details for a specific prediction market') and the singular framing implicitly distinguishes it from stacks_market_list and stacks_market_search. It never names those siblings explicitly, so an agent must infer the split between list/search/get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells you where the required ID comes from (market URLs) and adds a mainnet-only constraint, which is genuine usage context. It gives no explicit routing versus stacks_market_search or stacks_market_list, and the closing tip about earning_opportunities is cross-promotion rather than guidance for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stacks_market_get_positionA
Check YES and NO share balances for an address in a Stacks Market prediction market.
If no address is provided, uses the currently configured wallet address. No wallet required when an address is explicitly supplied.
Note: Stacks Market is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Stacks address to check position for. Uses configured wallet if not provided. | |
| market_id | Yes | Market ID (epoch ms timestamp) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden and does well: it establishes this is a read/check operation, explains the wallet-fallback auth behavior, and warns that Stacks Market exists only on mainnet. It does not describe failure behavior for an unknown market_id or stale markets.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then the address-fallback rule, then the network constraint — a sensible priority order with no filler. The closing 'earning_opportunities' tip is promotional rather than functional and is the one sentence that does not directly serve invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read with no output schema, the description tells the agent what comes back (YES and NO share balances) and under what auth conditions, which is sufficient to call it correctly. Missing only edge-case behavior (unknown/inactive market) that a caller might want.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented, including the address fallback text which the description repeats. The description adds no new semantics such as market_id format expectations or address validation beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb + resource: 'Check YES and NO share balances for an address' scoped to a Stacks Market prediction market. This is clearly distinguishable from sibling reads such as stacks_market_get (market metadata) or stacks_market_list, since the description names the exact artifact returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly covers the two calling modes: pass an address, or omit it to use the configured wallet, and notes no wallet is required when an address is supplied. It also flags the mainnet-only constraint. It stops short of naming an alternative sibling for related queries beyond a generic tip toward earning_opportunities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stacks_market_listA
List prediction markets on stacksmarket.app.
Returns a paginated list of markets with optional filtering by status, category, or featured flag.
Note: Stacks Market is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of markets to return (default 20) | |
| status | No | Filter by market status: 'open', 'closed', 'resolved', or 'all' | |
| category | No | Filter by category (e.g. 'crypto', 'sports', 'politics') | |
| featured | No | When true, return only featured markets |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It usefully discloses pagination and mainnet-only availability, but it does not state whether the operation is read-only, whether authentication is required, or what the returned market objects contain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then concisely covers return behavior, filters, and the mainnet constraint. The final tip about earning_opportunities is related but not directly necessary for invoking this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with fully documented input parameters and no output schema, the description is largely complete. It could be improved by explicitly routing agents to search/get alternatives, but the essential context for calling the tool is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents limit, status, category, and featured in detail. The description restates the filtering dimensions but adds no syntax, defaults, or format guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: list prediction markets on stacksmarket.app. It is specific about scope and filters, but it does not explicitly distinguish this listing tool from sibling tools such as stacks_market_search or stacks_market_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for paginated browsing with optional status/category/featured filters and notes mainnet availability. However, it does not say when to use this tool instead of stacks_market_search, stacks_market_get, or other market tools, and gives no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stacks_market_quote_buyA
Get an LMSR buy price quote for YES or NO shares on a Stacks Market prediction market.
Returns the cost in micro-STX to buy the requested number of shares. Side: 0 = YES, 1 = NO.
Note: Stacks Market is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | 0 = YES shares, 1 = NO shares | |
| shares | Yes | Number of shares to price (integer, smallest unit) | |
| market_id | Yes | Market ID (epoch ms timestamp) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does add real value: it discloses the return unit (micro-STX), the pricing model (LMSR), and a hard constraint (mainnet only). It stops short of stating that this is a read-only view call requiring no gas or signature, and says nothing about quote freshness or slippage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and return value are front-loaded and the mainnet caveat is short and useful. The trailing 'Tip: call earning_opportunities…' is promotional and does not earn its place in a quoting tool's description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-required-param, no-output-schema tool, the description covers what is needed: what it computes, what it returns and in what units, and a network constraint. Missing only quote-validity/slippage semantics that would matter before placing an actual order.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters are already documented in the schema; the description's 'Side: 0 = YES, 1 = NO' simply repeats the schema. It adds no new detail for market_id (epoch-ms) or shares units beyond what the schema states, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get an LMSR buy price quote for YES or NO shares on a Stacks Market prediction market.' The word 'quote' implicitly separates it from execution siblings like stacks_market_buy_yes/buy_no and from stacks_market_quote_sell, but no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the word 'quote' — an agent can infer it should be called before buying, but the description never says 'use this to preview cost before stacks_market_buy_yes/buy_no' or state any exclusions. The 'Tip' about earning_opportunities is unrelated to when to use this tool and does not count as guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stacks_market_quote_sellB
Get an LMSR sell price quote for YES or NO shares on a Stacks Market prediction market.
Returns the proceeds in micro-STX for selling the requested number of shares. Side: 0 = YES, 1 = NO.
Note: Stacks Market is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | 0 = YES shares, 1 = NO shares | |
| shares | Yes | Number of shares to price (integer, smallest unit) | |
| market_id | Yes | Market ID (epoch ms timestamp) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does add real value by disclosing the return unit ('proceeds in micro-STX') and the mainnet-only constraint, but it never explicitly states the call is non-mutating/read-only, nor whether the quote expires or is subject to slippage before execution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and short: the core purpose and return unit occupy the first two sentences. However, the trailing 'Tip: call `earning_opportunities`...' is off-topic advertising that does not help an agent decide how to call this specific tool and dilutes an otherwise tight definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only quote tool with fully documented params and no output schema, the description covers purpose, return unit, and a network constraint. It still omits how the quote relates to the actual sell call (staleness/validity, whether it must be passed to the sell tool), which is the most likely agent question.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and all three params are documented, so the baseline is 3. The description's 'Side: 0 = YES, 1 = NO' merely repeats the schema's enum description, and it adds nothing about `shares` units beyond what the schema already says (integer, smallest unit), so there is no lift beyond structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get an LMSR sell price quote for YES or NO shares on a Stacks Market prediction market.' The word 'quote' plus 'Returns the proceeds' makes clear this is a pricing preview, which implicitly separates it from stacks_market_sell_yes/sell_no, though it never names those execution siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'quote' suggests calling this before selling, but the description never says to use it ahead of stacks_market_sell_yes/stacks_market_sell_no nor contrasts it with stacks_market_quote_buy. The only explicit usage guidance is the mainnet-only availability note and an unrelated cross-sell tip pointing to `earning_opportunities`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stacks_market_redeemA
Redeem winning shares after a Stacks Market prediction market is resolved.
Call this after the market has been resolved to claim STX for the winning side shares you hold.
Requires an unlocked wallet. Only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| market_id | Yes | Market ID (epoch ms timestamp) of the resolved market |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, this description does real work: it discloses the unlocked-wallet requirement, the mainnet-only restriction, the payout currency (STX), and the resolved-market precondition. It stops short of stating idempotency, fee behavior, or what happens to losing shares, which matters for a value-moving claim.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action, precondition, and wallet/mainnet constraints come first in tight sentences. The trailing 'Tip' about earning_opportunities is tangential cross-sell but brief and does not obscure the mechanic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation tool with no output schema, the description covers the key call-time facts an agent needs: wallet must be unlocked, mainnet only, market must be resolved, and STX is the payout. Missing return/error detail is the main residual gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single market_id parameter is fully documented as an epoch-ms timestamp in the schema. The description adds no extra meaning about the parameter, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Redeem'), the exact resource ('winning shares'), and the protocol context ('Stacks Market prediction market'). Within the stacks_market_* family it is clearly the post-resolution claim action, distinct from buy/sell/quote siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to call it 'after the market has been resolved' and only for winning-side shares, which sets the triggering condition. It doesn't name alternatives (e.g., what to call before resolution or how to check resolution status via stacks_market_get), so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stacks_market_searchA
Search prediction markets by keyword on stacksmarket.app.
Searches across market titles and descriptions.
Note: Stacks Market is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (default 20) | |
| query | Yes | Search keyword or phrase |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the mainnet-only constraint and clarifies that search covers titles and descriptions, but does not mention read-only nature, authentication needs, rate limits, or return format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and is generally efficient. The final tip about earning_opportunities is somewhat tangential and not directly about this tool's operation, slightly reducing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with two fully described parameters and no output schema, the description covers the essential purpose, scope, and mainnet constraint. It could mention basic return characteristics or pagination, but it is largely complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (query and limit). The description adds no extra meaning beyond what the schema provides, such as search syntax or result ordering.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb (Search) and resource (prediction markets) with scope (across market titles and descriptions). It does not explicitly name the sibling tool stacks_market_list as an alternative, so sibling differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: one uses this to search by keyword, and the note about mainnet availability provides context. However, there is no explicit guidance on when to use this versus listing all markets (stacks_market_list) or other market tools, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stacks_market_sell_noA
Sell NO shares in a Stacks Market prediction market.
Uses the sell-no-auto function with a minimum proceeds guard. The transaction will fail if proceeds fall below min_proceeds_ustx.
Requires an unlocked wallet. Only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| shares | Yes | Number of NO shares to sell (integer, smallest unit) | |
| market_id | Yes | Market ID (epoch ms timestamp) | |
| min_proceeds_ustx | Yes | Minimum acceptable proceeds in micro-STX (slippage protection) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the load and does reasonably well: it discloses the entrypoint used, the hard failure condition on insufficient proceeds, the wallet-state requirement, and a network restriction. It still omits the irreversibility of the sale, fee treatment, and what a successful call returns, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The action is front-loaded in the first line, preconditions and failure behavior follow, and there is no redundancy. The closing 'Tip' pointing at earning_opportunities is tangential to executing this trade and slightly dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an unannotated, irreversible state-changing tool with no output schema, the description covers prerequisites and failure mode but says nothing about what is returned (transaction id? receipt?), fees, or whether the caller must already hold the NO shares. That is enough to attempt the call but not enough to be confident about its effect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns an increment by explaining the consequence of min_proceeds_ustx ('the transaction will fail if proceeds fall below'), which the schema only labels as slippage protection. It adds no meaning for market_id or shares beyond the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Sell NO shares in a Stacks Market prediction market') and names the underlying contract function (sell-no-auto). It is immediately distinguishable from the sibling stacks_market_sell_yes and the buy-side tools without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete preconditions: unlocked wallet required, mainnet only, and a slippage floor that will abort the transaction. It does not name an alternative tool (e.g. stacks_market_quote_sell for price discovery first, or sell_yes/buy_no for the opposite action), so routing between siblings is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stacks_market_sell_yesA
Sell YES shares in a Stacks Market prediction market.
Uses the sell-yes-auto function with a minimum proceeds guard. The transaction will fail if proceeds fall below min_proceeds_ustx.
Requires an unlocked wallet. Only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| shares | Yes | Number of YES shares to sell (integer, smallest unit) | |
| market_id | Yes | Market ID (epoch ms timestamp) | |
| min_proceeds_ustx | Yes | Minimum acceptable proceeds in micro-STX (slippage protection) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does reasonably well: it discloses the guard semantics ("The transaction will fail if proceeds fall below min_proceeds_ustx"), the auth prerequisite (unlocked wallet), and a network restriction (mainnet only). It stops short of stating that this is an irreversible on-chain state mutation or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action is front-loaded in the first sentence, followed by the guard behavior and prerequisites in two tight lines. The trailing "Tip" about earning_opportunities is tangential to executing this trade but is short enough not to obstruct the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation tool with no annotations and no output schema, the description covers the critical decision inputs: wallet state, network, and the slippage failure condition. It could still say whether a transaction hash is returned or recommend quoting first, but nothing essential to calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning beyond the schema by explaining the consequence of min_proceeds_ustx — it is an enforced revert condition, not merely an advisory field. The shares and market_id parameters are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb+resource pair ("Sell YES shares in a Stacks Market prediction market") and names the underlying contract function (sell-yes-auto), so the agent knows exactly what executes. It does not explicitly distinguish itself from the nearby siblings stacks_market_buy_yes, stacks_market_sell_no, or stacks_market_quote_sell, relying on the tool name to do that work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Preconditions are stated clearly (unlocked wallet required, mainnet only), which tells the agent when the call can succeed. However there is no guidance on when to prefer this over stacks_market_quote_sell for previewing, or when to use sell_no instead, and no mention of what to do if the wallet is locked. Usage is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stackspot_cancel_potA
Cancel a Stackspot stacking lottery pot before stacking begins.
Cancels an unlocked pot to recover contributed STX. The pot must not yet be locked (i.e., stacking has not started). Once stacking begins the pot cannot be cancelled.
Use a bare contract name (e.g., "STXLFG") or a fully-qualified identifier.
Requires an unlocked wallet.
Note: Stackspot is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| contractName | Yes | Pot contract name or full identifier (e.g., "STXLFG" or "SPT4SQP5RC1BFAJEQKBHZMXQ8NQ7G118F335BD85.STXLFG") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that contributed STX is recovered, the lock-state precondition, the unlocked-wallet requirement, and mainnet-only availability. It omits transaction-level details such as gas or finality, but the key mutation and constraint context is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the primary action and precondition, then adds wallet, network, and formatting notes. The trailing tip about earning_opportunities is slightly tangential but does not materially reduce clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter cancellation tool with no output schema, the description covers purpose, preconditions, wallet state, network availability, and parameter format. It does not describe the expected response, but most operational context an agent needs is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents contractName and its accepted formats. The description reinforces the bare-name or fully-qualified identifier usage but adds little beyond what the schema provides, making baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: cancel a Stackspot stacking lottery pot before stacking begins. It clearly distinguishes the action from siblings such as stackspot_start_pot and stackspot_join_pot by focusing on pre-lock cancellation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when the tool can be used (pot must not yet be locked) and when it cannot (once stacking begins). It does not name alternative sibling tools for the post-lock state, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stackspot_claim_rewardsA
Claim rewards from a completed Stackspot stacking lottery pot.
After stacking completes and a winner is selected by VRF, each participant claims their share: all participants recover their contributed STX; the VRF-selected winner also receives the sBTC yield earned during the stacking cycle.
Use a bare contract name (e.g., "STXLFG") or a fully-qualified identifier.
Requires an unlocked wallet.
Note: Stackspot is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| contractName | Yes | Pot contract name or full identifier (e.g., "STXLFG" or "SPT4SQP5RC1BFAJEQKBHZMXQ8NQ7G118F335BD85.STXLFG") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses that an unlocked wallet is required, that the tool is mainnet-only, and exactly what value moves (contributed STX back to everyone, sBTC yield to the VRF winner). It omits failure/edge behavior, such as what happens if the caller already claimed or the pot isn't finalized.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Payout mechanics are front-loaded and the prerequisite and identifier-format notes follow logically. The trailing 'Tip' pointing at earning_opportunities is tangential to claiming but short enough not to derail the read.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation tool with no annotations and no output schema, the description covers the essentials: prerequisites, value flow, wallet state, and network. What's missing is outcome reporting—whether a transaction hash is returned and what happens on a failed or duplicate claim.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description's note about bare contract name vs. fully-qualified identifier largely restates the schema's own example. Baseline 3 applies since the schema already does the parameter work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource (claim rewards from a completed Stackspot stacking lottery pot), and the second explains the exact payout mechanics per participant. This clearly separates it from sibling tools like stackspot_list_pots, stackspot_get_pot_state, or stackspot_join_pot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the precondition plainly: stacking must be complete and a winner selected by VRF. It does not explicitly name an alternative tool or exclusion case (e.g., what to call if the pot is still open), but the trigger condition is unambiguous for an eligible caller.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stackspot_get_pot_stateA
Get full on-chain state for a Stackspot stacking lottery pot.
Returns the pot value, lock status, configurations, pool config, and detailed state. Use a bare contract name (e.g., "STXLFG") or a fully-qualified identifier (e.g., "SPT4SQP5RC1BFAJEQKBHZMXQ8NQ7G118F335BD85.STXLFG").
Note: Stackspot is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| contractName | Yes | Pot contract name or full identifier (e.g., "STXLFG" or "SPT4SQP5RC1BFAJEQKBHZMXQ8NQ7G118F335BD85.STXLFG") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does state the deployment constraint (mainnet only) and roughly what the call returns. It does not say whether the pot must be started/exist, what happens on an unknown contract name, or how state differs before/after a lock — relevant for a lottery pot whose lock status is the field being read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, followed by the contract-name format and the mainnet caveat, all compact. The closing 'earning_opportunities' tip is tangential cross-promotion that does not help invoke this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description compensates by enumerating the returned fields, and the single required parameter is fully covered by schema plus description. The mainnet-only note closes the biggest operational gap; only error/precondition behavior is left unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the description restates the same two accepted formats with the same examples as the schema property description, adding no new meaning. Baseline 3 applies since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get full on-chain state for a Stackspot stacking lottery pot,' and enumerates the returned content (value, lock status, configs, pool config, detailed state). It is distinguishable from siblings like stackspot_list_pots or stackspot_join_pot, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mainnet-only note is a genuine usage constraint, and the contractName format guidance tells the agent what input is acceptable. However, there is no instruction on when to prefer this over stackspot_list_pots (e.g., 'use list_pots first to discover a pot name'), and no exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stackspot_join_potA
Contribute STX to a Stackspot stacking lottery pot.
Joins a pot by contributing STX. Your STX is locked until the stacking cycle completes. All participants recover their STX regardless of who wins; only the VRF-selected winner receives the sBTC yield.
Use a bare contract name (e.g., "STXLFG") or a fully-qualified identifier. Amount must be in micro-STX (1 STX = 1,000,000 micro-STX).
Requires an unlocked wallet with sufficient STX balance.
Note: Stackspot is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount to contribute in micro-STX (1 STX = 1,000,000 micro-STX) | |
| contractName | Yes | Pot contract name or full identifier (e.g., "STXLFG" or "SPT4SQP5RC1BFAJEQKBHZMXQ8NQ7G118F335BD85.STXLFG") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the whole burden and does well: it discloses that STX is locked for the cycle, that all participants recover principal, that only the VRF-selected winner gets sBTC yield, and that mainnet and a funded unlocked wallet are required. It does not say whether joining is reversible (a cancel_pot sibling exists) or what the call returns, which keeps it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well front-loaded: purpose first, then mechanics, then parameter formats, then prerequisites and network constraint. The trailing 'Tip: call earning_opportunities' is cross-promotion that does not help an agent invoke this tool and is the one sentence that does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter mutation with no annotations and no output schema, the description covers locks, payouts, prerequisites, and network scope, which is most of what an agent needs. Missing are the transaction/gas implications and whether a cancel path exists, which matter for a fund-locking write.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the description largely restates the schema: the bare-name-or-fully-qualified example and the micro-STX conversion note both already appear in the property descriptions. It adds no format edge cases or validation rules beyond structured data, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Joins a pot by contributing STX') and immediately explains the mechanism, which makes it unambiguous against siblings like stackspot_start_pot, stackspot_cancel_pot, and stackspot_claim_rewards. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear preconditions — unlocked wallet with sufficient STX, mainnet only — and a pointer to earning_opportunities for related discovery. It stops short of explicit routing ('use stackspot_list_pots to find a pot', 'use stackspot_cancel_pot to exit'), so the when-not guidance is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stackspot_list_potsA
List all known Stackspot stacking lottery pots with current on-chain values.
Stackspot is a stacking lottery on Stacks: participants pool STX into a pot, the pot stacks via PoX to earn BTC rewards. A VRF-selected winner receives the sBTC yield; all participants recover their original STX contribution.
Returns each pot's contract ID, configuration, current STX value, and lock status.
Note: Stackspot is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose that this is a read of enumerated on-chain values, the specific fields returned (contract ID, config, STX value, lock status), and the mainnet-only constraint. It does not mention pagination or scale of results, a minor gap for a list-all tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the list action, then useful domain background and return-field summary. The closing earning_opportunities tip is mildly tangential and doesn't earn full space, but the overall structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-param, no-output-schema list tool, the description supplies everything an agent needs: what is returned, what a pot is, and the mainnet-only limitation. Nothing essential to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters with 100% schema coverage, so there is nothing for the description to disambiguate. Baseline for a no-param tool is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List all known Stackspot stacking lottery pots with current on-chain values') and defines what a pot is, so an agent understands both the action and the domain. The plural 'all known' distinguishes it from the singleton stackspot_get_pot_state sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mainnet-only availability note is a useful constraint, and the Tip routes to earning_opportunities, but that tip is a tangential cross-sell rather than a real alternative for this capability. It never explicitly contrasts with stackspot_get_pot_state (single-pot inspection), so the when-to-use-vs-alternatives guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stackspot_start_potA
Trigger a full Stackspot pot to begin stacking via the platform contract.
Initiates stacking for a pot that has reached its participant limit. This call goes through the platform contract (stackspots) and must be made during the PoX prepare phase. Any participant can call this once the pot is full.
Use a bare contract name (e.g., "STXLFG") or a fully-qualified identifier.
Requires an unlocked wallet.
Note: Stackspot is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| contractName | Yes | Pot contract name or full identifier (e.g., "STXLFG" or "SPT4SQP5RC1BFAJEQKBHZMXQ8NQ7G118F335BD85.STXLFG") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does well: it discloses the platform-contract routing, mainnet-only availability, unlocked-wallet requirement, and time-window constraint. It stops short of stating that this is an irreversible on-chain state change with gas cost, or what the call yields on success/failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then layered preconditions in short paragraphs that each add information. The trailing 'Tip: call earning_opportunities...' is promotional filler unrelated to invoking this tool and costs it a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, no-output-schema, unannotated mutation, the description covers the critical gating facts an agent needs (full pot, prepare phase, unlocked wallet, mainnet). It leaves out downstream effects (whether the pot begins stacking immediately after) and cost/failure behavior, but nothing blocks a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter exists and the schema already documents it at 100% coverage, including the exact same bare-vs-fully-qualified example. The description's 'Use a bare contract name ... or a fully-qualified identifier' restates the schema rather than adding new meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action (trigger/start stacking for a pot) on a specific resource (Stackspot pot via the stackspots platform contract), and scopes it to pots that have reached their participant limit. This clearly separates it from siblings like stackspot_join_pot, stackspot_get_pot_state, and stackspot_claim_rewards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives strong preconditions: the pot must be full, the call must happen during the PoX prepare phase, any participant may call it, and a wallet must be unlocked. It does not explicitly name the sibling alternatives (join vs. cancel vs. claim) to route an agent away from this tool, which keeps it just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stacks_sign_messageA
Sign a plain text message using the Stacks message signing format. The message is prefixed with '\x17Stacks Signed Message:\n' before hashing (SIWS-compatible). Use cases: proving address ownership, authentication, sign-in flows. Requires an unlocked wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The plain text message to sign. Will be prefixed with Stacks message prefix before signing. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It usefully discloses the prefixing behavior and the unlocked-wallet requirement, but says nothing about what is returned (a signature string?), whether any on-chain transaction is produced, or what happens on a locked wallet.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The signing explanation is front-loaded and tight, but the trailing 'Tip: call earning_opportunities...' is unrelated promotional content that does not help an agent invoke this tool and dilutes the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema and no annotations, the description covers format and prerequisites but omits the return value and any failure modes. Adequate to call it, not complete enough to predict its output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter with 100% schema description coverage, so the schema already explains that the message is plain text and will be prefixed. The description restates that same prefixing fact rather than adding new constraints such as length limits or encoding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Sign a plain text message') plus the exact signing format used, including the '\x17Stacks Signed Message:\n' prefix. That format detail separates it from the many sibling signing tools (btc_sign_message, sip018_sign, schnorr_sign_digest) without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete use cases (proving address ownership, authentication, sign-in flows) and a prerequisite ('Requires an unlocked wallet'). It never explicitly says when to prefer sip018_sign or btc_sign_message instead, so the alternatives dimension is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stack_stxA
Lock STX in PoX-5 with a signer manager to earn sBTC rewards.
The lock starts next reward cycle and lasts numCycles cycles (1-96). Pick a signer manager with list_stacking_signers. Refused during the prepare phase and if the address is already staking (use extend_stacking). Locking is not a transfer: the transaction carries a staking post-condition for exactly the locked amount.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount to lock, in micro-STX | |
| numCycles | Yes | Reward cycles to lock (1-96; one cycle is about two weeks) | |
| signerManager | Yes | Signer manager contract id, e.g. SP8HK160YD5GHXP69VGA0TC7AQJ1X4CDW3XVERSE.xverse-signer-manager-2 | |
| btcRewardAddress | No | Optional Bitcoin address to receive rewards. Encoded as `{ pox-addr, max-fee }` signer calldata, the shape reference signer managers (e.g. Xverse, Fast Pool) use to pay rewards to BTC via an sBTC withdrawal. Some managers require it (PlanBetter), some ignore it (native-pool). Omit to receive sBTC where the manager supports that. | |
| signerCalldataHex | No | Advanced: raw signer calldata (hex, max 500 bytes) for managers with a custom format. Cannot be combined with btcRewardAddress. | |
| maxWithdrawalFeeSats | No | Max sBTC withdrawal fee (sats) per payout when btcRewardAddress is set. Default 3000. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that the lock begins next reward cycle rather than immediately, that it is time-committed for numCycles, that it will be refused during the prepare phase or when already staking, and that the transaction carries a staking post-condition for exactly the locked amount. It omits wallet-unlock/auth prerequisites, fee handling, and how to undo an active lock, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and effect, followed by timing, prerequisite, and refusal conditions, then a clarification of non-transfer semantics. The closing tip about earning_opportunities is mildly promotional but costs one short line.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter mutation tool with no annotations and no output schema, the description covers mechanics, timing, and failure modes well. It leaves a gap on execution prerequisites (unlocked wallet, fee/network assumptions) and on what the caller gets back, which the agent must infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already explains all six parameters, including the advanced btcRewardAddress/signerCalldataHex/maxWithdrawalFeeSats options. The description adds the timing semantics of numCycles and the exact-amount post-condition on `amount`, but says nothing about the three optional reward-address parameters. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (lock STX), the protocol (PoX-5), the required collaborator (signer manager), and the payoff (sBTC rewards). It is clearly distinguishable from neighbors like extend_stacking, unstake_stx, and list_stacking_signers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to list_stacking_signers to choose a manager and to extend_stacking if the address is already staking, and names a hard precondition (refused during the prepare phase). It does not, however, say when to prefer stack_stx over related stacking entry points such as pillar_direct_stack_stx or stackspot_join_pot.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stacks_verify_messageB
Verify a Stacks message signature and recover the signer's address. Takes the original message and signature, applies the Stacks prefix, and verifies. Compatible with SIWS (Sign In With Stacks) authentication flows.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The original plain text message that was signed. | |
| signature | Yes | The signature in RSV format (65 bytes hex from stacks_sign_message or wallet signature). Accepts both '0x'-prefixed and bare hex formats. | |
| expectedSigner | No | Optional: expected signer address to verify against. If provided, returns whether the signature is valid for this signer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that it applies the Stacks prefix before verifying, but it does not describe failure behavior, return shape, authentication needs, or whether the operation is purely read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is front-loaded and efficient, but the trailing tip to call earning_opportunities is unrelated promotional content that does not help the agent invoke this verification tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity and 100% schema coverage, the definition is largely complete: it explains the verification purpose, Stacks prefix behavior, and SIWS compatibility. The lack of an output schema is mostly covered by the return behavior implied in the description and parameter docs, though error semantics remain unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented. The description reiterates the message and signature role but adds no meaningful semantics beyond the schema, especially for the optional expectedSigner parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: verify a Stacks message signature and recover the signer address. It adds useful scope with Stacks prefix handling and SIWS compatibility, though it does not explicitly distinguish itself from nearby verification siblings such as btc_verify_message or sip018_verify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an implied usage context by mentioning SIWS authentication flows, which helps an agent understand when this tool is relevant. However, it does not explicitly say when to use this versus alternatives like btc_verify_message, sip018_verify, or schnorr_verify_digest.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
styx_depositA
Full headless BTC→sBTC deposit via the Styx protocol. Flow: reserve pool liquidity → build PSBT locally → sign with wallet keys → broadcast to mempool.space → update deposit status. Requires an unlocked wallet with sufficient BTC balance. On mainnet, ordinal UTXOs are automatically filtered out to protect inscriptions. Minimum deposit: 10,000 sats. Pool limits: main=300k sats, aibtc=1M sats.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Fee priority: "low", "medium", or "high". Defaults to "medium". | |
| pool | No | Pool ID: "main" or "aibtc". Defaults to "main". | |
| amount | Yes | Amount to deposit in satoshis (min 10000). Example: 50000 | |
| btcSender | No | BTC address sending funds. Must match the active wallet's BTC address. Uses active wallet if omitted. | |
| stxReceiver | No | Stacks address to receive sBTC. Uses active wallet address if omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full load and does substantial work: it discloses the five-step internal flow, the wallet-unlock dependency, and that on mainnet ordinal UTXOs are filtered out to protect inscriptions — a non-obvious side effect that affects which UTXOs get spent. It omits irreversibility of the BTC spend, whether the call waits for confirmation, and error behavior, which are notable gaps for a fund-moving tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb and resource, then the flow, then constraints — dense and well ordered. The trailing 'Tip: call earning_opportunities' is promotional and unrelated to invoking this tool, which costs it a point on every-sentence-earns-its-place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Mechanics and constraints are well covered, but there is no output schema and the description never says what the call returns (txid, deposit ID, status object) or whether it returns before or after broadcast confirmation. For a multi-step financial operation with zero annotation coverage, that outcome gap is the missing piece.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuinely new constraint information: the minimum deposit floor and the per-pool ceilings (main=300k, aibtc=1M) which materially bound how `amount` and `pool` can be combined. That is meaning the schema does not encode.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (deposit), a precise resource conversion (BTC→sBTC), and the protocol (Styx), then enumerates the exact operational flow. That protocol qualifier is what separates it from the similarly named sibling sbtc_deposit, so an agent can pick correctly without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real preconditions — unlocked wallet, sufficient BTC balance, minimum 10,000 sats, per-pool caps — which tell the agent when the call can succeed. It never explicitly names the alternative to use when those preconditions fail (e.g. sbtc_deposit or the manual PSBT path), so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
styx_feesB
Get current Bitcoin network fee estimates (sat/vB) from Styx: low, medium, high.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, but the tool is a zero-argument read, so the behavioral burden is light. The description does disclose the return payload structure (three named tiers in sat/vB), yet says nothing about freshness, caching, data source, or failure behavior if Styx is unreachable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is tight and front-loaded with the verb, unit, and tier names. The appended 'Tip:' is a cross-sell that does not help an agent invoke this tool, though it costs only one line.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description must carry the whole definition, and it does state the returned tiers and units. It leaves unclear what 'Styx' fee estimates mean relative to the general Bitcoin fee tooling in the sibling set, and gives no indication of freshness or fallback behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero input parameters, so the schema is trivially complete and there is nothing for the description to disambiguate. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource (get Bitcoin network fee estimates) with the return shape spelled out: sat/vB and three tiers low/medium/high. It does not, however, distinguish itself from the near-duplicate sibling `get_btc_fees`, so an agent cannot tell from this text which fee source to prefer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus `get_btc_fees` or `get_stx_fees`, and no prerequisites or exclusions. The only guidance given is a promotional tip pointing at `earning_opportunities`, which is unrelated to fee estimation and does not help the agent choose between fee tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
styx_historyA
Get BTC→sBTC deposit history for a Stacks address via Styx. Uses the active wallet's Stacks address if no address is provided.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Stacks address to query. Uses active wallet if omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. 'Get' implies a read-only operation, and it discloses that results come via Styx and default to the active wallet when address is omitted. It does not describe pagination, result contents, time-range behavior, pending/failed deposits, or any rate/auth constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and efficient. The trailing 'Tip' about earning_opportunities is tangential to invoking this history tool, but the overall definition remains short and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool, the definition covers purpose, data source, and address fallback. Because there is no output schema and no annotations, it should say more about what the returned history contains or how results are shaped; as written it is adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description adds no parameter detail beyond what the schema already says: the address is a Stacks address and the active wallet is used when omitted. Baseline 3 is appropriate when the schema fully documents the only parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: get BTC→sBTC deposit history for a Stacks address via Styx. The word 'history' distinguishes it from write-oriented siblings such as styx_deposit, and the scope is clear without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the default behavior when no address is supplied, which is useful context. However, it does not state when to use this tool versus related alternatives such as styx_deposit, sbtc_deposit_status, or sbtc_get_deposit_info, nor does it give any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
styx_poolsA
List all available Styx pools with their configurations. Pools: main (up to 300k sats, sbtc/usda/pepe), aibtc (up to 1M sats, sbtc/aibtc). Minimum deposit: 10,000 sats for both pools.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well by disclosing exactly what is listed: two named pools, their sat caps, supported token pairs, and the shared 10,000 sat minimum. It does not mention auth, rate limits, or error behavior, but for a read-only listing this is largely sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the action and key pool facts in two tight sentences. The final tip is short and adds a clear next step without diluting the core listing purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, and the description compensates by summarizing the pool list, caps, tokens, and minimum deposit. It does not spell out the full return shape or guarantee that all configuration fields are returned, but it gives an agent enough to decide whether to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter meaning to add. The baseline of 4 applies, and the description does not confuse this with any hidden inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('List all available Styx pools with their configurations') and immediately names the concrete pools and their contents. An agent can distinguish this from styx_pool_status or styx_deposit without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the pool configuration and minimum-deposit details, which suggest calling this before depositing. The only explicit routing is a tip to call earning_opportunities afterward, with no stated when-not-to-use or direct comparison to styx_pool_status or styx_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
styx_pool_statusB
Get current Styx pool liquidity and status. Shows realAvailable and estimatedAvailable BTC in the pool.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| pool | No | Pool ID: "main" (300k sat max) or "aibtc" (1M sat max). Defaults to "main". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It reveals the two headline values returned (realAvailable and estimatedAvailable BTC), which is genuinely useful context for a read-only status query, but it does not confirm the operation is side-effect free, whether data is live or cached, or what else is in the payload.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight, front-loaded sentences that lead with the tool's purpose and its key output fields. The closing 'Tip' is a marginally relevant promotional pointer but costs only one short sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter read query with no output schema and no annotations, the description covers the core purpose and two named return fields, which is roughly sufficient to invoke correctly. The remaining gap is disambiguation from styx_pools and styx_status.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the pool parameter already documents the 'main' (300k sat max) and 'aibtc' (1M sat max) options plus its default. The description adds nothing about the pool parameter, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get current Styx pool liquidity and status') and names two of the returned fields (realAvailable, estimatedAvailable BTC). However, it does nothing to distinguish itself from the closely named siblings styx_pools and styx_status, leaving ambiguity about which of the three to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus styx_pools, styx_status, styx_price, or styx_history. The only forward-looking sentence points at earning_opportunities as a follow-on, which is a cross-sell rather than selection guidance and gives no exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
styx_priceA
Get current BTC price in USD from Styx.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that the price is current and denominated in USD from Styx, but it omits update frequency, staleness behavior, authentication needs, rate limits, and response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and complete. The second sentence is a tangential cross-promotional tip that is brief but does not earn its place as essential tool-selection guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter price getter with no output schema, the description gives enough to call it correctly: it returns the current BTC price in USD from Styx. More detail about freshness or response format would improve completeness but is not strictly required at this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. There are no parameter semantics to clarify or compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb, resource, asset, currency, and source: 'Get current BTC price in USD from Styx.' This clearly distinguishes it from sibling price- or status-oriented tools such as get_bns_price, styx_status, and styx_pools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to choose this over alternatives or when not to use it. The only usage-like sentence is a cross-sell tip pointing to `earning_opportunities`, which does not help select among any price-related sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
styx_statusB
Check the status of a Styx BTC→sBTC deposit by deposit ID or Bitcoin transaction ID.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Styx deposit ID | |
| txid | No | Bitcoin transaction ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure burden. It signals a read-only status check, but it does not explain what the response contains, what statuses may be returned, whether errors occur for invalid IDs, or whether one of the two optional parameters must be supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and efficient. The second sentence is a promotional tip for an unrelated tool, which does not help the agent select or invoke styx_status and therefore fails the 'every sentence should earn its place' test.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple two-parameter read-only tool, and the description covers the basic lookup purpose. However, with no output schema, it should ideally describe the returned status information, and it leaves ambiguity around the optional id/txid parameters that could affect correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents 'id' as a Styx deposit ID and 'txid' as a Bitcoin transaction ID. The description adds only the useful implication that these are alternatives ('or'), but it does not clarify that at least one is required despite both being optional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Check the status of a Styx BTC→sBTC deposit.' It also names the two lookup keys, so the agent can understand the tool's core purpose. However, it does not distinguish itself from related siblings such as styx_history or sbtc_deposit_status, which keeps it below a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by saying the deposit can be checked 'by deposit ID or Bitcoin transaction ID,' but it gives no explicit guidance on when to choose this tool over alternatives like styx_history or sbtc_deposit_status. The tip about earning_opportunities is unrelated to invoking this tool and does not clarify usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taproot_get_pubkeyA
Derive the x-only Taproot public key (32 bytes hex) from the active wallet using the BIP-86 derivation path m/86'/0'/0'/0/0. Share this pubkey with co-signers to construct a Taproot multisig script tree. Requires the wallet to be unlocked (use wallet_unlock first).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well by disclosing the active-wallet scope, the exact derivation path, the 32-byte hex output, and the requirement that the wallet be unlocked. It does not explicitly state that the operation is read-only or describe failure behavior, but it covers the key behavioral traits needed to invoke it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentences are front-loaded and efficient: what is derived, how, and the unlock prerequisite. However, the final tip about `earning_opportunities` is unrelated to selecting or invoking this tool and does not earn its place in the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description is complete enough: it explains the derivation source, exact path, output encoding, and auth prerequisite. An agent has enough information to call it correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
This tool has zero parameters, so parameter semantics are minimal by design. The description appropriately avoids inventing parameter details and instead focuses on output format and derivation path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: derive the x-only Taproot public key from the active wallet. It also states the output format and exact BIP-86 derivation path, which distinguishes it from address-oriented or multisig-verification siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the use case: share the pubkey with co-signers to construct a Taproot multisig script tree. It also gives the prerequisite to unlock the wallet first, though it does not name when-not-to-use conditions or explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taproot_multisig_guideA
Return a step-by-step guide for M-of-N Taproot multisig coordination between agents using OP_CHECKSIGADD (BIP-341/342). Read-only — no wallet needed.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| m | No | Number of required signatures (default: 2). | |
| n | No | Total number of co-signers (default: 3). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It clearly discloses that the tool is read-only and requires no wallet, which are the key safety facts for a guide-returning tool. It does not describe return format or authentication needs, but those are minor for a static instructional resource.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is front-loaded and appropriately sized: the first sentence states purpose and the second states read-only/no-wallet. The appended tip about earning_opportunities is unrelated to invoking this tool and does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity guide tool with a fully documented two-parameter schema and no output schema, the description gives enough context to call it correctly. It could be stronger by distinguishing it from related Taproot signing/verification tools, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both m and n are already documented with defaults, types, and bounds. The description adds the M-of-N framing but no additional syntax, validation rules, or interaction details beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns a step-by-step guide for M-of-N Taproot multisig coordination using OP_CHECKSIGADD. The BIP references and 'between agents' scope distinguish it from sibling tools like taproot_get_pubkey or taproot_verify_cosig.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the tool to use when you need a coordination guide and notes 'read-only — no wallet needed', which is useful context. However, it does not explicitly compare this guide against related siblings such as taproot_verify_cosig or psbt tools, nor does it state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taproot_verify_cosigA
Verify a Schnorr co-signature against a BIP-341 sighash. Use this to confirm that a co-signer's signature is valid before combining and broadcasting. Read-only — no wallet unlock required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| pubkey | Yes | Signer's x-only public key as 32-byte hex string (64 hex chars). Obtain via taproot_get_pubkey from each co-signer. | |
| sighash | Yes | BIP-341 sighash as 32-byte hex string (64 hex chars). This is the transaction commitment that was signed. | |
| signature | Yes | Schnorr signature as 64-byte hex string (128 hex chars, BIP-340 format). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does add real context: 'Read-only — no wallet unlock required' tells the agent it is safe and stateless, which is exactly the kind of trait annotations would otherwise supply. What is missing is any statement of the outcome shape (pass/fail, error on mismatch), which matters for a verification tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are well front-loaded and earn their place. The trailing 'Tip: call earning_opportunities' is unrelated promotional filler that dilutes an otherwise tight definition and occupies a third of the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A three-required-parameter verification tool with no annotations and no output schema: the description covers safety and workflow but never says what a successful or failed verification returns, leaving the agent to guess the result contract. Adequate, not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — the schema documents the hex lengths, formats (BIP-340, x-only pubkey) and even where to obtain the pubkey. The description adds nothing about the three parameters, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: verify a Schnorr co-signature against a BIP-341 sighash. The 'BIP-341 sighash' qualifier meaningfully narrows scope versus generic signature checks like schnorr_verify_digest or sip018_verify, though it never names those siblings to draw the contrast explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete workflow trigger: confirm a co-signer's signature is valid before combining and broadcasting. That is clear situational guidance, but there is no when-not-to-use clause and no mention of the sibling verification tools an agent might confuse it with (schnorr_verify_digest, sip018_verify).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taskmarket_getA
Get full detail and LIVE status for one TaskMarket task by ID. Public and anonymous. Returns description, reward, deadline, escrow tx, submission count, phase, and status. Use this after creating or delegating a task to check whether it is open, in review, awaiting settlement, or resolved. Never spends anything.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | TaskMarket task ID (0x + 64 hex chars) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden and does well: it declares the operation public and anonymous, non-spending ('Never spends anything'), and LIVE, and it explains the phase/status values an agent will encounter. It omits failure behavior (e.g., invalid or unknown taskId) and any freshness/caching caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core definition and usage guidance are front-loaded and efficient. The trailing 'Tip: call earning_opportunities…' is promotional cross-sell unrelated to this tool's invocation and dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema, the description compensates by enumerating the returned fields and the status/phase semantics, which is exactly the missing information an agent needs before calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one required parameter with 100% schema coverage and an explicit format pattern (0x + 64 hex chars), so the schema already does the work. The description only adds 'by ID', which is a mild restatement rather than extra meaning — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get full detail and LIVE status for one TaskMarket task by ID') plus scope (single task, looked up by ID), which cleanly separates it from taskmarket_search and taskmarket_submissions. It also enumerates what comes back (description, reward, deadline, escrow tx, submission count, phase, status).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete usage context: 'Use this after creating or delegating a task to check whether it is open, in review, awaiting settlement, or resolved.' It does not name an alternative or state when not to use it (e.g., vs taskmarket_search), so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taskmarket_searchA
Search open tasks on the TaskMarket agent work marketplace (Base, USDC escrow). Public and anonymous — no wallet or payment needed. Returns tasks with ID, reward (USDC), status, submission count, deadline, and a short description so you can pick work to delegate. Never spends anything.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Filter by task mode (bounty, claim, pitch, benchmark, auction) | |
| tags | No | Comma-separated tags to filter by (e.g. 'mcp,research') | |
| limit | No | Max results (1-50) | |
| phase | No | Filter by lifecycle phase (active, in_review, awaiting_settlement, resolved) | |
| status | No | Filter by status (default: open) | open |
| rewardMax | No | Maximum reward in human USDC (e.g. 50) | |
| rewardMin | No | Minimum reward in human USDC (e.g. 0.5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses no-auth/no-payment access, confirms 'Never spends anything' (safety), and previews the returned fields. It doesn't cover pagination, result ordering, or rate limits, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and access constraints in efficient sentences. The trailing 'Tip: call earning_opportunities...' is somewhat tangential to this tool's function, a minor waste, but the core is tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema or annotations exist, and the description compensates by enumerating return fields and access requirements for a 7-parameter search tool. It stops short of documenting filter interplay (mode vs status vs phase) or result limits, leaving small gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents mode, tags, phase, status, rewardMin/Max, and limit. The description only alludes to reward/status as returned fields and adds no filtering syntax or interaction guidance beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search open tasks on the TaskMarket agent work marketplace') plus the chain/asset context (Base, USDC escrow). 'Returns tasks with ID, reward, status, submission count, deadline' makes clear this is a list/search returning many tasks, distinguishing it from taskmarket_get (single task) and taskmarket_stats without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context: public and anonymous, no wallet or payment needed, and the intent 'so you can pick work to delegate.' It doesn't explicitly name alternatives like taskmarket_get or taskmarket_submissions or state exclusions, but the use case is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taskmarket_statsA
Public TaskMarket statistics for an agent address or agent ID (one is required): completed tasks, rating, total stars. Anonymous read. Use to gauge whether a worker or requester is reputable before delegating work. Never spends anything.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Wallet address to look up stats for | |
| agentId | No | Agent ID to look up stats for (alternative to address) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does reasonably well: it declares the read as anonymous and costless ("Never spends anything"), and states the data is public. It omits failure behavior (what happens if neither identifier is supplied) and any rate-limit or freshness caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Core purpose, required-input rule, and safety note are front-loaded in two tight sentences. The trailing tip promoting earning_opportunities is a cross-sell that doesn't help an agent invoke this tool, though it costs only one line.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, no-output-schema, no-annotation read tool, the description covers what is returned, that it is free and public, and the mutually exclusive input rule. Only the error path for a missing identifier is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3. The description adds real meaning beyond the schema by declaring address and agentId mutually exclusive with one required — a constraint the schema does not encode, since required is empty.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource (public TaskMarket statistics for an agent) and enumerates exactly what comes back: completed tasks, rating, total stars. This clearly distinguishes it from siblings like taskmarket_search, taskmarket_get and taskmarket_submissions, which operate on tasks rather than agent reputation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete decision context: use it to judge whether a worker or requester is reputable before delegating work. It stops short of naming alternatives, even though overlapping reputation_* tools (reputation_get_summary, reputation_read_feedback) exist as plausible substitutes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taskmarket_submissionsA
List submissions on a TaskMarket task for HUMAN REVIEW. Public and anonymous. Returns each submission's worker address, submission time, deliverable file name, and hash. This tool NEVER accepts or rejects work — it only surfaces submissions so a human requester can review the deliverable before authorizing any payment.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | TaskMarket task ID (0x + 64 hex chars) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description effectively discloses that access is public and anonymous, that the operation is read-only in effect, and that it never mutates task state by accepting or rejecting. It also lists returned fields, though it omits pagination or rate-limit behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is front-loaded and efficient, covering purpose, access, return fields, and non-mutation behavior in three sentences. The final tip about earning_opportunities is tangential to invoking this tool and slightly distracts from otherwise tight structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter list tool with no annotations or output schema, the description provides enough context: what it returns, that it is public/anonymous, and that it cannot approve or reject work. No critical invocation detail appears missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage and fully documents the single taskId parameter with its 0x+64 hex pattern. The description does not add parameter-level detail beyond implying that a TaskMarket task is required, so the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it lists submissions on a TaskMarket task. It also names the review context and enumerates return fields, making it clearly distinct from taskmarket_get, taskmarket_search, and taskmarket_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the context: human review of a deliverable before payment authorization, and explicitly says the tool never accepts or rejects work. It does not name a specific alternative for accepting/rejecting, but the boundary is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tenero_holder_statsB
Get token holder distribution and concentration statistics. Shows total holders, top holder percentages, and Gini coefficient. Powered by the Tenero API (api.tenero.io). No authentication required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain to query: stacks, spark, or sportsfun (default: stacks) | stacks |
| contractId | Yes | Token contract address in format PRINCIPAL.contract-name (e.g. SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It usefully discloses that no authentication is required and that the data comes from the Tenero API, and it names the output metrics. However, it does not explicitly confirm read-only behavior, mention rate limits, or describe error handling or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is well front-loaded and efficient: it states the purpose, then lists the metrics returned. The closing tip about earning_opportunities is off-topic for tool selection and slightly dilutes an otherwise concise definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description appropriately enumerates the returned values (total holders, top holder percentages, Gini coefficient). Combined with the authentication note and the richly described input schema, this is complete enough for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both chain and contractId documented in the input schema. The description adds no parameter meaning beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('token holder distribution and concentration statistics'), then enumerates what is returned: total holders, top holder percentages, and Gini coefficient. This makes the tool's purpose immediately clear, though it does not explicitly differentiate itself from nearby siblings such as get_token_holders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool returns but gives no guidance on when to use it versus alternatives like get_token_holders or tenero_token_info. The only cross-reference is an unrelated promotional tip to call earning_opportunities, which does not help the agent choose between holder-data tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tenero_market_statsB
Get overall Stacks ecosystem market statistics including total volume, buy/sell netflow, unique traders, and active pools. Returns a time series of daily stats for recent periods. Powered by the Tenero API (api.tenero.io). No authentication required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain to query: stacks, spark, or sportsfun (default: stacks) | stacks |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does disclose useful behavior: it returns a daily time series of recent periods, requires no authentication, and is backed by api.tenero.io. It does not clarify what 'recent periods' means in practice, whether results are cached/rate-limited, or how errors surface for an unauthenticated external API.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core content is front-loaded and efficiently stated, but the closing 'Tip: call `earning_opportunities`...' is unrelated promotion that does not help an agent invoke this tool. The 'Powered by the Tenero API (api.tenero.io)' line is marginal once the no-auth fact is already stated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the description covers what data comes back and in what shape (daily time series), which is the key missing piece an agent needs. It stops short of specifying the number of periods covered or ordering, leaving the return contract partially inferred.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one optional parameter (`chain`) and schema description coverage is 100%, so the schema already fully documents the allowed values and default. The description adds nothing beyond it, and its framing of 'Stacks ecosystem' slightly undersells the schema's spark/sportsfun options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb ('Get') plus a well-scoped resource ('overall Stacks ecosystem market statistics') and enumerates the metrics returned (volume, buy/sell netflow, unique traders, active pools). It does not distinguish itself from the close sibling `tenero_market_summary`, which an agent would reasonably consider for the same question.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus `tenero_market_summary`, `tenero_top_gainers`, or `tenero_trending_pools`. The only routing sentence points to `earning_opportunities`, which is a promotional cross-sell rather than guidance for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tenero_market_summaryB
Get token market summary including price history, 24h volume, and pool liquidity. Returns weighted price across all pools trading this token. Powered by the Tenero API (api.tenero.io). No authentication required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain to query: stacks, spark, or sportsfun (default: stacks) | stacks |
| contractId | Yes | Token contract address in format PRINCIPAL.contract-name (e.g. SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose some useful traits: no authentication required, Tenero API as source, and weighted pricing across all pools. It does not mention rate limits, caching, real-time freshness, or explicitly state read-only behavior beyond the word 'Get'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and mostly efficient, stating the core purpose before secondary details. The trailing tip about earning_opportunities is extraneous for selecting or invoking this tool, so it is not maximally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only query with no output schema, the description adequately explains the return composition and authentication requirement. It remains incomplete around sibling differentiation and operational behavior such as freshness or limits, leaving the agent with minimum viable context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both chain and contractId are fully documented in the schema. The description only implies a token parameter via 'this token' and adds no chain or contractId guidance beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: get a token market summary, including price history, 24h volume, pool liquidity, and weighted price across pools. This clearly communicates what the tool does. It does not, however, distinguish itself from close siblings such as tenero_market_stats or tenero_token_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance or comparison with alternative market-data tools. The only cross-reference points to earning_opportunities, which is unrelated to choosing between this and sibling Tenero market tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tenero_searchB
Search tokens, pools, and wallets by name, symbol, or contract address. Returns matching tokens with metadata and pricing information. Powered by the Tenero API (api.tenero.io). No authentication required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain to query: stacks, spark, or sportsfun (default: stacks) | stacks |
| query | Yes | Search query: token name, symbol, or contract address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden and does add two useful facts: it is backed by api.tenero.io and requires no authentication. It does not address rate limits, result caps, or error behavior, and the 'search pools and wallets' vs 'returns matching tokens' mismatch is an undisclosed scope detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core capability and return contents are front-loaded in the first two sentences. The 'Powered by the Tenero API (api.tenero.io)' clause and the appended tip are lower-value but short, so the definition stays efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with a fully documented schema, the essentials are covered, and the no-auth note is helpful. But with no annotations and no output schema, the description leaves the agent guessing about result volume, pagination or limits, and whether pools/wallets actually appear in the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both `query` and `chain` are documented in-schema, including the accepted chain values and the 'stacks' default. The description adds nothing parameter-specific beyond restating the matchable query fields, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb (search) plus concrete resource types (tokens, pools, wallets) and enumerates the matchable fields (name, symbol, contract address), which clearly separates it from lookup-style siblings like tenero_token_info. The only wrinkle is a scope drift: it claims to search pools and wallets but then says it 'Returns matching tokens,' leaving the result set slightly ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The query forms it accepts imply usage (discovery by name/symbol/address), but it never states when to pick this over tenero_token_info, tenero_market_summary, or stacks_market_search. The trailing tip routes to earning_opportunities, which is a cross-sell rather than a usage-selection rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tenero_token_infoB
Get token details including metadata, current price, market cap, and 24h volume. Powered by the Tenero API (api.tenero.io). No authentication required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain to query: stacks, spark, or sportsfun (default: stacks) | stacks |
| contractId | Yes | Token contract address in format PRINCIPAL.contract-name (e.g. SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does disclose useful context: it is powered by api.tenero.io and requires no authentication. However, it omits rate limits, data freshness, error behavior, and whether the read operation is idempotent/cacheable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and appropriately short, with the core purpose stated first. The final tip about `earning_opportunities` is tangential to invoking this tool, so the structure is good but not perfectly economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with fully documented schema fields and no output schema, the description is largely complete. It lists the key return fields and notes the unauthenticated API source, though it could better distinguish this tool from the sibling `get_token_info`.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both `chain` and `contractId` are already well-documented in the schema. The description adds no parameter-specific meaning beyond the schema, which is acceptable at baseline 3 given the high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Get token details" and lists metadata, current price, market cap, and 24h volume. It is clear what the tool returns, but it does not differentiate itself from the sibling `get_token_info` or explain what makes this Tenero-backed variant distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives such as `get_token_info`, nor any prerequisites or exclusions. The trailing tip to call `earning_opportunities` is a cross-sell rather than usage guidance for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tenero_top_gainersB
List top gaining tokens by 24h price change percentage on the Stacks ecosystem. Useful for spotting momentum and trending assets. Powered by the Tenero API (api.tenero.io). No authentication required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain to query: stacks, spark, or sportsfun (default: stacks) | stacks |
| limit | No | Maximum number of tokens to return (default: 10, max: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It usefully discloses that no authentication is required and names the backing API, but says nothing about rate limits, pagination, result ordering, or what fields a 'gaining token' record contains. It also claims Stacks-only scope while the `chain` parameter accepts spark and sportsfun, leaving the actual coverage ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening two sentences are efficient and front-loaded with the operative definition. However, the vendor attribution '(api.tenero.io)' and the unrelated 'Tip: call earning_opportunities' sentence consume space without helping the agent select or invoke this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-optional-parameter read tool with no output schema and no annotations, the description covers purpose and auth but omits the return shape (symbol, price, percentage fields) and any behavior on empty or limited results. Adequate to call, but not enough to predict the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both `chain` (with its enum-of-values note) and `limit` (default 10, max 50) are already documented in the schema. The description adds no additional meaning about how these parameters affect the ranking or result set, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('top gaining tokens by 24h price change percentage') scoped to the Stacks ecosystem, which clearly separates it from tenero_top_losers and tenero_trending_pools by metric. It stops short of naming those siblings explicitly, so the agent must infer the contrast from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for spotting momentum and trending assets' implies a use case but gives no when-not conditions, no prerequisites, and no explicit alternative tools. The closing tip instead cross-sells `earning_opportunities`, which does not help decide between this tool and its market-data siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tenero_top_losersB
List top losing tokens by 24h price change percentage on the Stacks ecosystem. Useful for identifying underperforming assets or potential reversal candidates. Powered by the Tenero API (api.tenero.io). No authentication required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain to query: stacks, spark, or sportsfun (default: stacks) | stacks |
| limit | No | Maximum number of tokens to return (default: 10, max: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden. It usefully discloses 'No authentication required' and the upstream provider (api.tenero.io), which is real added context, but says nothing about result ordering, pagination, rate limits, or data freshness/staleness of the 24h window.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is tight and front-loaded, but the promotional 'Tip: call earning_opportunities...' is off-topic for a market-listing tool and does not earn its place in the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-optional-parameter read tool with no output schema, the description is adequate on inputs but never sketches what comes back (token identifiers, price change values, ordering). Without an output schema, one clause on the return shape would materially help an agent decide whether to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so chain and limit are fully documented in the schema and the baseline of 3 applies. The description adds nothing about parameter behavior, and its 'Stacks ecosystem' framing mildly undersells the chain parameter, which also accepts spark and sportsfun.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List top losing tokens by 24h price change percentage') with an explicit scope ('Stacks ecosystem'). It is inherently distinguishable from tenero_top_gainers by direction, though it never names that sibling to make the contrast explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for identifying underperforming assets or potential reversal candidates' implies a use case but gives no when-not conditions, no alternative tools, and no guidance on choosing between this and market_summary/gainers/trending_pools. The closing tip points to an unrelated earnings tool rather than a true alternative for this task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tenero_trending_poolsB
List trending DEX liquidity pools by volume over the last hour. Includes pool platform, token pair, volume, and liquidity details. Powered by the Tenero API (api.tenero.io). No authentication required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain to query: stacks, spark, or sportsfun (default: stacks) | stacks |
| limit | No | Maximum number of pools to return (default: 10, max: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose useful context: read-only inspection implied by 'List', the last-hour time window, the data source (api.tenero.io), and that no authentication is required. It says nothing about rate limits, caching/staleness of the trending data, or pagination behavior beyond the schema's limit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core capability and returned fields are front-loaded in the first two sentences with no waste. The API attribution and the trailing `earning_opportunities` tip are mildly extraneous but short and do not obscure the main point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only listing tool with full schema coverage and no output schema, the description covers what it does, what it returns, the time window, and the auth posture. The remaining gap is sort order and whether results are cached, which is minor at this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both `chain` and `limit` documented including defaults and bounds, so the schema does the heavy lifting. The description adds the 'last hour' time window, which is not expressible in the parameters, but adds nothing about chain semantics or ordering of the returned pools. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope: 'List trending DEX liquidity pools by volume over the last hour.' The description also enumerates the returned fields (platform, token pair, volume, liquidity), so the agent knows exactly what it gets. It does not differentiate from pool-listing siblings such as styx_pools, alex_list_pools, or bitflow_get_routes, which keeps it at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this over the other pool/quote tools in the sibling set. The only routing hint is a 'Tip' to call `earning_opportunities` afterward, which is a next-step suggestion rather than a condition for selecting or avoiding this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tenero_wallet_holdingsB
Get token holdings with current USD value for a Stacks wallet address. Shows portfolio composition including token balances and estimated values. Powered by the Tenero API (api.tenero.io). No authentication required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain to query: stacks, spark, or sportsfun (default: stacks) | stacks |
| address | Yes | Stacks wallet address (SP... or SM...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully states that no authentication is required and names the Tenero API source, but it does not disclose freshness, pagination, rate limits, error behavior, or other operational traits beyond implying a read-only retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence and the description is compact. The earning_opportunities tip is optional and slightly promotional, but the overall structure remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity read tool, the description covers purpose, data source, and no-auth requirement. However, with no annotations and no output schema, it should say more about the returned shape, freshness, or limitations to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both address and chain are already documented in the schema. The description adds context about USD valuation and portfolio composition but no additional parameter semantics beyond what the schema provides; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: get token holdings with current USD value for a Stacks wallet address, plus portfolio composition. It is clear what the tool does, but it does not explicitly distinguish itself from close siblings such as get_token_balance, list_user_tokens, or get_wallet_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like get_token_balance, list_user_tokens, or get_wallet_info. The only usage tip points to earning_opportunities after obtaining holdings, which is a follow-up suggestion rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tenero_wallet_tradesB
Get trade history for a Stacks wallet address. Returns recent buy/sell events with token, pool, and USD value details. Powered by the Tenero API (api.tenero.io). No authentication required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain to query: stacks, spark, or sportsfun (default: stacks) | stacks |
| limit | No | Maximum number of trades to return (default: 20, max: 100) | |
| address | Yes | Stacks wallet address (SP... or SM...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose two useful traits: no authentication required and that results are "recent" buy/sell events (an implicit recency cap). It says nothing about pagination behavior, history depth, rate limits, or whether chains other than stacks are actually supported.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core purpose and return contents, with no padding in the main body. The trailing earnings "Tip" is affiliate-style filler that doesn't help an agent decide or invoke.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description must compensate, and it partially does by naming the returned fields and the data source. Gaps remain around the `chain` parameter's meaning, how far back "recent" goes, and how `limit` interacts with the result set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the three parameters are already documented and the baseline is 3. The description adds no parameter detail and is slightly out of step with the schema, since it frames the tool as Stacks-only while a `chain` parameter accepts stacks, spark, or sportsfun.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ("Get trade history for a Stacks wallet address") and states the returned fields (token, pool, USD value). It does not explicitly distinguish itself from near-siblings like tenero_wallet_holdings or tenero_whale_trades, so the agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus the other Tenero wallet/whale tools, nor any prerequisite or exclusion. The only directive is a cross-sell "Tip" pointing at earning_opportunities, which is next-step advice rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tenero_whale_tradesB
Get recent large/whale trades above threshold value on the Stacks ecosystem. Useful for tracking smart money and large market movements. Powered by the Tenero API (api.tenero.io). No authentication required.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain to query: stacks, spark, or sportsfun (default: stacks) | stacks |
| limit | No | Maximum number of whale trades to return (default: 10, max: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. It does add real context: the upstream API (api.tenero.io) and 'no authentication required.' However it says nothing about rate limits, response shape, pagination, or what threshold defines a 'whale' trade — gaps that matter for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentences are tight and front-loaded. The trailing 'Tip: call earning_opportunities' is promotional filler that does not help an agent decide to call this tool, so not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-optional-parameter read tool with no output schema, the description is adequate but thin: it omits what a returned trade contains, the default window ('recent'), and the meaning of 'large/threshold.' It is callable as-is but leaves the agent guessing about results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3 — the schema already documents chain, defaults, and the 1–50 limit bound. The description adds no parameter detail and even introduces a 'threshold value' concept that has no corresponding parameter in the schema, which could confuse an agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get recent large/whale trades above threshold value.' The 'whale trades' framing separates it reasonably from tenero_wallet_trades, though it never names that sibling explicitly. Minor tension: the description scopes it to 'the Stacks ecosystem' while the chain parameter also accepts spark and sportsfun.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for tracking smart money and large market movements' implies a use case but gives no explicit when-to-use/when-not guidance and names no alternative among the many tenero_* siblings. The only explicit pointer is to `earning_opportunities`, which is unrelated to choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_btcA
Transfer BTC to a recipient address. Builds, signs, and broadcasts a Bitcoin transaction. Requires an unlocked wallet with BTC balance. By default, only uses cardinal UTXOs (safe to spend - no inscriptions). Set includeOrdinals=true to allow spending ordinal UTXOs (advanced users only).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount to send in satoshis (1 BTC = 100,000,000 satoshis) | |
| feeRate | No | Fee rate: 'fast' (~10 min), 'medium' (~30 min), 'slow' (~1 hr), or number in sat/vB | medium |
| recipient | Yes | Bitcoin address to send to (bc1... for mainnet, tb1... for testnet) | |
| includeOrdinals | No | Include ordinal UTXOs (contains inscriptions). Default: false (cardinal only). WARNING: Setting this to true may destroy valuable inscriptions! |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden and does well: it discloses the build/sign/broadcast pipeline, the wallet-unlock prerequisite, and a genuine hazard (spending ordinal UTXOs may destroy inscriptions). It omits confirmation/irreversibility behavior and the default fee resolution, which matters for an irreversible broadcast.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, then prerequisites, then the safety-critical default — good ordering with no redundant sentences. The trailing 'Tip: call earning_opportunities' upsell is promotional and marginally dilutes a task-critical definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description must cover mechanism, prerequisites, and hazards — which it does, including the ordinal-spending danger. Residual gaps are the return value (presumably a txid) and the fee-default behavior, minor for a transfer tool whose parameters are fully documented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so amount, recipient, feeRate, and includeOrdinals are already fully documented in the schema. The description's note about cardinal UTXOs being 'safe to spend - no inscriptions' largely restates the schema's own warning, and it says nothing about feeRate or amount units. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Transfer BTC to a recipient address') and immediately clarifies the mechanism ('Builds, signs, and broadcasts a Bitcoin transaction'). This cleanly separates it from siblings like transfer_stx, transfer_token, transfer_rune and sbtc_transfer without needing the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition ('Requires an unlocked wallet with BTC balance') and explains the default policy of only spending cardinal UTXOs, plus when to override with includeOrdinals=true ('advanced users only'). It never names an alternative tool (e.g. sbtc_transfer or a PSBT flow) for cases where this tool is wrong, so it stops short of full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_nftC
Transfer an NFT (SIP-009) to a recipient address.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Optional fee: 'low' | 'medium' | 'high' preset or micro-STX amount. If omitted, auto-estimated. | |
| tokenId | Yes | Token ID of the NFT to transfer | |
| recipient | Yes | The recipient's Stacks address | |
| contractId | Yes | NFT collection contract ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description must carry the full burden. It merely states what the function does, offering no behavioral traits such as gas cost implications, transaction success conditions, or failure modes inherent to an NFT transfer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is concise and front-loads the primary function immediately. Although the secondary sentence is advisory, it is brief and adds minimal friction to understanding the core operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a function dealing with complex, high-value NFT transactions, the description is highly incomplete. It lacks crucial context regarding transaction failure modes, required signatures, or the financial implications of the fee parameter beyond listing its existence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 100%, which sets the baseline at 3. The description adds minimal semantic value, simply restating that the transfer targets a recipient address and mentions the optional fee, which is already well-defined in the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (transfer) and the asset class (NFT/SIP-009), making its purpose transparent. However, given the extensive list of sibling tools, the distinction between 'transfer_nft' and other token transfer functions relies solely on the explicit mention of 'NFT' and the protocol identifier SIP-009.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a 'Tip' to check `earning_opportunities`, which suggests related functionality but does not provide explicit usage guidelines or define when *not* to use this tool compared to other transfer mechanisms. It suggests a next step, not a constraint on the current step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_runeA
Transfer runes to a recipient address using Runestone OP_RETURN encoding.
Builds a Bitcoin transaction with a Runestone, sends runes to the recipient, and returns remaining runes to the sender Taproot address.
Requires wallet to be unlocked. Amount is in smallest rune units (raw integer). Uses Unisat indexer to fetch rune UTXOs (UNISAT_API_KEY recommended).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount of runes to transfer in smallest unit (integer string, e.g., '1000') | |
| runeId | Yes | Rune ID in 'block:tx' format (e.g., '840000:1') | |
| feeRate | No | Fee rate: 'fast' (~10 min), 'medium' (~30 min), 'slow' (~1 hr), or sat/vB number (default: medium) | |
| toAddress | Yes | Recipient Bitcoin address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that a Bitcoin transaction is constructed, that the remainder is returned to the sender's Taproot address (change behavior), the wallet-unlock prerequisite, and an external dependency on the Unisat indexer with an API-key note. It omits whether the transaction is broadcast automatically and what is returned, and says nothing about fee selection beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Core behavior is front-loaded in the first two sentences and each of those earns its place. The closing "Tip: call earning_opportunities..." is promotional and unrelated to performing a transfer, slightly diluting focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter mutation tool with no annotations and no output schema, the description covers the mechanics, the change output, the unlock prerequisite, and the indexer dependency. What is missing is the terminal outcome — whether it broadcasts and returns a txid, and failure/irreversibility behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents runeId format, amount units, feeRate presets, and toAddress. The description only restates the amount unit convention, adding nothing above the structured data; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (transfer runes) plus the exact mechanism (Runestone OP_RETURN encoding), which cleanly separates it from siblings like transfer_btc, transfer_token, transfer_nft, and the read-only runes_* / get_rune_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a real prerequisite ("Requires wallet to be unlocked") and the unit convention, but never says when to use this versus alternatives such as ordinals_p2p_transfer or the runes_* query tools, nor any exclusion. Usage is implied rather than specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_stxB
Transfer STX tokens to a recipient address. Signs and broadcasts the transaction.
Example: To send 2 STX, use amount "2000000" (micro-STX). 1 STX = 1,000,000 micro-STX
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Optional fee: 'low' | 'medium' | 'high' preset or micro-STX amount. Clamped to 3,000 uSTX max for STX transfers. If omitted, medium-priority fee is auto-resolved. Ignored when sponsored=true. | |
| memo | No | Optional memo message to include with the transfer | |
| amount | Yes | Amount in micro-STX (1 STX = 1,000,000 micro-STX). Example: '2000000' for 2 STX | |
| recipient | Yes | The recipient's Stacks address (starts with SP or ST) | |
| sponsored | No | Use sponsored transaction relay so a relay service pays fees instead of your wallet. Requires SPONSOR_API_KEY env var or wallet-level sponsorApiKey. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the key trait that this signs and broadcasts on-chain ('Signs and broadcasts the transaction'), implying an irreversible write. However it omits prerequisites (unlocked wallet, sufficient balance), confirmation/return behavior (e.g., a txid), and irreversibility warnings.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and mechanism, then a compact unit example; nearly every sentence earns its place. The trailing 'earning_opportunities' tip is tangential to the transfer action and slightly dilutes focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a value-moving tool with no annotations and no output schema, the description is thin on prerequisites and results. An agent still cannot tell from the description whether it needs an unlocked wallet, how failure looks, or what is returned after broadcast.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters including fee presets, sponsored relay, and memo are already documented in the schema. The description's micro-STX example reinforces the amount field but adds nothing beyond what the schema says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource ('Transfer STX tokens to a recipient address') and adds the mechanism ('Signs and broadcasts the transaction'), which distinguishes it from read-only siblings like get_stx_balance. It does not explicitly contrast with near-neighbors such as transfer_token, sbtc_transfer, or pillar_send, so an agent must infer which asset rail to use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and no alternative is named for non-STX assets or for sending via a Pillar wallet. The only guidance is a unit-conversion example and an unrelated tip pointing to earning_opportunities, which is not a routing alternative for this action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_tokenB
Transfer any SIP-010 token to a recipient address.
Supports well-known tokens by symbol: sBTC, USDCx, ALEX, DIKO Or use the full contract ID.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | Optional fee: 'low' | 'medium' | 'high' preset or micro-STX amount. If omitted, auto-estimated. | |
| memo | No | Optional memo message (max 34 bytes) | |
| token | Yes | Token symbol (e.g., 'USDCx') or contract ID | |
| amount | Yes | Amount in smallest unit (depends on token decimals) | |
| recipient | Yes | The recipient's Stacks address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden but only says the transfer is possible. It never states that the operation is an irreversible on-chain mutation, that it requires an unlocked wallet/signing key, that a network fee is deducted, or what the caller gets back on success.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action and the token-identifier convention are front-loaded in two short lines with zero filler. The trailing 'Tip' about earning_opportunities is tangential but brief enough not to bloat the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a value-moving mutation with no annotations and no output schema, the description should cover prerequisites and outcomes. Missing are auth/signing requirements, irreversibility, fee behavior, and whether a transaction ID is returned, leaving the agent to guess at the critical context for a fund transfer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all five parameters (fee, memo, token, amount, recipient) are already documented in the schema, including fee presets and the 34-byte memo limit. The description adds only the concrete symbol examples (sBTC, USDCx, ALEX, DIKO) on top of the schema's 'USDCx' example, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Transfer any SIP-010 token to a recipient address'), which cleanly separates it from transfer_nft and transfer_rune. It does not address why one would use it instead of the sibling sbtc_transfer, even though sBTC is explicitly listed as a supported symbol, leaving that overlap unresolved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the standard 'transfer tokens' framing; there are no stated preconditions (wallet unlocked, sufficient balance) and no exclusions. The one explicit pointer, 'call earning_opportunities', is a cross-sell nudge rather than guidance about when to pick this tool over its near-neighbors.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tx_status_deepA
Deep diagnostic view correlating sender nonces with sponsor nonces for sponsored transactions.
Reads the sender's local pending txid log and cross-references each entry against the sponsor's mempool to show the full lifecycle of sponsored transactions:
Which sender nonce maps to which sponsor nonce
Whether sponsor nonce gaps are blocking specific transactions
Which pending txids are missing from the sponsor mempool entirely
Multiple competing txids (RBF candidates) for the same sender nonce slot
Output per nonce slot: Sender nonce N: - 0xabc (sponsored, sponsor nonce 47) -- BLOCKED by missing sponsor nonces [44, 45] - 0xdef (direct, fee 0.01 STX) -- competing RBF candidate Sender nonce M (0xghi, sponsored) -> sponsor nonce 48 -- pending, no gaps ahead Sender nonce P (0xjkl, sponsored) -> NOT IN SPONSOR MEMPOOL
Use this when check_relay_health shows issues but you need per-transaction clarity. Returns structured JSON with pendingSlots, sponsorMissingNonces, and summary counts.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | STX address to check. Defaults to the active wallet address. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it explains that it reads the local pending txid log, cross-references the sponsor mempool, and details output per nonce slot including gaps, missing txids, and RBF candidates. It also names the structured return fields (pendingSlots, sponsorMissingNonces, summary counts).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and usage are front-loaded and useful, but the description is lengthy with elaborate output examples and an unrelated 'Tip: call earning_opportunities' sentence that does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and no output schema, the description is complete enough for an agent to understand the diagnostic behavior and the shape of the returned JSON. It fully covers what the tool does and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single optional address parameter, so the schema already documents it. The description adds no additional meaning about the address parameter, making baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: a deep diagnostic view correlating sender nonces with sponsor nonces for sponsored transactions. It clearly distinguishes itself from check_relay_health by requiring per-transaction clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says when to use it ('when check_relay_health shows issues but you need per-transaction clarity'), which implicitly routes aggregate checks to check_relay_health. This is a clear selection rule between siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unstake_stxA
Stop a PoX-5 stake early (pox-5 unstake). The STX stays locked through the current reward cycle and unlocks at the start of the next one. Refused during the prepare phase.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that STX stays locked through the current reward cycle, unlocks next cycle, and is refused during the prepare phase, but it omits permissions, irreversibility, fees, and expected response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the core action, lock behavior, and refusal condition. The trailing tip about earning_opportunities is relevant but slightly promotional rather than essential invocation guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter action with no output schema, the description covers the essential action, timing, and refusal condition well. Some behavioral details remain absent, but the low schema complexity keeps the description reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 under the rubric. The description correctly does not invent parameter details where no parameters exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Stop a PoX-5 stake early.' It names the protocol action and scope, making it clearly distinct from related stacking tools such as stack_stx or extend_stacking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Stop ... early' implies the use case, and 'Refused during the prepare phase' gives an important timing constraint. However, it does not explicitly compare this tool with alternatives like extend_stacking or explain prerequisites such as having an active stake.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_createA
Create a new wallet for the agent with a generated BIP39 24-word mnemonic. The wallet is encrypted locally and stored in ~/.aibtc/. IMPORTANT: Save the mnemonic securely - it will only be shown once!
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the wallet (e.g., 'main', 'trading') | |
| network | No | Network for the wallet (default: current network) | |
| password | Yes | Password to protect the wallet (minimum 8 characters) - WARNING: sensitive value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses local encryption, the exact storage path (~/.aibtc/), and the critical one-time-only mnemonic reveal. It stops short of saying whether the new wallet becomes the active wallet, whether creation is reversible, or what happens on duplicate names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core action and the one-time-mnemonic warning front-loaded. The trailing marketing tip for earning_opportunities is the only mildly expendable element.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a state-mutating tool with no annotations and no output schema, the description covers enough to call it safely: encryption, storage location, credential requirements, and the irreversible consequence of losing the mnemonic. Minor gaps remain around post-creation wallet state and duplicate handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains name, network, and the 8-character password minimum. The description adds no parameter-specific semantics beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: 'Create a new wallet ... with a generated BIP39 24-word mnemonic', and adds storage and encryption details. It implicitly distinguishes from wallet_import (import vs generate) but never names the sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is useful operational guidance ('Save the mnemonic securely - it will only be shown once') and a cross-sell tip toward earning_opportunities. But there is no explicit when-to-use-this-vs-alternatives guidance — e.g. that wallet_import should be used when a mnemonic already exists, or what happens if one already exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_deleteA
Permanently delete a wallet. WARNING: This cannot be undone! Make sure you have backed up your mnemonic.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Type 'DELETE' to confirm deletion | |
| password | Yes | Wallet password for confirmation - WARNING: sensitive value | |
| walletId | Yes | Wallet ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and clearly discloses the most important behavioral trait: deletion is permanent and cannot be undone. It also warns the user to back up the mnemonic, though it does not mention unlock/auth requirements or what happens to assets in the wallet.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core warning is front-loaded and concise, but the trailing tip to call `earning_opportunities` is unrelated to wallet deletion and does not help the agent invoke this tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive three-required-parameter tool with no annotations and no output schema, it covers the critical irreversibility warning but omits relevant context such as wallet lock state, authentication prerequisites, and consequences for assets held in the wallet.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so walletId, password, and confirm are already documented in the schema. The description adds no parameter-level meaning beyond the general mnemonic-backup warning, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Permanently delete a wallet.' It clearly distinguishes this destructive wallet operation from sibling wallet tools such as wallet_export, wallet_list, and wallet_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage through the irreversible-delete framing and gives the prerequisite to back up the mnemonic. However, it does not explicitly say when to use this versus alternatives like wallet_export, wallet_lock, or wallet_switch.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_exportA
Export the mnemonic phrase for a wallet. WARNING: Only use this in a secure environment! Anyone with the mnemonic can access your funds.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Type 'I_UNDERSTAND_THE_RISKS' to confirm | |
| password | Yes | Wallet password - WARNING: sensitive value | |
| walletId | No | Wallet ID to export (uses active wallet if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose the key behavioral trait: the output is a mnemonic that grants full fund access, plus a secure-environment precondition. It does not address whether the call is logged, whether password/confirmation gates apply (schema covers that), or what the response shape is, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence and security warning are front-loaded and earn their place, but the trailing 'Tip: call earning_opportunities...' is unrelated promotional noise that dilutes a security-critical tool's description and could distract an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a highly sensitive export tool with no annotations and no output schema, the description covers what is returned and the primary risk. Parameter handling is fully documented by the schema, so remaining gaps (logging, confirmation flow) are minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including a self-documenting enum-like const for confirm and sensitive-value warnings on password. The description adds nothing beyond the schema on parameters, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Export the mnemonic phrase for a wallet') so an agent can distinguish it from siblings like wallet_import, wallet_list, or get_wallet_info. It does not explicitly contrast with those siblings, so a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The warning implies a usage condition ('Only use this in a secure environment'), which is real guidance, but there is no explicit when-to-use/when-not or stated alternative (e.g., use wallet_info if you only need the address). The condition is implied rather than operationalised.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_importB
Import an existing wallet for the agent using a BIP39 mnemonic phrase. The wallet is encrypted locally and stored in ~/.aibtc/.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the wallet | |
| network | No | Network for the wallet (default: current network) | |
| mnemonic | Yes | 24-word BIP39 mnemonic phrase - WARNING: sensitive value | |
| password | Yes | Password to protect the wallet (minimum 8 characters) - WARNING: sensitive value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does disclose meaningful behavior: the wallet is 'encrypted locally and stored in ~/.aibtc/'. However, it omits important traits for a sensitive write operation, such as whether an existing wallet is overwritten, whether the wallet is unlocked/active after import, and what happens on invalid mnemonic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core is two tight, front-loaded sentences. The trailing 'Tip' about earning_opportunities is promotional and does not help an agent decide whether or how to call wallet_import, so it dilutes rather than earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations mean the description carries the disclosure burden, and it covers purpose, encryption, and storage location. It falls short on post-import state and overwrite/error behavior for a mnemonic-handling operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters (name, network, mnemonic, password) are documented in-schema, and the description adds nothing beyond restating BIP39. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Import an existing wallet') plus the mechanism (BIP39 mnemonic phrase), which distinguishes it from wallet_create among the many wallet_* siblings. It doesn't explicitly name wallet_create as the alternative, but 'existing' carries the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'import an existing wallet' implies when to use it versus creating a new one, but there is no explicit when/when-not guidance or named alternative. The appended tip about earning_opportunities is a next-step suggestion, not selection guidance for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_listA
List all wallets available for the agent to use.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a safe read operation and that only agent-usable wallets are returned, but it says nothing about whether locked wallets appear, whether addresses are included, or how large the result set can get. Adequate but thin for a no-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, with the core purpose front-loaded. The second sentence is a promotional tip rather than invocation-relevant information, which slightly dilutes focus but costs little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with no output schema, an agent still needs to know what each wallet entry contains (name? address? index?) to plan the next call. The description omits that, leaving a real gap even at this low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is an empty object, so there is nothing to document. The description correctly implies the result is unfiltered by any input, which is the only semantic that matters here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'List all wallets available for the agent to use.' That distinguishes it from get_wallet_info and wallet_status, which operate on a single wallet, though the description never names those siblings explicitly to make the contrast airtight.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'available for the agent to use' implies the context (agent-scoped enumeration) but gives no explicit when-to-use guidance versus wallet_status, get_wallet_info, or credentials_list. The tip points to earning_opportunities, but that is a next-step recommendation rather than a disambiguation of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_lockA
Lock the agent's wallet, clearing sensitive data from memory.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose one meaningful behavior beyond the name — that sensitive data is cleared from memory. It omits other important traits: whether the wallet must be unlocked first, whether active operations are interrupted, and whether the effect is reversible via wallet_unlock.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action and its effect are front-loaded in a single efficient sentence. The appended 'Tip' about earning_opportunities is off-topic for this tool and does not earn its place, though it is brief enough not to obscure the main point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter tool with no output schema or annotations, the description covers purpose and the memory-clearing effect. However, it leaves gaps an agent would care about: what state the wallet is left in and what subsequent calls will require unlocking, which is exactly the context missing structured fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lock the agent's wallet') plus an effect ('clearing sensitive data from memory'), which clearly distinguishes it from the sibling wallet_unlock. It does not explicitly name or contrast with wallet_unlock/wallet_status, so sibling differentiation is implied by the verb rather than spelled out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied — an agent can infer it should lock the wallet when finished with sensitive operations, but there is no explicit 'use when' or 'do not use when' guidance. The second sentence about earning_opportunities is promotional and does not help decide when to invoke this tool over wallet_unlock or lightning_lock.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_rotate_passwordA
Change the password for a wallet's encrypted keystore. Performs an atomic operation: backs up the keystore, re-encrypts with the new password, verifies the round-trip, then cleans up. If anything fails, the original keystore is restored. If the wallet is currently unlocked, it will be locked after rotation (requires re-unlock with new password).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| walletId | No | Wallet ID to rotate password for (uses active wallet if not specified) | |
| newPassword | Yes | New password (minimum 8 characters) - WARNING: sensitive value | |
| oldPassword | Yes | Current wallet password - WARNING: sensitive value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so well: it discloses atomic backup, re-encryption, verification, cleanup, and rollback behavior on failure. It also discloses the side effect of locking an unlocked wallet.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core operation and the critical atomic/rollback behavior. The final tip about earning_opportunities is unrelated to this tool and does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a sensitive mutation tool with no annotations and no output schema, the description covers the critical behavioral facts an agent needs: atomicity, rollback on failure, required old/new passwords, and the post-rotation locked state. It is complete enough to call safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents walletId, oldPassword, and newPassword requirements. The description adds useful context about re-encryption and locking but does not add parameter-level details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: changing a wallet's encrypted-keystore password. It is clearly distinct from sibling wallet operations like wallet_create, wallet_import, wallet_unlock, and wallet_export.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear operational context, including the important consequence that an unlocked wallet will be locked after rotation and must be re-unlocked with the new password. It does not explicitly route agents between alternatives such as wallet_create, wallet_import, or wallet_unlock for other wallet lifecycle needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_set_timeoutC
Set how long the agent's wallet stays unlocked before automatically locking. Set to 0 to disable auto-lock.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| minutes | Yes | Minutes until auto-lock (0 = never auto-lock) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose whether the timeout persists across sessions or is per-wallet, whether it takes effect immediately, whether existing unlock state is affected, or what permissions/preconditions apply. For a security-relevant wallet setting, these omissions are significant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and efficient. The trailing 'Tip: call earning_opportunities...' is an unrelated cross-sell that does not help an agent invoke this tool and dilutes an otherwise two-sentence definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter setter with no annotations and no output schema, the description covers what the tool does and the special value of 0. It is still incomplete regarding persistence, preconditions, and confirmation of effect, which an agent would want before altering wallet security settings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter 'minutes' is fully documented in the schema, including the 0 = never auto-lock semantics. The description repeats that same fact but adds nothing new such as an upper bound or default value, so it sits at the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it sets the wallet's auto-lock timeout, and clarifies the sentinel value (0 = disable auto-lock). That is enough for an agent to distinguish it from wallet_lock, wallet_unlock, and wallet_status, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus simply calling wallet_lock/wallet_unlock directly, and no stated prerequisites such as whether the wallet must already be unlocked or whether a password is required. The only extra sentence is a promotional pointer to earning_opportunities, which is not usage guidance for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_statusB
Get the agent's wallet status - whether it has a wallet, if it's unlocked, and what it can do.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Get' implies a read-only, non-destructive operation and the description discloses the three facets of the response (has wallet, unlocked, capabilities), but it says nothing about whether secrets are exposed, whether it requires an unlocked session, or what happens when no wallet exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and efficient, covering the tool's purpose in one line. The trailing 'Tip' is a promotional aside that does not help select or invoke this tool, so it slightly dilutes an otherwise tight definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and no parameters, the description is the only source of behavioral detail, and it only vaguely characterizes the return values ('what it can do'). Combined with the unresolved overlap against get_wallet_info, an agent has enough to call it but not full confidence about the response or when it is the right choice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is an empty object with zero parameters, so there are no parameter semantics to document; the baseline of 4 applies. The description correctly requires no arguments from the caller.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get the agent's wallet status') and enumerates what is returned: wallet existence, lock state, and capabilities. It is clear on its own, but it never distinguishes itself from the sibling get_wallet_info, which appears to cover overlapping ground, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus get_wallet_info or the dedicated wallet_unlock/wallet_list tools, which is the main ambiguity an agent faces here. The only pointer is a 'Tip' routing to earning_opportunities, which is a cross-sell for downstream asset use rather than usage guidance for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_switchB
Switch to a different wallet. Note: The new wallet will need to be unlocked before use.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| walletId | Yes | Wallet ID to switch to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. It does disclose a real behavioral prerequisite (the target wallet must be unlocked), which is valuable, but it omits other mutation semantics: what happens to the currently active wallet (does it stay unlocked, does its session end?), and behavior when walletId is unknown or invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence and the unlock note are tight and front-loaded and earn their place. The trailing "Tip: call earning_opportunities..." is promotional rather than selection-relevant and dilutes an otherwise two-sentence definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter wallet-state tool with no output schema, the description covers the essential action plus the critical prerequisite. Remaining gaps (error on unknown ID, effect on the previously active wallet) are secondary but not trivial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single documented walletId parameter, so the baseline is 3. The description adds no extra semantics about where the ID comes from (e.g., wallet_list) or whether an unlocked/active state is required for that specific wallet, so it does not exceed the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ("Switch to a different wallet") that an agent can readily distinguish from wallet_list, wallet_create, or wallet_import. It also implicitly signals a relationship to wallet_unlock via the unlock prerequisite, though it never names the sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage only: the mention that the new wallet "will need to be unlocked before use" implies this is the step prior to unlocking, which is genuinely helpful sequencing. However, there is no explicit when-to-use/when-not, no alternative (e.g., wallet_create/wallet_import for adding a wallet), and the appended `earning_opportunities` tip is unrelated to selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_unlockA
Unlock the agent's wallet to enable transactions. If no wallet ID is provided, unlocks the active wallet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| password | Yes | Wallet password - WARNING: sensitive value | |
| walletId | No | Wallet ID to unlock (uses active wallet if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose a state change (transactions become possible) and the active-wallet fallback, which is useful. It says nothing about what happens on a wrong password, whether unlock is session-scoped or subject to wallet_set_timeout, whether failed attempts are throttled, or how the agent should treat the sensitive password value beyond the schema's own warning.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core behavior and the default-wallet rule are front-loaded in two tight sentences. The trailing 'Tip: call earning_opportunities...' is promotional cross-sell that does not help an agent decide whether or how to unlock a wallet and dilutes an otherwise lean definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a security-sensitive, two-parameter tool with no annotations and no output schema, the description is adequate on the happy path but omits failure behavior and what the call returns (a session handle versus a plain success acknowledgement). Those omissions are consequential for an agent that must sequence unlock before transfer_stx or call_contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both password (with a sensitivity warning) and walletId (with its active-wallet fallback). The description restates the walletId default without adding format, constraints, or password-handling guidance, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Unlock the agent's wallet') plus the effect ('enable transactions'), which cleanly distinguishes it from wallet_lock, wallet_switch, and wallet_create in the sibling list. It stops short of naming those siblings explicitly, but the operation is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for invocation ('to enable transactions') and specifies the default behavior when walletId is omitted ('unlocks the active wallet'), which is a real decision point for the agent. It offers no explicit when-not-to-use guidance or pointer to the inverse (wallet_lock) for the re-lock case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yield_dashboard_apy_breakdownA
Current APY rates across all supported Stacks DeFi protocols.
Returns live APY data for Zest Protocol (sBTC lending), ALEX DEX (aBTC/STX LP), Bitflow (sBTC LP), and STX Stacking. No wallet required — pure market data.
Data sources:
Zest Protocol: on-chain reserve state (current-liquidity-rate, Ray units)
ALEX DEX: null — no live APY source
Bitflow: null — no public pool APY endpoint
STX Stacking: null — pox-5 rewards are sBTC, paid per signer manager
Mainnet data only (contract addresses are mainnet-specific).
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It usefully states no wallet is required, data is mainnet-only, and where APY data comes from; but it contradicts itself by saying 'all supported' protocols are covered while immediately listing three as 'null' with no live source, making the actual output behavior unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and constraints, and the per-protocol data-source list is relevant. It is slightly verbose and repeats 'null' explanations, but most sentences earn their place by disclosing coverage limitations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-annotation, no-output-schema read tool, the description gives enough context to understand the domain and main constraints. Still, it does not clarify the actual response shape for the one working source (Zest) or resolve whether the tool returns null entries for the other protocols.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics to explain. The schema is empty and fully covered; a baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Current APY rates across all supported Stacks DeFi protocols') and names the covered protocols. It is clear enough for an agent to know this is a market-data APY breakdown, though it does not explicitly distinguish itself from sibling tools like yield_dashboard_overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides some useful context ('No wallet required — pure market data') and routes to `earning_opportunities` as a follow-up. However, it never states when to use this tool instead of `yield_dashboard_overview` or `yield_dashboard_positions`, leaving sibling selection mostly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yield_dashboard_overviewA
Portfolio overview across Stacks DeFi protocols.
Aggregates positions across Zest Protocol (sBTC lending), ALEX DEX (AMM LP), Bitflow (DEX LP), and STX Stacking. Returns total value, weighted APY, and per-protocol breakdown.
Read-only. Mainnet-only. Requires an unlocked wallet for address context.
Note: ALEX LP and Bitflow LP position values are 0 — these protocols do not expose user LP positions via read-only calls. Only Zest has a live APY; ALEX, Bitflow and Stacking report apyPct: null.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the safety profile (read-only), the network constraint (mainnet-only), the precondition of an unlocked wallet, and — most valuably — known data quirks where ALEX/Bitflow LP values are 0 and only Zest reports a live APY. It stops short of explaining valuation method or how a locked wallet manifests as an error.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence, then coverage and return shape, then constraints, then caveats, then a single actionable tip. Every line carries information; nothing is filler despite the multi-paragraph layout.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by naming the return fields (total value, weighted APY, per-protocol breakdown) and flagging null APYs and zeroed LP values. It could go one step further and describe the structure of the per-protocol breakdown entries, but an agent has enough to call and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. Nothing in the description contradicts or muddies the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (portfolio overview of Stacks DeFi positions), enumerates the four protocols covered, and names the return payload (total value, weighted APY, per-protocol breakdown). It does not, however, distinguish itself from its close siblings yield_dashboard_positions and yield_dashboard_apy_breakdown, which an agent would need to disambiguate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides prerequisites (read-only, mainnet-only, requires an unlocked wallet) and a next-step tip pointing to earning_opportunities, but gives no when-to-use guidance relative to the other yield_dashboard_* tools. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yield_dashboard_positionsA
Detailed per-protocol DeFi position data.
Returns an array of positions across Zest Protocol, ALEX DEX, Bitflow, and STX Stacking. Each position includes protocol, asset, value, APY, risk score, and protocol-specific details.
Read-only. Mainnet-only. Requires an unlocked wallet for address context.
Known limitations:
ALEX LP and Bitflow LP: valueSats shows 0 (protocol does not expose user LP balances via read-only calls).
apyPct is null for ALEX, Bitflow and Stacking (no live source).
Stacking: denominated in microSTX, not sats.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses important traits: read-only, mainnet-only, requires an unlocked wallet, and lists three known data limitations (valueSats=0, apyPct=null, microSTX denomination). It could be improved with error-case behavior, but it's substantially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose, then structure: returns, preconditions, limitations, and a tip. Every section is informative and there is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description provides a useful field list, preconditions, and limitations. It stops short of relating the tool to siblings like yield_dashboard_overview, but overall it gives enough context for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so there is no parameter semantics to explain. The baseline for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns detailed per-protocol DeFi positions across four named protocols. It distinguishes itself from a generic overview by emphasizing 'Detailed per-protocol', though it doesn't explicitly name a sibling to avoid.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like yield_dashboard_overview or zest_get_position. The 'Tip' points to earning_opportunities for a different purpose, but does not clarify when to select this specific tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yield_dashboard_rebalanceA
Rebalance suggestions based on risk-adjusted yield.
Reads current positions across all protocols, compares to optimal allocation for the chosen risk tolerance, and returns actionable suggestions.
Risk tolerance levels:
low: Zest 40%, ALEX 10%, Bitflow 10%, Stacking 40%
medium: Zest 45%, ALEX 20%, Bitflow 15%, Stacking 20% (default)
high: Zest 50%, ALEX 30%, Bitflow 20%, Stacking 0%
Read-only. Mainnet-only. Requires an unlocked wallet for address context.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| riskTolerance | No | Risk tolerance level: low, medium, or high (default: medium) | medium |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden and does well: it states the tool is read-only, mainnet-only, and requires an unlocked wallet for address context. It also explains the core behavior of reading current positions and comparing to an optimal allocation, though it does not detail the format or scope of the returned suggestions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and behavior, then provides a structured risk-tolerance table that earns its place by clarifying the parameter. The trailing tip about earning_opportunities is slightly tangential but still useful for directing the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only suggestion tool with no annotations and no output schema, the description covers the essential context: purpose, process, risk levels, safety constraints, and wallet requirement. It stops short of describing the response shape, but the phrase 'returns actionable suggestions' gives enough context for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3. The description adds meaningful value beyond the schema by listing the exact target allocations for low, medium, and high risk tolerance and noting medium as default, which directly informs parameter selection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: it produces rebalance suggestions based on risk-adjusted yield, reads positions across protocols, and compares them to an optimal allocation. It is distinguishable from siblings like yield_dashboard_overview and yield_dashboard_positions by emphasizing actionable suggestions rather than raw dashboard data, though it does not explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the risk-tolerance levels and the statement that it returns actionable suggestions, with prerequisites such as mainnet-only and unlocked wallet noted. However, it does not explicitly say when to choose this over sibling tools like yield_dashboard_overview or yield_dashboard_positions, nor does it state exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yield_hunter_configureB
Configure yield hunter settings.
Adjust the deposit threshold, reserve, or check interval. Changes take effect on the next check cycle.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| reserve | No | sBTC (in sats) to keep liquid, never deposited | |
| interval | No | Check interval in seconds | |
| threshold | No | Minimum sBTC balance (in sats) before depositing |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose one worthwhile behavior the schema cannot: 'Changes take effect on the next check cycle.' However, for a mutation tool it says nothing about permissions/auth, whether prior values are overwritten or merged, defaults when parameters are omitted (all three are optional), or validation of the sats/seconds values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first line, the second line enumerates the settings, and the third supplies the behavioral timing note. The trailing tip is a slight detour but functions as a useful next-step pointer rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Three optional parameters, no annotations, and no output schema. The description covers purpose, scope of mutation, and effect timing, which is a reasonable core, but it leaves the agent guessing about defaults for omitted fields, acceptable value ranges, and what the tool reports back on success.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter carries its own unit and meaning, so the baseline is 3. The description names the same three concepts (threshold, reserve, interval) but adds no semantics beyond the schema, such as valid ranges, ordering constraints, or what happens on omission.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Configure yield hunter settings') and enumerates the three adjustable settings (deposit threshold, reserve, check interval), so the agent knows exactly what the tool mutates. It does not explicitly contrast itself with the close siblings yield_hunter_start, yield_hunter_stop, and yield_hunter_status; the 'configure' verb implies the distinction but leaves it for inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The listing of adjustable settings implies when to call it, and the tip points to earning_opportunities for the related 'what to do next' workflow. But there is no explicit statement of when to use this versus yield_hunter_start/stop/status, no prerequisites, and no exclusions; usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yield_hunter_startA
Start autonomous yield hunting.
This will:
Monitor your wallet for sBTC
Automatically deposit sBTC to Zest Protocol when balance exceeds threshold
Keep a configurable reserve (default: 0, deposits all sBTC)
Wait for transaction confirmations before proceeding
Retry failed transactions with exponential backoff
Run continuously until stopped
Requires an unlocked wallet (use wallet_unlock first). Only works on mainnet (Zest Protocol is mainnet-only).
Note: Stacks transaction fees are paid in STX, not sBTC.
Default settings:
Deposit threshold: 10,000 sats (0.0001 sBTC)
Reserve: 0 sats (deposit all sBTC to maximize yield)
Check interval: 10 minutes
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| reserve | No | sBTC (in sats) to keep liquid, never deposited. Default: 0 (deposit all) | |
| interval | No | Check interval in seconds. Default: 600 (10 minutes) | |
| threshold | No | Minimum sBTC balance (in sats) before depositing. Default: 10000 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses continuous operation, automatic deposits, confirmation waiting, retry/backoff behavior, default reserve semantics, and STX fee requirements. It omits some edge cases such as what happens if an instance is already running, but overall provides strong behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and uses a numbered list for clarity. It is longer than ideal because the default settings partially duplicate the schema, but the structure is appropriate for a complex autonomous tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, zero annotations, and no output schema, the description covers the important operational context: wallet prerequisite, mainnet restriction, automation flow, fees, defaults, and a related discovery tool. It leaves minor gaps around return behavior and idempotency, but those are not critical for invoking it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented in the schema. The description repeats the key defaults (threshold 10,000 sats, reserve 0, interval 10 minutes) but adds little syntax or meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: starting autonomous yield hunting that monitors sBTC and deposits it into Zest Protocol. It also lists the exact automation behavior, making it easy to distinguish from yield_hunter_stop, yield_hunter_status, and yield_hunter_configure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states prerequisites (unlocked wallet via wallet_unlock) and a key constraint (mainnet only). It implies stopping via 'until stopped' and points to earning_opportunities, but does not explicitly contrast with yield_hunter_configure or yield_hunter_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yield_hunter_statusA
Get current yield hunter status.
Shows:
Whether yield hunting is active
Current configuration
Statistics (checks run, deposits made)
Recent activity logs
Current Zest position
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It usefully enumerates what is reported (active flag, configuration, statistics, activity logs, Zest position), which implies a read-only, side-effect-free call, but it never states that explicitly or covers auth/prerequisite conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence and the bulleted list of returned content is scannable. The closing tip is marginally useful rather than essential, so it is not maximally tight but is far from padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description must carry the return-value burden, and it does so by naming the five categories of status information. Only finer detail (formats, whether configuration is raw or summarized) is missing, which is minor for a diagnostic status call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. The schema and description are consistent on this point.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Get current yield hunter status") and enumerates the five content areas returned, so the agent knows exactly what it gets. It does not distinguish itself from closely related siblings such as yield_dashboard_overview or yield_dashboard_positions, leaving that differentiation to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: as a zero-parameter status read, an agent can reasonably infer it belongs before yield_hunter_start/stop/configure, but the description never says so. The only explicit guidance is a cross-reference to earning_opportunities, which points to a follow-up action rather than a when-to-use-this-vs-alternative decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yield_hunter_stopA
Stop autonomous yield hunting.
Stops the background process that monitors and deposits sBTC. Your existing Zest positions remain untouched.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load, and it does disclose real behavior: a background process monitoring and depositing sBTC, and that existing Zest positions are left untouched. It does not say whether the stop is reversible without yield_hunter_start, what happens to an in-flight deposit, or whether auth/unlock is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, followed by a state-safety clarification. The closing tip is slightly tangential but earns its place by redirecting the agent after stopping.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, no-output-schema control tool, the essentials are covered: what is stopped, what is preserved, and where to go next. The main omissions are restart guidance and whether the halt takes effect immediately for pending deposits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a no-arg tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Stop autonomous yield hunting') and clarifies it in the second sentence as the background process that monitors and deposits sBTC. This clearly separates it from yield_hunter_start/status/configure by implication, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: you call it to halt the automated yield hunting. The 'Tip' points to earning_opportunities, but that is a post-stop next step rather than guidance on when to stop versus, say, reconfigure via yield_hunter_configure. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zest_borrowA
Borrow assets from Zest Protocol (v0-4-market).
Borrows assets against your supplied collateral. Ensure you have sufficient collateral to maintain a healthy LTV. You can use the asset symbol (e.g., 'USDC', 'sBTC') or full contract ID.
Three LTV tiers: ~75% (borrow limit), ~85% (partial liquidation), ~95% (full liquidation).
Note: Zest Protocol is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | Asset symbol (e.g., 'sBTC', 'USDC') or full contract ID | |
| amount | Yes | Amount to borrow (in smallest units) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden and does well: it warns about collateral/LTV health, describes the three LTV tiers and liquidation thresholds (~75%/85%/95%), and notes mainnet-only availability. It omits some operational details such as interest accrual, whether collateral must first be enabled, and what the call returns or requires for signing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably front-loaded and structured with notes for market version, risk, and network availability. It has minor redundancy between the first two sentences and the trailing earning_opportunities tip is useful but slightly tangential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a borrow operation with no annotations and no output schema, the description covers the critical risk and eligibility context: collateral, LTV/liquidation tiers, and mainnet-only availability. It could be more complete by mentioning prerequisite actions such as supplying/enabling collateral or explaining transaction/return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already well documented. The description repeats that the asset can be a symbol or full contract ID, but adds no meaning beyond the schema for 'asset' or 'amount'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'Borrow assets from Zest Protocol (v0-4-market)' and clarifies that the action is against supplied collateral. It is clearly distinct in ordinary language from siblings like zest_supply, zest_withdraw, and zest_repay, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear usage context: collateral must be sufficient to maintain a healthy LTV, and Zest Protocol is only available on mainnet. It does not state when-not to use it or explicitly contrast it with sibling operations such as zest_repay or zest_supply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zest_enable_collateralA
Add existing zTokens as collateral on Zest Protocol v2.
Use this when you deposited directly to a vault and need to register those zTokens as collateral for borrowing.
Note: zest_supply already handles this atomically via supply-collateral-add. This tool is only needed if you used vault deposit separately.
Mainnet only.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | Asset symbol (e.g., 'sBTC', 'USDC') or full contract ID | |
| amount | Yes | Amount of zTokens to add as collateral (in smallest units) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses useful context such as "Mainnet only" and the relationship to zest_supply, but it does not state wallet/signature requirements, whether the operation is reversible, or what happens to existing collateral positions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core action, and every line earns its place. The note and tip are directly relevant to correct tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter DeFi action with no output schema, the description covers purpose, prerequisites, network, and the main alternative. It could mention expected position effects or transaction requirements, but it is otherwise complete enough to select and call the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented by the schema. The description says the tool adds zTokens as collateral but adds no syntax, formatting, or constraints beyond the schema's own asset and amount descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Add existing zTokens as collateral on Zest Protocol v2." It clearly distinguishes the tool from zest_supply by explaining that zest_supply handles the same action atomically via supply-collateral-add.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: use this when you deposited directly to a vault and need to register those zTokens as collateral. It also names the alternative workflow and clarifies that this tool is only needed if vault deposit was done separately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zest_get_positionA
Get user's lending position on Zest Protocol (v0-4-market).
Returns collateral, debt, health factor, and LTV data across all assets. The position query returns USD-denominated totals.
Note: Zest Protocol is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | No | Asset symbol (e.g., 'sBTC', 'USDC') or full contract ID | sBTC |
| address | No | User address (uses wallet if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses that the query returns collateral, debt, health factor, and LTV data, that totals are USD-denominated, and that Zest Protocol is mainnet-only. It does not cover edge cases like empty positions or failure behavior, but for a read-only position query the key behavioral context is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and return fields, followed by a relevant mainnet note. The final tip about `earning_opportunities` is useful but slightly tangential; overall the text is efficient without wasted filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description needs to explain the return shape and operating constraints. It does so adequately by naming the key returned values, USD denomination, and mainnet-only availability. It could be stronger by clarifying response structure or what happens when no position exists, but the essential context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented. The description adds some context by saying data is returned "across all assets" and in USD-denominated totals, but it does not clarify how the `asset` parameter scopes the result or reconcile that with the "all assets" phrasing, so it only marginally improves parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: "Get user's lending position on Zest Protocol (v0-4-market)." It then enumerates the position data returned (collateral, debt, health factor, LTV), making the tool clearly distinguishable from generic wallet or balance tools and from other Zest actions such as supply, borrow, or repay.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and description, and the mainnet-only note is useful context. However, it does not explicitly say when to use this versus related Zest tools or other position tools, nor does it state prerequisites such as needing an existing lending position.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zest_list_assetsA
List all supported assets on Zest Protocol (v0-4-market).
Returns the list of assets that can be supplied, borrowed, or used as collateral. Each asset includes its symbol, name, and contract ID.
Supported assets: wSTX, sBTC, stSTX, USDC, USDH, stSTXbtc.
Note: Zest Protocol is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does reasonably well: it states this returns a list, names the return fields, and flags the mainnet-only constraint. It does not explicitly call out read-only/non-destructive behavior, but the listing nature makes that clear and the mainnet note is the key behavioral caveat.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose, then return shape, supported assets, and a mainnet caveat. It is mostly efficient, though the hardcoded supported-asset list may become stale and is somewhat redundant with the return description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No parameters and no output schema, but the description explains what the return contains (symbol, name, contract ID), which assets are supported, and that the protocol is mainnet-only. That is sufficient for an agent to decide whether and how to call this simple discovery tool. Minor gap: it does not explicitly state the operation is read-only, though listing makes that clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to document and the baseline is 4. The description appropriately focuses on scope and return shape instead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: list all supported assets on Zest Protocol, scoped to v0-4-market. The purpose is unmistakable and distinct from sibling mutation tools like zest_supply or zest_borrow, though it does not explicitly name those siblings for contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied as a discovery step before supplying, borrowing, or using collateral, and the note that Zest is mainnet-only is a useful precondition. The tip to call earning_opportunities gives a follow-on action, but the description never explicitly says when to use this versus zest_get_position or the supply/borrow tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zest_repayA
Repay borrowed assets to Zest Protocol (v0-4-market).
Repays borrowed assets plus accrued interest. You can use the asset symbol (e.g., 'USDC', 'sBTC') or full contract ID.
Note: Zest Protocol is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | Asset symbol (e.g., 'sBTC', 'USDC') or full contract ID | |
| amount | Yes | Amount to repay (in smallest units) | |
| onBehalfOf | No | Optional: repay on behalf of another address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that repayment includes accrued interest and that the protocol is mainnet-only — non-obvious facts an agent would otherwise have to discover on-chain. However, it never states that this is a signed, gas-paying transaction requiring an unlocked wallet and an existing borrow position, nor whether token approval/allowance is needed first — significant omissions for a funds-moving call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, then mechanics, then the mainnet caveat. Four short lines, each carrying information. The closing tip is a mild tangent to repayment but is a cheap and useful cross-sell pointer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-annotation, no-output-schema mutation on a lending protocol, the description covers the protocol constraint and interest behavior but leaves out the wallet/approval prerequisites and what a successful repayment yields. Adequate to call, thin on what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters (asset, amount, onBehalfOf) are already documented in structured data. The description restates the symbol-or-contract-ID option for asset but adds no syntax, formatting, or unit detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Repay borrowed assets to Zest Protocol') plus the market version, and the collateral/repay distinction is immediately separable from siblings zest_borrow, zest_supply, and zest_withdraw. An agent can route here without opening any other schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real preconditions: Zest is mainnet-only, and the asset may be a symbol or full contract ID. It also cross-references earning_opportunities for the post-repay path. What's missing is the counterpart direction (when to use zest_borrow vs zest_repay) and any prerequisite that a borrow position must already exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zest_supplyA
Supply assets to Zest Protocol (v0-4-market).
Deposits assets and adds them as collateral in one atomic operation. The supplied assets earn yield AND provide borrowing power. You can use the asset symbol (e.g., 'sBTC', 'USDC') or full contract ID.
Supported assets: wSTX, sBTC, stSTX, USDC, USDH, stSTXbtc.
Note: Zest Protocol is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | Asset symbol (e.g., 'sBTC', 'USDC') or full contract ID | |
| amount | Yes | Amount to supply (in smallest units) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that deposits are atomic and automatically add collateral, and that supplied assets earn yield while providing borrowing power. It does not disclose wallet prerequisites, irreversibility, fees, approval requirements, or what the tool returns after execution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, and well-organized. The opening sentence states the core action, and the remaining lines add relevant constraints and context without unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter transactional tool with no output schema or annotations, the description covers purpose, supported assets, atomic behavior, collateral effect, and mainnet availability. It still leaves out operational prerequisites such as wallet state, fees, failure behavior, and response format, but is largely sufficient to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline would be 3. The description adds meaningful parameter context by listing supported assets (wSTX, sBTC, stSTX, USDC, USDH, stSTXbtc) and reiterating that asset can be a symbol or full contract ID. It does not elaborate on amount formatting beyond the schema's 'smallest units' note.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: supply assets to Zest Protocol's v0-4-market. It also clarifies that this deposits assets and enables them as collateral in one atomic operation, which distinguishes it from borrow, withdraw, or repay actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: it is for supplying supported assets on Zest mainnet, with a note that Zest is mainnet-only. However, it does not explicitly compare this tool with alternatives such as zest_borrow, zest_withdraw, or pillar_supply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zest_withdrawA
Withdraw assets from Zest Protocol (v0-4-market).
Removes collateral and redeems for underlying assets in one atomic operation. You can use the asset symbol (e.g., 'sBTC', 'USDC') or full contract ID.
Note: Amount is in zToken shares. Zest Protocol is only available on mainnet.
Tip: call earning_opportunities to see how to put your assets to work.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | Asset symbol (e.g., 'sBTC', 'USDC') or full contract ID | |
| amount | Yes | Amount of zToken shares to withdraw |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and does disclose meaningful behavior: the operation is atomic, it removes collateral AND redeems underlying, and it is mainnet-only. It omits what an agent most needs for a mutation tool — wallet/permission requirements, gas/fee implications, and what happens if outstanding borrows make collateral removal unsafe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and mechanism, followed by a short note and a cross-reference tip; no filler sentences. The closing 'Tip' line is optional ecosystem promotion rather than invocation guidance, which slightly dilutes focus but is short enough not to hurt.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation tool with no annotations and no output schema, the description covers what the tool does and the unit semantics but leaves the agent without required-state context (must a position already exist?) and return behavior (does it report amounts redeemed or a tx hash?). Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are already described there, so the schema does the heavy lifting. The description's share-denomination note and asset-symbol-vs-contract-ID hint largely restate what the schema says, adding emphasis but no new syntax or constraint information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('Withdraw assets from Zest Protocol') plus the market version, and the second sentence clarifies the mechanism (collateral removal + redemption of underlying in one atomic operation). This is easily distinguishable from sibling tools zest_supply, zest_borrow, and zest_repay.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete preconditions — mainnet only, amount denominated in zToken shares rather than underlying — and points to `earning_opportunities` as a follow-up. It does not explicitly contrast with alternatives such as zest_repay (for clearing debt) or a plain token transfer, so routing among siblings still requires inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v1.77.1- Added
inbox_auto_reply - Added
inbox_auto_reply_configure
385 tool updates
v1.77.0- First observed
alex_get_pool_info - First observed
alex_get_swap_quote - First observed
alex_list_pools - First observed
alex_swap - First observed
arxiv_compile_digest - First observed
arxiv_list_digests - First observed
arxiv_search - First observed
atstake_cancel_bid - First observed
atstake_get_bid - First observed
atstake_legion_claim_credit - First observed
atstake_legion_conclude - First observed
atstake_legion_get_proposal - First observed
atstake_legion_list_proposals - First observed
atstake_legion_propose - First observed
atstake_legion_redeem_vault - First observed
atstake_legion_status - First observed
atstake_legion_vote - First observed
atstake_market_status - First observed
atstake_merge_complete_set - First observed
atstake_mint_complete_set - First observed
atstake_place_bid - First observed
atstake_position - First observed
atstake_redeem - First observed
atstake_resolve_idle - First observed
atstake_subject - First observed
atstake_transfer_shares - First observed
bitflow_cancel_order - First observed
bitflow_create_order - First observed
bitflow_get_keeper_contract - First observed
bitflow_get_keeper_user - First observed
bitflow_get_order - First observed
bitflow_get_quote - First observed
bitflow_get_routes - First observed
bitflow_get_swap_targets - First observed
bitflow_get_ticker - First observed
bitflow_get_tokens - First observed
bitflow_swap - First observed
bounty_accept - First observed
bounty_cancel - First observed
bounty_create - First observed
bounty_get - First observed
bounty_list - First observed
bounty_my_posted - First observed
bounty_my_submissions - First observed
bounty_paid - First observed
bounty_submissions - First observed
bounty_submit - First observed
broadcast_transaction - First observed
btc_sign_message - First observed
btc_verify_message - First observed
call_contract - First observed
call_read_only_function - First observed
check_bns_availability - First observed
check_relay_health - First observed
claim_bns_name_fast - First observed
claim_stacking_rewards - First observed
credentials_delete - First observed
credentials_get - First observed
credentials_list - First observed
credentials_set - First observed
credentials_unlock - First observed
delete_hiro_api_key - First observed
delete_stacks_api_url - First observed
deploy_contract - First observed
dual_stacking_enroll - First observed
dual_stacking_get_rewards - First observed
dual_stacking_opt_out - First observed
dual_stacking_status - First observed
earning_opportunities - First observed
estimate_child_inscription_fee - First observed
estimate_inscription_fee - First observed
execute_x402_endpoint - First observed
extend_stacking - First observed
get_account_info - First observed
get_account_transactions - First observed
get_block_info - First observed
get_bns_info - First observed
get_bns_price - First observed
get_btc_address_txs - First observed
get_btc_balance - First observed
get_btc_fees - First observed
get_btc_mempool_info - First observed
get_btc_transaction_status - First observed
get_btc_utxos - First observed
get_cardinal_utxos - First observed
get_collection_info - First observed
get_contract_events - First observed
get_contract_info - First observed
get_hiro_api_key - First observed
get_inscription - First observed
get_inscriptions_by_address - First observed
get_mempool_info - First observed
get_network_status - First observed
get_nft_history - First observed
get_nft_holdings - First observed
get_nft_metadata - First observed
get_nft_owner - First observed
get_ordinal_utxos - First observed
get_pox_info - First observed
get_rune_balances - First observed
get_rune_utxos - First observed
get_server_version - First observed
get_stacking_rewards - First observed
get_stacking_status - First observed
get_stacks_api_url - First observed
get_stx_balance - First observed
get_stx_fees - First observed
get_taproot_address - First observed
get_token_balance - First observed
get_token_holders - First observed
get_token_info - First observed
get_transaction_status - First observed
get_wallet_info - First observed
identity_get - First observed
identity_get_last_id - First observed
identity_get_metadata - First observed
identity_register - First observed
identity_set_approval - First observed
identity_set_metadata - First observed
identity_set_uri - First observed
identity_set_wallet - First observed
identity_transfer - First observed
identity_unset_wallet - First observed
inference_check_provider - First observed
inference_list_providers - First observed
inference_register_provider - First observed
inference_reveal_key - First observed
inference_update_provider - First observed
inscribe - First observed
inscribe_child - First observed
inscribe_child_reveal - First observed
inscribe_reveal - First observed
jingswap_cancel_cycle - First observed
jingswap_cancel_sbtc - First observed
jingswap_cancel_stx - First observed
jingswap_close_deposits - First observed
jingswap_deposit_sbtc - First observed
jingswap_deposit_stx - First observed
jingswap_get_cycle_state - First observed
jingswap_get_cycles_history - First observed
jingswap_get_depositors - First observed
jingswap_get_prices - First observed
jingswap_get_settlement - First observed
jingswap_get_user_activity - First observed
jingswap_get_user_deposit - First observed
jingswap_settle - First observed
jingswap_settle_with_refresh - First observed
legion_conclude - First observed
legion_contribute - First observed
legion_get_story - First observed
legion_inscribe_reveal - First observed
legion_inscribe_story - First observed
legion_list_stories - First observed
legion_my_position - First observed
legion_propose_story - First observed
legion_sponsor - First observed
legion_status - First observed
legion_vote - First observed
lightning_claim_deposit - First observed
lightning_create - First observed
lightning_create_invoice - First observed
lightning_fund_from_btc - First observed
lightning_import - First observed
lightning_lock - First observed
lightning_pay_invoice - First observed
lightning_status - First observed
lightning_unlock - First observed
list_stacking_signers - First observed
list_user_domains - First observed
list_user_tokens - First observed
list_x402_endpoints - First observed
lookup_bns_name - First observed
news_check_status - First observed
news_claim_beat - First observed
news_deactivate_editor - First observed
news_editor_check_earnings - First observed
news_editor_file_review - First observed
news_editor_review_signal - First observed
news_file_correction - First observed
news_file_signal - First observed
news_front_page - First observed
news_leaderboard - First observed
news_list_beats - First observed
news_list_editors - First observed
news_list_signals - First observed
news_publisher_compile_brief - First observed
news_publisher_set_beat_config - First observed
news_record_editor_payout - First observed
news_register_editor - First observed
nonce_fill_gap - First observed
nonce_heal - First observed
nonce_health - First observed
nostr_get_profile - First observed
nostr_get_pubkey - First observed
nostr_post - First observed
nostr_read_feed - First observed
nostr_relay_list - First observed
nostr_search_tags - First observed
nostr_set_profile - First observed
nostr_sign_event - First observed
openrouter_integration_guide - First observed
openrouter_models - First observed
ordinals_buy - First observed
ordinals_cancel_listing - First observed
ordinals_get_listings - First observed
ordinals_list_for_sale - First observed
ordinals_list_for_sale_submit - First observed
ordinals_p2p_agents - First observed
ordinals_p2p_cancel - First observed
ordinals_p2p_counter - First observed
ordinals_p2p_create_offer - First observed
ordinals_p2p_get_trade - First observed
ordinals_p2p_list_trades - First observed
ordinals_p2p_my_trades - First observed
ordinals_p2p_psbt_swap - First observed
ordinals_p2p_transfer - First observed
pillar_add_admin - First observed
pillar_auto_compound - First observed
pillar_boost - First observed
pillar_connect - First observed
pillar_create_wallet - First observed
pillar_dca_invite - First observed
pillar_dca_leaderboard - First observed
pillar_dca_partners - First observed
pillar_dca_status - First observed
pillar_direct_add_admin - First observed
pillar_direct_auto_compound - First observed
pillar_direct_boost - First observed
pillar_direct_create_wallet - First observed
pillar_direct_dca_invite - First observed
pillar_direct_dca_leaderboard - First observed
pillar_direct_dca_partners - First observed
pillar_direct_dca_status - First observed
pillar_direct_position - First observed
pillar_direct_quote - First observed
pillar_direct_resolve_recipient - First observed
pillar_direct_revoke_fast_pool - First observed
pillar_direct_send - First observed
pillar_direct_stack_stx - First observed
pillar_direct_stacking_status - First observed
pillar_direct_supply - First observed
pillar_direct_unwind - First observed
pillar_direct_withdraw_collateral - First observed
pillar_disconnect - First observed
pillar_fund - First observed
pillar_invite - First observed
pillar_key_generate - First observed
pillar_key_info - First observed
pillar_key_lock - First observed
pillar_key_unlock - First observed
pillar_position - First observed
pillar_send - First observed
pillar_status - First observed
pillar_supply - First observed
pillar_unwind - First observed
preorder_bns_name - First observed
probe_x402_endpoint - First observed
psbt_broadcast - First observed
psbt_create_ordinal_buy - First observed
psbt_decode - First observed
psbt_sign - First observed
recover_sponsor_nonce - First observed
register_bns_name - First observed
reputation_append_response - First observed
reputation_approve_client - First observed
reputation_get_approved_limit - First observed
reputation_get_clients - First observed
reputation_get_feedback_count - First observed
reputation_get_last_index - First observed
reputation_get_summary - First observed
reputation_give_feedback - First observed
reputation_read_all_feedback - First observed
reputation_read_feedback - First observed
reputation_revoke_feedback - First observed
reverse_bns_lookup - First observed
runes_get_activity - First observed
runes_get_address_activity - First observed
runes_get_address_balances - First observed
runes_get_etching - First observed
runes_get_holders - First observed
runes_list_etchings - First observed
sbtc_deposit - First observed
sbtc_deposit_status - First observed
sbtc_get_balance - First observed
sbtc_get_deposit_info - First observed
sbtc_get_peg_info - First observed
sbtc_initiate_withdrawal - First observed
sbtc_transfer - First observed
sbtc_withdraw - First observed
sbtc_withdraw_status - First observed
sbtc_withdrawal_status - First observed
scaffold_x402_ai_endpoint - First observed
scaffold_x402_endpoint - First observed
schnorr_sign_digest - First observed
schnorr_verify_digest - First observed
send_inbox_message - First observed
send_inbox_message_direct - First observed
set_hiro_api_key - First observed
set_stacks_api_url - First observed
sip018_hash - First observed
sip018_sign - First observed
sip018_verify - First observed
souldinals_display_soul - First observed
souldinals_inscribe_soul - First observed
souldinals_list_souls - First observed
souldinals_load_soul - First observed
souldinals_reveal_soul - First observed
stack_stx - First observed
stacks_market_buy_no - First observed
stacks_market_buy_yes - First observed
stacks_market_get - First observed
stacks_market_get_position - First observed
stacks_market_list - First observed
stacks_market_quote_buy - First observed
stacks_market_quote_sell - First observed
stacks_market_redeem - First observed
stacks_market_search - First observed
stacks_market_sell_no - First observed
stacks_market_sell_yes - First observed
stacks_sign_message - First observed
stacks_verify_message - First observed
stackspot_cancel_pot - First observed
stackspot_claim_rewards - First observed
stackspot_get_pot_state - First observed
stackspot_join_pot - First observed
stackspot_list_pots - First observed
stackspot_start_pot - First observed
styx_deposit - First observed
styx_fees - First observed
styx_history - First observed
styx_pool_status - First observed
styx_pools - First observed
styx_price - First observed
styx_status - First observed
taproot_get_pubkey - First observed
taproot_multisig_guide - First observed
taproot_verify_cosig - First observed
taskmarket_get - First observed
taskmarket_search - First observed
taskmarket_stats - First observed
taskmarket_submissions - First observed
tenero_holder_stats - First observed
tenero_market_stats - First observed
tenero_market_summary - First observed
tenero_search - First observed
tenero_token_info - First observed
tenero_top_gainers - First observed
tenero_top_losers - First observed
tenero_trending_pools - First observed
tenero_wallet_holdings - First observed
tenero_wallet_trades - First observed
tenero_whale_trades - First observed
transfer_btc - First observed
transfer_nft - First observed
transfer_rune - First observed
transfer_stx - First observed
transfer_token - First observed
tx_status_deep - First observed
unstake_stx - First observed
wallet_create - First observed
wallet_delete - First observed
wallet_export - First observed
wallet_import - First observed
wallet_list - First observed
wallet_lock - First observed
wallet_rotate_password - First observed
wallet_set_timeout - First observed
wallet_status - First observed
wallet_switch - First observed
wallet_unlock - First observed
yield_dashboard_apy_breakdown - First observed
yield_dashboard_overview - First observed
yield_dashboard_positions - First observed
yield_dashboard_rebalance - First observed
yield_hunter_configure - First observed
yield_hunter_start - First observed
yield_hunter_status - First observed
yield_hunter_stop - First observed
zest_borrow - First observed
zest_enable_collateral - First observed
zest_get_position - First observed
zest_list_assets - First observed
zest_repay - First observed
zest_supply - First observed
zest_withdraw
TDQS
Scored across 387 tools
Nearly every capability exists in two or three near-identical forms: `pillar_*` (browser-signing) vs `pillar_direct_*` (agent-signed) duplicate ~20 operations, `sbtc_withdraw`/`sbtc_initiate_withdrawal` and `sbtc_withdraw_status`/`sbtc_withdrawal_status` are literal aliases, and `runes_get_address_balances`, `get_rune_balances` and `runes_get_address_activity` all read rune balances through different backends. Transfer tools (`transfer_stx`, `transfer_token`, `sbtc_transfer`, `transfer_btc`, `transfer_nft`, `transfer_rune`, `pillar_send`, `pillar_direct_send`) and stacking tools (`stack_stx`, `pillar_direct_stack_stx`, `stackspot_*`, `dual_stacking_*`) require reading long descriptions to pick correctly.
There is a domain-prefix convention (`alex_*`, `bitflow_*`, `zest_*`, `jingswap_*`), but verb placement flips between noun-first and verb-first within the same domain: `sbtc_get_balance` vs `get_btc_balance` vs `get_stx_balance`, `zest_get_position` vs `get_contract_info`, `runes_list_etchings` vs `get_rune_balances`. Aliases (`sbtc_withdraw` / `sbtc_initiate_withdrawal`) and duplicated deprecated `news_*` / `send_inbox_message` entries further break any predictable pattern.
387 tools is an extreme mismatch for any single MCP surface and far beyond what an agent can select from reliably. The set bundles Stacks/Bitcoin wallets, three DEXes, lending, stacking, ordinals, runes, Lightning, Nostr, x402 scaffolding, arXiv research, bounties, TaskMarket and prediction markets into one namespace. Large blocks (20+ `news_*`, 20+ `pillar_*`, 20+ `pillar_direct_*`) are dead weight or duplicates.
Coverage of the Stacks/Bitcoin agent domain is genuinely broad — wallet lifecycle, transfers, contracts, sBTC peg in/out, BNS, PoX stacking, DEX quotes and swaps, lending, identity, credentials — with few obvious functional holes. However the surface carries ~20 explicitly dead `news_*` tools plus a deprecated inbox sender that is still exposed, and key lifecycle operations (e.g. wallet rename/list-vs-status semantics) are split across competing tool families rather than one coherent path.
Maintenance
Related MCP Connectors
Bitcoin RPC for AI agents. 7 read tools; x402 USDC on Base mainnet. Discovery is free.
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
Native Solana staking for AI agents. 26 MCP tools, one-shot signing, webhooks.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA comprehensive MCP server providing unified access to over 144 tools for lending, trading, and staking across six major DeFi protocols on the Stacks Bitcoin Layer 2. It enables AI agents to perform complex blockchain operations and interact with the DeFi ecosystem using natural language commands.3MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for interacting with Bitcoin Agents on Stacks blockchain. Bitcoin Agents are Tamagotchi-style AI companions that live on-chain.MIT
- AlicenseNot gradedqualityDmaintenanceBitcoin-native MCP server for AI agents: BTC/STX wallets, DeFi yield, sBTC peg, NFTs, and x402 payments.1,372 npmMIT
- AlicenseNot gradedqualityCmaintenanceMCP server that lets any AI agent operate a wallet directly on-chain: create wallets, send, swap, bridge, and deploy contracts across EVM and Bitcoin networks.1MIT