Transaction Builder API — unsigned Solana transactions for AI agents. Builds unsigned transactions for minting, redeeming, LP operations, and faucet claims on the Holging tokenized hedge protocol.
Holging API exposes 11 tools with basic HTTP endpoints but significant definition gaps. All tools have descriptions (10-50 chars, below the 50-200 char baseline for LLM optimization), and input schemas are present but minimal. No output schemas documented. Tool names use HTTP verbs (GET/POST) rather than action verbs (get_, create_, build_), making intent ambiguous to LLMs. Parameters lack descriptions in most cases, e.g., 'pool' parameter appears in 9 tools but is never described. Error handling, recovery guidance, and idempotency hints are absent. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear read/write distinction. Composition is reasonable (tools chain via wallet/pool IDs), but parameter naming inconsistencies (e.g., 'lp_shares' vs 'amount') and missing constraints (no enum for pool IDs, no min/max for numeric amounts) force LLM guessing.
Detailed pool state — vault, fees, LP, coverage
Wallet balances: SOL, USDC, inverse tokens
All 4 pool prices in one call
Preview mint — expected tokens & fee
Preview redeem — expected USDC & fee
Build unsigned LP deposit tx (min $100)
Build unsigned LP fee claim tx
Build unsigned tx — claim 5,000 devnet USDC
Build unsigned mint tx (USDC → tokens)
Tool names use HTTP verbs (GET, POST) instead of action verbs (get_, create_, build_). LLMs cannot infer intent from 'GET /prices', should be 'get_prices' or 'list_prices'.
Descriptions are 10 - 50 characters (baseline 50 - 200 for LLM optimization). E.g., 'All 4 pool prices in one call' (30 chars) lacks context on when to use this vs /pool/:id. Descriptions do not explain WHAT, WHEN, or WHAT IT RETURNS.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Build unsigned redeem tx (tokens → USDC)
Build unsigned LP withdrawal tx
Parameter 'pool' appears in 9 tools but has no description in most. LLMs cannot infer whether 'pool' is a pool ID, pool name, or pool address. Should document: 'Pool identifier (one of: sol, tsla, spy, aapl), defaults to sol if omitted.'
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., does /prices return {sol: 123.45, tsla: 456.78} or [{pool: 'sol', price: 123.45}]?). Responses must be formally documented.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). GET tools are read-only; POST /build/* are write operations that build unsigned txs (idempotent). Annotations guide agent retry logic and safety reasoning.