{"name":"topaz-agent","version":"0.16.2","protocolVersion":"2024-11-05","description":"Topaz ve(3,3) DEX agent tools for BNB Chain. POST JSON-RPC 2.0 requests to this endpoint.","capabilities":{"tools":{}},"tools":[{"name":"topaz_get_protocol_stats","description":"Get Topaz DEX protocol overview including TVL, volume, fees, TOPAZ price, pool count, gauge count, and current epoch.","inputSchema":{"def":{"type":"object","shape":{}},"type":"object"}},{"name":"topaz_get_pool_stats","description":"Get top Topaz pools sorted by TVL, volume, fees, or APR. Returns pool pair, type, TVL, volume, fee APR, emission APR, bribe APR, and total APR.","inputSchema":{"def":{"type":"object","shape":{"sort":{"def":{"type":"default","innerType":{"def":{"type":"enum","entries":{"tvl":"tvl","volume24h":"volume24h","fees24h":"fees24h","apr":"apr"}},"type":"enum","enum":{"tvl":"tvl","volume24h":"volume24h","fees24h":"fees24h","apr":"apr"},"options":["tvl","volume24h","fees24h","apr"]},"defaultValue":"tvl"},"type":"default"},"limit":{"def":{"type":"default","innerType":{"def":{"type":"number","checks":[{},{}]},"type":"number","minValue":1,"maxValue":50,"isInt":false,"isFinite":true,"format":null},"defaultValue":10},"type":"default"},"type":{"def":{"type":"default","innerType":{"def":{"type":"enum","entries":{"v2":"v2","v3":"v3","all":"all"}},"type":"enum","enum":{"v2":"v2","v3":"v3","all":"all"},"options":["v2","v3","all"]},"defaultValue":"all"},"type":"default"}}},"type":"object"}},{"name":"topaz_get_gauge_stats","description":"Get active Topaz gauges with emission APR, pool fee APR, bribe APR, staked TVL, and vote weights — served from the Topaz Stats API snapshot (near-real-time, refreshed ~every 15 min) so many gauges return instantly. lpEmissionApr is the TOPAZ reward APR for staked LPs; poolFeeApr is trading-fee yield. These are different — use lpEmissionApr for LP emission strategy, not poolFeeApr. Falls back to live on-chain reads only if a gauge's snapshot APR is unavailable.","inputSchema":{"def":{"type":"object","shape":{"limit":{"def":{"type":"default","innerType":{"def":{"type":"number","checks":[{},{}]},"type":"number","minValue":1,"maxValue":40,"isInt":false,"isFinite":true,"format":null},"defaultValue":15},"type":"default"}}},"type":"object"}},{"name":"topaz_quote_swap","description":"Get the best swap quote for a token pair on Topaz. Searches across all v2 (volatile/stable) and v3 (concentrated liquidity) pools with multi-hop routing. Returns expected output, route path, and price impact.","inputSchema":{"def":{"type":"object","shape":{"sellToken":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"buyToken":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"sellAmount":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}}},"type":"object"}},{"name":"topaz_build_swap_calldata","description":"Build wallet-ready swap calldata that a user can sign and broadcast. Includes approval transaction if needed. NEVER broadcasts — only returns calldata for the user to sign.","inputSchema":{"def":{"type":"object","shape":{"sellToken":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"buyToken":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"sellAmount":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"taker":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"slippageBps":{"def":{"type":"default","innerType":{"def":{"type":"number","checks":[{},{}]},"type":"number","minValue":1,"maxValue":5000,"isInt":false,"isFinite":true,"format":null},"defaultValue":100},"type":"default"}}},"type":"object"}},{"name":"topaz_recommend_lp","description":"Recommend the best LP positions on Topaz using the Stats API snapshot (near-real-time, ~15 min) for instant APR breakdowns. lpEmissionApr = TOPAZ emission APR for staked LPs. poolFeeApr = trading-fee yield. These are different numbers.","inputSchema":{"def":{"type":"object","shape":{"amountUsd":{"def":{"type":"default","innerType":{"def":{"type":"number","checks":[]},"type":"number","minValue":null,"maxValue":null,"isInt":false,"isFinite":true,"format":null},"defaultValue":5000},"type":"default"},"risk":{"def":{"type":"default","innerType":{"def":{"type":"enum","entries":{"low":"low","moderate":"moderate","high":"high"}},"type":"enum","enum":{"low":"low","moderate":"moderate","high":"high"},"options":["low","moderate","high"]},"defaultValue":"moderate"},"type":"default"},"preferredTokens":{"def":{"type":"optional","innerType":{"def":{"type":"array","element":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}},"type":"array","element":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}}},"type":"optional"},"includeCL":{"def":{"type":"default","innerType":{"def":{"type":"boolean"},"type":"boolean"},"defaultValue":true},"type":"default"}}},"type":"object"}},{"name":"topaz_recommend_votes","description":"Recommend veTOPAZ gauge vote allocations for the current epoch. Analyzes fee returns, bribe incentives, and protocol liquidity needs to suggest optimal vote distribution.","inputSchema":{"def":{"type":"object","shape":{"strategy":{"def":{"type":"default","innerType":{"def":{"type":"enum","entries":{"max-yield":"max-yield","support-protocol":"support-protocol","balanced":"balanced"}},"type":"enum","enum":{"max-yield":"max-yield","support-protocol":"support-protocol","balanced":"balanced"},"options":["max-yield","support-protocol","balanced"]},"defaultValue":"balanced"},"type":"default"},"maxPools":{"def":{"type":"default","innerType":{"def":{"type":"number","checks":[{},{}]},"type":"number","minValue":1,"maxValue":30,"isInt":false,"isFinite":true,"format":null},"defaultValue":5},"type":"default"}}},"type":"object"}},{"name":"topaz_build_vote_calldata","description":"Build wallet-ready calldata for Voter.vote() to cast veTOPAZ gauge votes. Validates ownership, epoch timing, and gauge existence before building.","inputSchema":{"def":{"type":"object","shape":{"tokenId":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"pools":{"def":{"type":"array","element":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}},"type":"array","element":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}},"weights":{"def":{"type":"array","element":{"def":{"type":"number","checks":[]},"type":"number","minValue":null,"maxValue":null,"isInt":false,"isFinite":true,"format":null}},"type":"array","element":{"def":{"type":"number","checks":[]},"type":"number","minValue":null,"maxValue":null,"isInt":false,"isFinite":true,"format":null}},"taker":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}}},"type":"object"}},{"name":"topaz_recommend_bribe_campaign","description":"Plan a bribe incentive campaign to attract liquidity for a token on Topaz. Analyzes existing pools, vote distribution, and budget to recommend optimal bribe strategy.","inputSchema":{"def":{"type":"object","shape":{"projectToken":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"budgetUsd":{"def":{"type":"number","checks":[]},"type":"number","minValue":null,"maxValue":null,"isInt":false,"isFinite":true,"format":null},"targetLiquidityUsd":{"def":{"type":"default","innerType":{"def":{"type":"number","checks":[]},"type":"number","minValue":null,"maxValue":null,"isInt":false,"isFinite":true,"format":null},"defaultValue":500000},"type":"default"},"durationWeeks":{"def":{"type":"default","innerType":{"def":{"type":"number","checks":[{},{}]},"type":"number","minValue":1,"maxValue":52,"isInt":false,"isFinite":true,"format":null},"defaultValue":4},"type":"default"},"preferredQuoteToken":{"def":{"type":"default","innerType":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"defaultValue":"WBNB"},"type":"default"}}},"type":"object"}},{"name":"topaz_build_bribe_deposit_calldata","description":"Build calldata to deposit a bribe incentive on a Topaz pool's gauge. Validates the pool has a gauge, the token is whitelisted, and includes approval if needed.","inputSchema":{"def":{"type":"object","shape":{"pool":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"token":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"amount":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"taker":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}}},"type":"object"}},{"name":"topaz_get_ve_stats","description":"Get veTOPAZ stats: total TOPAZ locked, total voting power, foundation wallet info.","inputSchema":{"def":{"type":"object","shape":{}},"type":"object"}},{"name":"topaz_get_epoch_info","description":"Get current epoch timing information: when the epoch started, when voting ends, how much time remains, and whether we're in a restricted window.","inputSchema":{"def":{"type":"object","shape":{}},"type":"object"}},{"name":"topaz_get_pool_by_pair","description":"Look up all Topaz pools (v2 volatile, v2 stable, and v3 at each tick spacing) for a specific token pair. Returns pool addresses, types, TVL, volume, and gauge status. Use this when asking about a specific pair like 'WBNB/TOPAZ' or 'USDT/USDC'.","inputSchema":{"def":{"type":"object","shape":{"tokenA":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"tokenB":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}}},"type":"object"}},{"name":"topaz_check_vote_eligibility","description":"Check whether a veTOPAZ NFT can vote right now. Checks: voting window, last voted epoch, ownership/approval, veNFT balance. Use this before building vote calldata.","inputSchema":{"def":{"type":"object","shape":{"tokenId":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"wallet":{"def":{"type":"optional","innerType":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}},"type":"optional"}}},"type":"object"}},{"name":"topaz_get_route_alternatives","description":"Get multiple alternative swap routes (not just the best) for a token pair. Shows v2 and v3 options side by side so the user can compare. Use when the user wants to understand their routing options.","inputSchema":{"def":{"type":"object","shape":{"sellToken":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"buyToken":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"sellAmount":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}}},"type":"object"}},{"name":"topaz_compare_pool_options","description":"Compare LP options for a pair across v2 volatile, v2 stable, and v3 CL pools. Shows TVL, APR breakdown, and trade-offs for each. Use when a user asks 'should I LP in v2 or v3?' or 'volatile or stable pool?'","inputSchema":{"def":{"type":"object","shape":{"tokenA":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"tokenB":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}}},"type":"object"}},{"name":"topaz_get_wallet_token_balances","description":"Get token balances for a wallet: BNB, WBNB, TOPAZ, USDT, USDC, BTCB, ETH, and other major tokens. Use this to understand what a user holds before recommending actions.","inputSchema":{"def":{"type":"object","shape":{"wallet":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}}},"type":"object"}},{"name":"topaz_get_ve_nfts","description":"Get all veTOPAZ NFTs owned by a wallet. Returns tokenId, locked amount, lock end date, voting power, whether expired, and last voted epoch. Locks deposited into a relay report their real relay balance (deposit + compounded rewards) with inRelay=true — never a bare 0. Use this to understand a user's ve position before recommending votes or claims.","inputSchema":{"def":{"type":"object","shape":{"wallet":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}}},"type":"object"}},{"name":"topaz_get_user_ve_locks","description":"Get a complete personal veTOPAZ picture for a wallet: every lock's amount, voting power, expiry, what it is voting for this epoch, manual claimables (fees/bribes/rebase), and whether each lock is manual or deposited into a managed relay (veTOPAZ Maxi / Reward & Distribute). Use this to answer 'what locked TOPAZ do I own?', 'what are my locks voting for?', 'which of my locks are in a relay?', and to decide between manual voting and a relay.","inputSchema":{"def":{"type":"object","shape":{"wallet":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}}},"type":"object"}},{"name":"topaz_get_relays","description":"List the available Topaz relays (managed veTOPAZ strategies) with their live state and health. For each relay: type (veTOPAZ Maxi / Reward & Distribute), managed voting power, what it voted for this epoch, last keeper harvest, TOPAZ compounded and (for Reward & Distribute) USDT distributed this and last epoch, and a health status with warnings. Use this to answer 'what relays are available?', 'which relay is safer?', 'did Maxi harvest this week?', 'what did Reward & Distribute pay out?', and 'is any relay stale or unhealthy?'.","inputSchema":{"def":{"type":"object","shape":{}},"type":"object"}},{"name":"topaz_get_user_relay_positions","description":"Get a wallet's managed veTOPAZ relay positions: for each lock deposited into a relay, the relay name/type, the user's deposited weight and share of the managed position, the relay's current votes, last harvest and vote, any claimable distribution (USDT for Reward & Distribute), and a plain-English explanation. Use this when a user asks 'which relay am I in?', 'how much did the relay compound/distribute for me?', 'what's my share?', or 'what can I claim from my relay?'. For manual (non-relay) locks, use getUserVeLocks instead.","inputSchema":{"def":{"type":"object","shape":{"wallet":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}}},"type":"object"}},{"name":"topaz_build_deposit_managed_calldata","description":"Build wallet-ready calldata to deposit a veTOPAZ lock into a managed relay (Voter.depositManaged). Validates ownership/approval, that the lock is a normal (not already managed) lock with TOPAZ and not expired, that it has not voted this epoch, and that it is not the final-hour window. Use when a user says 'put my lock into Maxi' or 'deposit lock #X into Reward & Distribute'.","inputSchema":{"def":{"type":"object","shape":{"tokenId":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"relay":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"taker":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}}},"type":"object"}},{"name":"topaz_build_withdraw_managed_calldata","description":"Build wallet-ready calldata to withdraw a veTOPAZ lock from its managed relay (Voter.withdrawManaged). Validates the lock is currently deposited and the window is not blocked. Use when a user says 'move my lock out of the relay' or 'withdraw lock #X from the relay'.","inputSchema":{"def":{"type":"object","shape":{"tokenId":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"taker":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}}},"type":"object"}},{"name":"topaz_build_relay_claim_calldata","description":"Build wallet-ready calldata to claim a relay's stable distribution for a deposited lock (FreeManagedReward.getReward, USDT for Reward & Distribute). Validates the relay type supports distribution and that there is a claimable amount. Use when a user says 'claim my relay USDT' or 'claim my relay rewards'. Note: veTOPAZ Maxi has no claim — it compounds in-place.","inputSchema":{"def":{"type":"object","shape":{"tokenId":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"taker":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}}},"type":"object"}},{"name":"topaz_compare_ve_strategies","description":"Compare the three veTOPAZ strategy modes — Manual, veTOPAZ Maxi, and Reward & Distribute — and recommend one from the user's stated preference (growth / stable income / control / low-maintenance / bribe optimization). Returns each mode's best-for, what you get, and what you give up, plus live relay health and (if a wallet is given) the wallet's manual-vs-relay split. Use this to answer 'should I keep voting manually or use a relay?', 'which relay should I use?', and 'what am I giving up by using a relay?'.","inputSchema":{"def":{"type":"object","shape":{"preference":{"def":{"type":"optional","innerType":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}},"type":"optional"},"wallet":{"def":{"type":"optional","innerType":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}},"type":"optional"}}},"type":"object"}},{"name":"topaz_get_relay_monitor","description":"Operator-facing relay monitor: each relay's health status with warnings (stale keeper harvest, missed vote, zero compound/distribute, stuck balances), plus a weekly performance summary (managed voting power, votes, TOPAZ compounded and USDT distributed this and last epoch) and any unregistered relays found on-chain. Use to answer 'is any relay unhealthy?', 'did the keepers run?', or to produce a weekly relay report.","inputSchema":{"def":{"type":"object","shape":{}},"type":"object"}},{"name":"topaz_get_user_relay_alerts","description":"Proactive per-wallet veTOPAZ alerts: claimable relay distributions (USDT), unclaimed manual fees/bribes/rebase, and manual locks that have not voted this epoch — each with a suggested next action. Use when a user asks 'is there anything I should do with my veTOPAZ?' or to drive notifications.","inputSchema":{"def":{"type":"object","shape":{"wallet":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}}},"type":"object"}},{"name":"topaz_get_cl_position_by_id","description":"Get detailed info for a specific CL (v3) position by NFT tokenId. Returns pool, tokens, tick range, current tick, in-range status, liquidity, uncollected fees, and whether it's staked in a gauge. Use this when a user mentions their CL position or tokenId.","inputSchema":{"def":{"type":"object","shape":{"tokenId":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}}},"type":"object"}},{"name":"topaz_get_cl_position_health","description":"Analyze the health of a CL position: in-range status, distance from boundaries, fee productivity estimate, and recommended action (leave, collect, widen, recenter, withdraw). Use after getClPositionById for detailed advice.","inputSchema":{"def":{"type":"object","shape":{"tokenId":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}}},"type":"object"}},{"name":"topaz_get_user_dex_positions","description":"Get a wallet's Topaz DEX liquidity positions: v3 CL positions (staked in gauges and held unstaked in the wallet), v2 LP positions (loose and gauge-staked), in-range status, claimable rewards and fees, approximate USD value, pool/gauge metadata, and a summary. Use this when a user asks what positions they have, whether they are staked, what is out of range, what LP rewards/fees are claimable, or whether they have a position in a specific pool. Always report which sources were checked (sourceStatus) and never claim 'no positions' when a source is unavailable or partial.","inputSchema":{"def":{"type":"object","shape":{"wallet":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"poolAddress":{"def":{"type":"optional","innerType":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}},"type":"optional"}}},"type":"object"}},{"name":"topaz_get_claimables","description":"Get all claimable rewards for a veNFT: gauge emissions (TOPAZ), trading fees, bribes, and rebase. Use this when a user asks 'what can I claim?' or before building claim calldata.","inputSchema":{"def":{"type":"object","shape":{"tokenId":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"wallet":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}}},"type":"object"}},{"name":"topaz_get_all_claimables","description":"Get ALL claimable rewards for a wallet across every source: (1) staked LP gauge emissions (v2 and v3), (2) veNFT voting fees, (3) veNFT bribes, (4) veNFT rebase. Use this when a user asks 'what can I claim?' without specifying a tokenId — it automatically finds all positions and veNFTs.","inputSchema":{"def":{"type":"object","shape":{"wallet":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}}},"type":"object"}},{"name":"topaz_simulate_cl_range","description":"Simulate a CL position range for a pair. Given a strategy type and optional price bounds, estimate capital efficiency, out-of-range risk, and token composition. Use when a user asks 'what range should I use?' or 'I expect TOPAZ to pump, how should I LP?'","inputSchema":{"def":{"type":"object","shape":{"tokenA":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"tokenB":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"strategy":{"def":{"type":"enum","entries":{"passive":"passive","balanced":"balanced","aggressive":"aggressive","bullish-A":"bullish-A","bearish-A":"bearish-A"}},"type":"enum","enum":{"passive":"passive","balanced":"balanced","aggressive":"aggressive","bullish-A":"bullish-A","bearish-A":"bearish-A"},"options":["passive","balanced","aggressive","bullish-A","bearish-A"]},"amountUsd":{"def":{"type":"optional","innerType":{"def":{"type":"number","checks":[]},"type":"number","minValue":null,"maxValue":null,"isInt":false,"isFinite":true,"format":null}},"type":"optional"}}},"type":"object"}},{"name":"topaz_compare_hold_lp_vote","description":"Compare the expected outcomes of holding tokens vs LPing vs voting with veTOPAZ. Use when a user asks 'should I LP or vote?' or 'what's the best use of my TOPAZ?'. Calls multiple data sources to give a holistic comparison.","inputSchema":{"def":{"type":"object","shape":{"amountUsd":{"def":{"type":"optional","innerType":{"def":{"type":"number","checks":[]},"type":"number","minValue":null,"maxValue":null,"isInt":false,"isFinite":true,"format":null}},"type":"optional"},"pool":{"def":{"type":"optional","innerType":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}},"type":"optional"},"risk":{"def":{"type":"optional","innerType":{"def":{"type":"enum","entries":{"low":"low","moderate":"moderate","high":"high"}},"type":"enum","enum":{"low":"low","moderate":"moderate","high":"high"},"options":["low","moderate","high"]}},"type":"optional"}}},"type":"object"}},{"name":"topaz_estimate_bribe_roi","description":"Estimate the ROI of a bribe campaign: expected vote capture, liquidity attraction, cost-effectiveness, and whether to bribe now vs seed LP first. Use for bribe campaign planning with quantitative rigor.","inputSchema":{"def":{"type":"object","shape":{"pool":{"def":{"type":"optional","innerType":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}},"type":"optional"},"projectToken":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"budgetUsd":{"def":{"type":"number","checks":[]},"type":"number","minValue":null,"maxValue":null,"isInt":false,"isFinite":true,"format":null},"durationWeeks":{"def":{"type":"default","innerType":{"def":{"type":"number","checks":[]},"type":"number","minValue":null,"maxValue":null,"isInt":false,"isFinite":true,"format":null},"defaultValue":4},"type":"default"},"currentPoolTvlUsd":{"def":{"type":"optional","innerType":{"def":{"type":"number","checks":[]},"type":"number","minValue":null,"maxValue":null,"isInt":false,"isFinite":true,"format":null}},"type":"optional"}}},"type":"object"}},{"name":"topaz_recommend_protocol_actions","description":"Generate internal protocol strategy: which pools to support with votes/bribes, which to avoid, expected impact. Use when the Topaz team asks 'what should we support this epoch?' or for operator-level strategy.","inputSchema":{"def":{"type":"object","shape":{"objective":{"def":{"type":"default","innerType":{"def":{"type":"enum","entries":{"useful_liquidity":"useful_liquidity","topaz_depth":"topaz_depth","volume_growth":"volume_growth","stable_depth":"stable_depth"}},"type":"enum","enum":{"useful_liquidity":"useful_liquidity","topaz_depth":"topaz_depth","volume_growth":"volume_growth","stable_depth":"stable_depth"},"options":["useful_liquidity","topaz_depth","volume_growth","stable_depth"]},"defaultValue":"useful_liquidity"},"type":"default"},"maxPools":{"def":{"type":"default","innerType":{"def":{"type":"number","checks":[]},"type":"number","minValue":null,"maxValue":null,"isInt":false,"isFinite":true,"format":null},"defaultValue":5},"type":"default"},"budgetUsd":{"def":{"type":"optional","innerType":{"def":{"type":"number","checks":[]},"type":"number","minValue":null,"maxValue":null,"isInt":false,"isFinite":true,"format":null}},"type":"optional"}}},"type":"object"}},{"name":"topaz_get_weekly_strategy","description":"Generate a comprehensive weekly ve(3,3) strategy report with protocol overview, top gauges, recommended votes, LP recommendations, recent bribes, and market insights.","inputSchema":{"def":{"type":"object","shape":{}},"type":"object"}},{"name":"topaz_get_bribe_markets","description":"Get the current bribe/incentive markets across all Topaz gauges for the active epoch — total bribe + fee rewards per gauge and the derived dollars-per-vote, ranked highest-yield first. Use for 'where are the best bribes/votes this epoch?' or 'what's the $/vote on gauge X?'.","inputSchema":{"def":{"type":"object","shape":{"minUsd":{"def":{"type":"default","innerType":{"def":{"type":"number","checks":[{}]},"type":"number","minValue":0,"maxValue":null,"isInt":false,"isFinite":true,"format":null},"defaultValue":0},"type":"default"},"limit":{"def":{"type":"default","innerType":{"def":{"type":"number","checks":[{},{}]},"type":"number","minValue":1,"maxValue":100,"isInt":false,"isFinite":true,"format":null},"defaultValue":15},"type":"default"}}},"type":"object"}},{"name":"topaz_get_gauge_rewards","description":"Get the per-epoch, token-by-token actual reward breakdown for a specific gauge — every bribe and fee token deposited/accrued, with USD value at the time. Use to see exactly what a gauge's voters earned (or are earning) by reward token.","inputSchema":{"def":{"type":"object","shape":{"gaugeAddress":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"limit":{"def":{"type":"default","innerType":{"def":{"type":"number","checks":[{},{}]},"type":"number","minValue":1,"maxValue":50,"isInt":false,"isFinite":true,"format":null},"defaultValue":12},"type":"default"}}},"type":"object"}},{"name":"topaz_get_protocol_history","description":"Get historical protocol-wide trends for Topaz — daily volume and fees plus a downsampled TVL / TOPAZ-price series over a lookback window. Use for 'how has TVL/volume trended?', growth questions, or charts.","inputSchema":{"def":{"type":"object","shape":{"days":{"def":{"type":"default","innerType":{"def":{"type":"number","checks":[{},{}]},"type":"number","minValue":1,"maxValue":365,"isInt":false,"isFinite":true,"format":null},"defaultValue":30},"type":"default"}}},"type":"object"}},{"name":"topaz_get_pool_history","description":"Get long-horizon daily candles for a specific Topaz pool — daily volume, fees, and end-of-day TVL beyond the 7-day rolling window. Use for per-pool trend/history questions.","inputSchema":{"def":{"type":"object","shape":{"poolAddress":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null},"days":{"def":{"type":"default","innerType":{"def":{"type":"number","checks":[{},{}]},"type":"number","minValue":1,"maxValue":365,"isInt":false,"isFinite":true,"format":null},"defaultValue":90},"type":"default"}}},"type":"object"}},{"name":"topaz_get_recent_epochs","description":"Get recent Topaz voting-epoch summaries — per-epoch total bribes, foundation vote share, gauge count, and top-voted gauges. Use for 'how did bribes/votes trend across epochs?' or historical voting context.","inputSchema":{"def":{"type":"object","shape":{"limit":{"def":{"type":"default","innerType":{"def":{"type":"number","checks":[{},{}]},"type":"number","minValue":1,"maxValue":52,"isInt":false,"isFinite":true,"format":null},"defaultValue":8},"type":"default"}}},"type":"object"}},{"name":"topaz_get_vote_effectiveness","description":"Get foundation KPI / vote-ROI effectiveness data — per pool/epoch bribe cost, emissions directed, TVL/volume/fee deltas, cost-per-dollar-gained, and a classification (scale/repeat/monitor/reduce/stop/insufficient_data). Use for 'is bribing pool X working?' or operator-level capital-efficiency review.","inputSchema":{"def":{"type":"object","shape":{"pool":{"def":{"type":"optional","innerType":{"def":{"type":"string"},"type":"string","format":null,"minLength":null,"maxLength":null}},"type":"optional"},"limit":{"def":{"type":"default","innerType":{"def":{"type":"number","checks":[{},{}]},"type":"number","minValue":1,"maxValue":100,"isInt":false,"isFinite":true,"format":null},"defaultValue":20},"type":"default"}}},"type":"object"}}]}