Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,547Letters: 14Defects: 1,324counted 2 min ago
teppi

Server definition

Hash
sha256:c6fb3a316233d872dfbd2da4b8a6c20c95d9a9f444fc835a73f884ba19c1b492
What it is
What a remote MCP server returned when asked what it offers: 66 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "Get a snapshot of your agent payment service: registered TRON address, count of pending payment requests (request_payment), active address watches (watch_address), and outstanding invoices (create_invoice). Use this right after register_agent to confirm the agent is set up, or any time you want to see how much in-flight activity your agent has. Auth required (API key) and agent must be registered first via register_agent.", "inputSchema": { "properties": {}, "type": "object" }, "name": "agent_status", "outputSchema": null }, { "description": "Market price analysis with trends and recommendations. No auth required.", "inputSchema": { "properties": { "resource": { "description": "Filter by resource type. Omit for all.", "enum": [ "ENERGY", "BANDWIDTH" ], "type": "string" } }, "type": "object" }, "name": "analyze_prices", "outputSchema": null }, { "description": "Approve TRC-20 spending allowance. Signs and broadcasts on-chain. Requires TRON_PRIVATE_KEY.", "inputSchema": { "properties": { "amount": { "description": "Allowance amount (human-readable, or \"unlimited\").", "type": "string" }, "resource_operation_id": { "description": "Optional stable ID for resource purchases. Reuse on retries; this does not make the token transfer itself idempotent.", "type": "string" }, "spender": { "description": "Spender TRON address.", "type": "string" }, "token": { "description": "Token symbol or contract address.", "type": "string" } }, "required": [ "token", "spender", "amount" ], "type": "object" }, "name": "approve_trc20", "outputSchema": null }, { "description": "Calculate savings from renting energy vs burning TRX. No authentication required.", "inputSchema": { "properties": { "operation": { "description": "Operation type. Default: trc20_transfer.", "enum": [ "trc20_transfer", "trc20_approve", "trx_transfer" ], "type": "string" }, "transaction_count": { "description": "Number of transactions. Default: 1.", "type": "number" } }, "type": "object" }, "name": "calculate_savings", "outputSchema": null }, { "description": "Execute a state-changing smart contract function. Estimates resources, buys via Merx if needed. Requires TRON_PRIVATE_KEY and TRON_ADDRESS.", "inputSchema": { "properties": { "call_value_trx": { "description": "TRX to send with call (optional).", "type": "string" }, "contract_address": { "description": "Contract TRON address.", "type": "string" }, "function_selector": { "description": "Function signature, e.g. \"stake(uint256)\".", "type": "string" }, "parameter": { "description": "ABI-encoded parameter hex (optional).", "type": "string" }, "resource_operation_id": { "description": "Optional stable ID for resource purchases. Reuse on retries; this does not make the token transfer itself idempotent.", "type": "string" } }, "required": [ "contract_address", "function_selector" ], "type": "object" }, "name": "call_contract", "outputSchema": null }, { "description": "Cancel an active monitor by its UUID. The monitor stops firing notifications. Auth required (API key).", "inputSchema": { "properties": { "monitor_id": { "description": "Monitor UUID to cancel.", "type": "string" } }, "required": [ "monitor_id" ], "type": "object" }, "name": "cancel_monitor", "outputSchema": null }, { "description": "Cancel a standing order by its UUID. The order is moved to CANCELLED status and will not trigger again. Already-executed actions are NOT reversed. Auth required (API key).", "inputSchema": { "properties": { "order_id": { "description": "Standing order UUID to cancel.", "type": "string" } }, "required": [ "order_id" ], "type": "object" }, "name": "cancel_standing_order", "outputSchema": null }, { "description": "Check energy, bandwidth, and TRX balance for any TRON address. No auth required.", "inputSchema": { "properties": { "address": { "description": "TRON address (starts with T).", "type": "string" } }, "required": [ "address" ], "type": "object" }, "name": "check_address_resources", "outputSchema": null }, { "description": "Side-by-side provider comparison with prices and availability. No auth required.", "inputSchema": { "properties": { "resource": { "description": "Filter by resource type. Omit for all.", "enum": [ "ENERGY", "BANDWIDTH" ], "type": "string" } }, "type": "object" }, "name": "compare_providers", "outputSchema": null }, { "description": "Convert a natural language energy management policy into MERX automation. Creates standing orders and monitors based on your instructions.\n\nExamples:\n- \"Keep 500k energy on my wallet, buy when price is below 55 SUN, max 200 TRX/week\"\n- \"Buy energy every day at 6 AM UTC, 1 million units, for 24 hours\"\n- \"Alert me when my energy drops below 100k\"\n\nReturns a preview of what will be created. Set apply=true to execute.", "inputSchema": { "properties": { "address": { "description": "TRON address this policy applies to (optional)", "type": "string" }, "apply": { "description": "Set to true to create the standing orders. Default false (preview only).", "type": "boolean" }, "instruction": { "description": "Natural language description of the desired automation policy", "type": "string" } }, "required": [ "instruction" ], "type": "object" }, "name": "compile_policy", "outputSchema": null }, { "description": "Convert TRON address between base58 (T...) and hex (41...) formats. No auth required.", "inputSchema": { "properties": { "address": { "description": "TRON address in base58 (T...) or hex (41...).", "type": "string" } }, "required": [ "address" ], "type": "object" }, "name": "convert_address", "outputSchema": null }, { "description": "Create a new Merx account, generate an API key, and get deposit info. No auth needed.", "inputSchema": { "properties": { "email": { "description": "Email address for the account", "type": "string" }, "password": { "description": "Password (min 8 characters)", "type": "string" } }, "required": [ "email", "password" ], "type": "object" }, "name": "create_account", "outputSchema": null }, { "description": "Create an invoice for another agent or human to pay. Returns payment URL, address, and QR code. Payment is detected automatically via ZeroMQ (<3 seconds).", "inputSchema": { "properties": { "amount_usdt": { "description": "Amount in USDT", "type": "string" }, "description": { "description": "What the invoice is for", "type": "string" }, "expires_in": { "description": "Expiry in seconds (60-86400, default 3600)", "type": "number" } }, "required": [ "amount_usdt" ], "type": "object" }, "name": "create_invoice", "outputSchema": null }, { "description": "Create a persistent server-side monitor that fires notifications when a condition is met. Four monitor types: delegation_expiry (warns when leased energy is about to expire so you can re-rent), balance_threshold (fires when an address goes below a TRX/USDT level), price_alert (fires when energy/bandwidth price crosses a SUN threshold), address_activity (fires on any incoming TX). Notification defaults to webhook=true if omitted. Auth required (API key).", "inputSchema": { "properties": { "monitor_type": { "description": "Type of monitor to create.", "enum": [ "delegation_expiry", "balance_threshold", "price_alert", "address_activity" ], "type": "string" }, "notify": { "description": "Notification config: { webhook?: boolean, telegram_chat_id?: string }. Defaults to { webhook: true } if omitted.", "type": "object" }, "params": { "description": "Type-specific params. delegation_expiry: { alert_before_sec, auto_renew, resource_type }. balance_threshold: { resource: \"TRX\"|\"ENERGY\"|\"BANDWIDTH\", below: number }. price_alert: { resource: \"ENERGY\"|\"BANDWIDTH\", above_sun?: number, below_sun?: number }. address_activity: { min_amount_trx?: number }.", "type": "object" }, "target_address": { "description": "TRON address to monitor. Required for delegation_expiry, balance_threshold, address_activity. Not used for price_alert.", "type": "string" } }, "required": [ "monitor_type", "params" ], "type": "object" }, "name": "create_monitor", "outputSchema": null }, { "description": "Buy energy or bandwidth at the Merx market quote, fulfilled by PowerSun. Confirmed Merx funds and API key required; no commission.", "inputSchema": { "properties": { "amount": { "description": "Amount of resource units (min 65000 for ENERGY, 300 for BANDWIDTH).", "type": "number" }, "duration_sec": { "description": "Rental duration in seconds (e.g. 300, 3600, 86400, 2592000).", "type": "number" }, "max_price_sun": { "description": "Optional max price in SUN/unit. Order fails if no provider is cheaper.", "type": "number" }, "resource_type": { "description": "Resource type to purchase.", "enum": [ "ENERGY", "BANDWIDTH" ], "type": "string" }, "target_address": { "description": "TRON address to receive delegated resources.", "type": "string" } }, "required": [ "resource_type", "amount", "duration_sec", "target_address" ], "type": "object" }, "name": "create_order", "outputSchema": null }, { "description": "Create a zero-registration order via x402 pay-per-use. Requires TRON_PRIVATE_KEY.", "inputSchema": { "properties": { "amount": { "description": "Amount of resource units", "type": "number" }, "duration_sec": { "description": "Duration in seconds", "type": "number" }, "resource_type": { "description": "Resource type", "enum": [ "ENERGY", "BANDWIDTH" ], "type": "string" }, "target_address": { "description": "TRON address to receive resources", "type": "string" } }, "required": [ "resource_type", "amount", "duration_sec", "target_address" ], "type": "object" }, "name": "create_paid_order", "outputSchema": null }, { "description": "Create a server-side standing order with trigger-based automation. Auth required.", "inputSchema": { "properties": { "action_params": { "description": "Action parameters: { resource_type, amount, duration_sec, target_address }.", "type": "object" }, "action_type": { "description": "Action to perform when triggered.", "enum": [ "buy_resource", "ensure_resources", "notify_only" ], "type": "string" }, "budget_trx": { "description": "Maximum budget in TRX (converted to SUN internally).", "type": "string" }, "expires_at": { "description": "ISO 8601 expiration date (optional).", "type": "string" }, "max_executions": { "description": "Maximum number of times this order can execute.", "type": "number" }, "trigger_params": { "description": "Trigger parameters: { resource, threshold_sun } or { cron }.", "type": "object" }, "trigger_type": { "description": "Condition that triggers the order.", "enum": [ "price_below", "price_above", "schedule", "balance_below" ], "type": "string" } }, "required": [ "trigger_type", "trigger_params", "action_type", "action_params", "budget_trx", "max_executions" ], "type": "object" }, "name": "create_standing_order", "outputSchema": null }, { "description": "Deposit TRX to your Merx account. Requires MERX_API_KEY + TRON_PRIVATE_KEY.", "inputSchema": { "properties": { "amount_trx": { "description": "Amount of TRX to deposit", "type": "string" } }, "required": [ "amount_trx" ], "type": "object" }, "name": "deposit_trx", "outputSchema": null }, { "description": "Configure automatic top-up when balance drops below a threshold. The configuration lives ONLY in the current MCP session — it is held in memory by the MCP server process and is lost on server restart, MCP client reconnect, or server redeploy. Top-ups are signed locally with TRON_PRIVATE_KEY and sent to your Merx deposit address (memo-routed). For persistent auto-deposit you currently need to call this tool again at the start of each session.", "inputSchema": { "properties": { "deposit_amount_trx": { "description": "Amount of TRX per deposit", "type": "string" }, "max_daily_deposits": { "description": "Max deposits per day (default 5)", "type": "number" }, "threshold_trx": { "description": "Balance threshold in TRX", "type": "string" } }, "required": [ "threshold_trx", "deposit_amount_trx" ], "type": "object" }, "name": "enable_auto_deposit", "outputSchema": null }, { "description": "Declarative resource provisioning. Checks current resources on target address and purchases only what is missing. Auth required.", "inputSchema": { "properties": { "bandwidth_minimum": { "description": "Minimum bandwidth the address should have.", "type": "number" }, "duration_sec": { "description": "Rental duration in seconds (default: 3600).", "type": "number" }, "energy_minimum": { "description": "Minimum energy the address should have.", "type": "number" }, "idempotency_key": { "description": "Unique operation ID (1–200 characters). Reuse exactly this ID when retrying this operation.", "type": "string" }, "target_address": { "description": "TRON address to provision resources for.", "type": "string" } }, "required": [ "target_address", "idempotency_key" ], "type": "object" }, "name": "ensure_resources", "outputSchema": null }, { "description": "Estimate energy and bandwidth cost for a smart contract call. Compares rental vs burn cost. No auth required.", "inputSchema": { "properties": { "caller_address": { "description": "Caller TRON address for simulation (optional).", "type": "string" }, "contract_address": { "description": "Contract TRON address.", "type": "string" }, "function_selector": { "description": "Function signature, e.g. \"transfer(address,uint256)\".", "type": "string" }, "parameter": { "description": "ABI-encoded parameter hex (optional).", "type": "string" } }, "required": [ "contract_address", "function_selector" ], "type": "object" }, "name": "estimate_contract_call", "outputSchema": null }, { "description": "Estimate cost of a TRON transaction BEFORE sending. Aliases: estimate_cost, calculate_cost, transaction_cost, energy_cost, transfer_cost. Calculate exactly how much energy, bandwidth, and TRX a TRON transaction will cost before sending it. Use this to answer questions like \"how much does a USDT transfer cost?\" or \"what will it cost me to send 100 USDT to address X?\". Returns: energy units needed, bandwidth needed, TRX cost if you burn directly, and TRX cost if you rent energy from Merx (typically 70-80% cheaper). Supports trc20_transfer (e.g. USDT/USDC), trc20_approve, trx_transfer, and custom contract calls. No auth required.", "inputSchema": { "properties": { "amount": { "description": "Token amount (as string).", "type": "string" }, "contract_address": { "description": "Contract address (custom).", "type": "string" }, "from_address": { "description": "Sender TRON address.", "type": "string" }, "function_selector": { "description": "Function selector (custom).", "type": "string" }, "operation": { "description": "Transaction type.", "enum": [ "trc20_transfer", "trc20_approve", "trx_transfer", "custom" ], "type": "string" }, "parameter": { "description": "ABI-encoded parameter (custom).", "type": "string" }, "to_address": { "description": "Recipient TRON address.", "type": "string" }, "token_address": { "description": "TRC20 contract address.", "type": "string" } }, "required": [ "operation" ], "type": "object" }, "name": "estimate_transaction_cost", "outputSchema": null }, { "description": "Plan a multi-step operation (transfer, swap, buy resources, etc) and return a cost estimate, total energy/bandwidth needed, and the cheapest resource acquisition strategy. NOTE: actual on-chain execution of multi-step intents is not yet wired up — currently returns the same plan as simulate, regardless of dry_run. Use this for planning; for real execution call the underlying tools (create_order, transfer_trc20, execute_swap) yourself in sequence. Auth required.", "inputSchema": { "properties": { "dry_run": { "description": "If true, simulate only without executing (default: false).", "type": "boolean" }, "resource_strategy": { "description": "Resource acquisition strategy (default: batch_cheapest).", "enum": [ "batch_cheapest", "per_step", "no_resources" ], "type": "string" }, "steps": { "description": "Array of { action, params } steps to execute.", "type": "array" } }, "required": [ "steps" ], "type": "object" }, "name": "execute_intent", "outputSchema": null }, { "description": "Execute a token swap on SunSwap V2. Requires TRON_PRIVATE_KEY.", "inputSchema": { "properties": { "amount": { "description": "Amount of source token to swap", "type": "string" }, "from_token": { "description": "Source token symbol (TRX, USDT, USDC, etc.)", "type": "string" }, "resource_operation_id": { "description": "Optional stable ID for resource purchases. Reuse on retries; this does not make the token transfer itself idempotent.", "type": "string" }, "slippage": { "description": "Slippage tolerance in percent (default 1)", "type": "number" }, "to_token": { "description": "Destination token symbol", "type": "string" } }, "required": [ "from_token", "to_token", "amount" ], "type": "object" }, "name": "execute_swap", "outputSchema": null }, { "description": "Explain a TRON or Merx concept in plain language. Hardcoded topics (exact match): energy, bandwidth, staking, delegation, sun_units, burn_vs_rent, merx_routing, provider_types. The lookup is fuzzy — substring matches also work, so \"rent\" finds \"burn_vs_rent\" and \"providers\" finds \"provider_types\". For topics outside this list (e.g. x402, stablecoins, gasfree), pick the closest hardcoded topic, or just answer the question yourself from the broader context — this tool only returns canned explanations of TRON resource economics.", "inputSchema": { "properties": { "topic": { "description": "Topic to explain. Exact: energy, bandwidth, staking, delegation, sun_units, burn_vs_rent, merx_routing, provider_types. Fuzzy substrings (e.g. \"rent\", \"providers\") also work.", "type": "string" } }, "required": [ "topic" ], "type": "object" }, "name": "explain_concept", "outputSchema": null }, { "description": "Inspect any TRON address. Aliases: check_address, get_address_info, get_wallet_info, address_info, account_status. Read the full on-chain state of ANY TRON address (does not have to be your own): TRX balance, free + delegated energy, free + delegated bandwidth, frozen TRX, account creation timestamp. Use this to check if an address has enough resources before sending a transaction, or to inspect any TRON wallet. No auth required, no API key needed.", "inputSchema": { "properties": { "address": { "description": "TRON address (T...).", "type": "string" } }, "required": [ "address" ], "type": "object" }, "name": "get_account_info", "outputSchema": null }, { "description": "Get your Merx account balance (TRX, USDT, locked). Requires MERX_API_KEY.", "inputSchema": { "properties": {}, "type": "object" }, "name": "get_balance", "outputSchema": null }, { "description": "Quick lookup of the single cheapest provider for a resource type, with optional minimum amount filter. CAVEAT: this returns a single representative price per provider, not broken down by duration tier — short rentals (5min) and long rentals (30 days) have very different per-unit prices and this tool does not distinguish between them. For an accurate per-tier comparison, use get_prices(duration=N) where N is the exact rental duration in seconds (e.g. 3600 for 1h, 86400 for 1d, 2592000 for 30d). Use get_best_price only when you need the absolute floor price as a quick sanity-check. No auth required.", "inputSchema": { "properties": { "amount": { "description": "Amount of resource units needed.", "type": "number" }, "resource": { "description": "Resource type.", "enum": [ "ENERGY", "BANDWIDTH" ], "type": "string" } }, "required": [ "resource" ], "type": "object" }, "name": "get_best_price", "outputSchema": null }, { "description": "Get TRON block info by number (or latest if omitted). No auth required.", "inputSchema": { "properties": { "block_number": { "description": "Block number. Omit for latest.", "type": "number" } }, "type": "object" }, "name": "get_block", "outputSchema": null }, { "description": "Get TRON network parameters (energy fee, bandwidth cost, etc.) with Merx price comparison. No auth required.", "inputSchema": { "properties": {}, "type": "object" }, "name": "get_chain_parameters", "outputSchema": null }, { "description": "Get on-chain metadata for a TRON smart contract: existence check, owner address, energy origin, code hash, contract name (if set), ABI entries count. Use this to check whether an address is a contract before calling read_contract or estimate_contract_call. For TRC20-specific metadata (name, symbol, decimals, totalSupply) use get_token_info instead. No auth required.", "inputSchema": { "properties": { "address": { "description": "Contract TRON address (T...)", "type": "string" } }, "required": [ "address" ], "type": "object" }, "name": "get_contract_info", "outputSchema": null }, { "description": "Get your Merx deposit address and memo. Requires MERX_API_KEY.", "inputSchema": { "properties": {}, "type": "object" }, "name": "get_deposit_info", "outputSchema": null }, { "description": "Get order status by UUID. Aliases: get_order_status, check_order, order_status, order_details, fetch_order. Check the status and fill details of an existing order by its UUID. Returns current status (PENDING/FILLING/FILLED/PARTIAL/FAILED/CANCELLED), fill amounts, provider used, on-chain delegation tx hash if delivered. Use this to poll order progress after creating an order. Auth required (API key).", "inputSchema": { "properties": { "order_id": { "description": "The order UUID.", "type": "string" } }, "required": [ "order_id" ], "type": "object" }, "name": "get_order", "outputSchema": null }, { "description": "Historical price snapshots. No auth required.", "inputSchema": { "properties": { "period": { "description": "Time period (default: 24h).", "enum": [ "1h", "6h", "24h", "7d", "30d" ], "type": "string" }, "provider": { "description": "Filter by provider name.", "type": "string" }, "resource": { "description": "Filter by resource type.", "enum": [ "ENERGY", "BANDWIDTH" ], "type": "string" } }, "type": "object" }, "name": "get_price_history", "outputSchema": null }, { "description": "Get current energy and bandwidth prices from all Merx providers, sorted by best (minimum) price across all duration tiers. Each provider lists ALL its duration tiers (5min/1h/1d/7d/30d etc) — short rentals are usually more expensive per unit than long ones, so always check tier-by-tier. Optionally filter by exact duration in seconds. No auth required.", "inputSchema": { "properties": { "duration": { "description": "Filter to providers offering this exact duration in seconds (e.g. 3600 for 1h, 86400 for 1d, 604800 for 7d, 2592000 for 30d). Omit to see all tiers.", "type": "number" }, "resource": { "description": "Filter by resource type. Omit for all.", "enum": [ "ENERGY", "BANDWIDTH" ], "type": "string" } }, "type": "object" }, "name": "get_prices", "outputSchema": null }, { "description": "Get full details of a single standing order by its UUID. Returns trigger config, action params, budget, executions count, and status. Auth required (API key).", "inputSchema": { "properties": { "order_id": { "description": "Standing order UUID (from list_standing_orders).", "type": "string" } }, "required": [ "order_id" ], "type": "object" }, "name": "get_standing_order", "outputSchema": null }, { "description": "Get a real swap quote from SunSwap V2. No auth required.", "inputSchema": { "properties": { "amount": { "description": "Amount of source token to swap", "type": "string" }, "from_token": { "description": "Source token symbol (TRX, USDT, USDC, etc.)", "type": "string" }, "slippage": { "description": "Slippage tolerance in percent (default 1)", "type": "number" }, "to_token": { "description": "Destination token symbol", "type": "string" } }, "required": [ "from_token", "to_token", "amount" ], "type": "object" }, "name": "get_swap_quote", "outputSchema": null }, { "description": "Get TRC-20 token metadata: name, symbol, decimals, total supply. No auth required.", "inputSchema": { "properties": { "token": { "description": "Token symbol or contract address.", "type": "string" } }, "required": [ "token" ], "type": "object" }, "name": "get_token_info", "outputSchema": null }, { "description": "Get token price via SunSwap quote + CoinGecko USD rate. No auth required.", "inputSchema": { "properties": { "token": { "description": "Token symbol (USDT, USDC, SUN, etc.)", "type": "string" } }, "required": [ "token" ], "type": "object" }, "name": "get_token_price", "outputSchema": null }, { "description": "Look up a transaction by ID on TRON. No auth required.", "inputSchema": { "properties": { "tx_id": { "description": "Transaction ID (hash).", "type": "string" } }, "required": [ "tx_id" ], "type": "object" }, "name": "get_transaction", "outputSchema": null }, { "description": "Get your Merx account transaction history. Requires MERX_API_KEY.", "inputSchema": { "properties": { "period": { "description": "Time period to query. Default: 30D.", "enum": [ "7D", "30D", "90D" ], "type": "string" } }, "type": "object" }, "name": "get_transaction_history", "outputSchema": null }, { "description": "Get TRC-20 token balance for an address. Supports symbol (USDT, USDC) or contract address. No auth required.", "inputSchema": { "properties": { "address": { "description": "TRON address to query.", "type": "string" }, "token": { "description": "Token symbol (USDT, USDC) or contract address.", "type": "string" } }, "required": [ "address", "token" ], "type": "object" }, "name": "get_trc20_balance", "outputSchema": null }, { "description": "Quick TRX balance for a TRON address. No auth required.", "inputSchema": { "properties": { "address": { "description": "TRON address (T...).", "type": "string" } }, "required": [ "address" ], "type": "object" }, "name": "get_trx_balance", "outputSchema": null }, { "description": "Get current TRX price from CoinGecko. No auth required.", "inputSchema": { "properties": { "currency": { "description": "Fiat currency code (default: usd).", "type": "string" } }, "type": "object" }, "name": "get_trx_price", "outputSchema": null }, { "description": "List all monitors you created with create_monitor, optionally filtered by status (ACTIVE/CANCELLED). Each row shows the full monitor UUID (pass to cancel_monitor), monitor type, target address, and status. Note: the Target column will be empty for monitor types that do not have a single watched address — specifically price_alert and balance_threshold (when watching the API key holder rather than a third-party address). For delegation_expiry and address_activity monitors, Target will always be set. Auth required (API key).", "inputSchema": { "properties": { "status": { "description": "Filter by monitor status.", "enum": [ "ACTIVE", "CANCELLED" ], "type": "string" } }, "type": "object" }, "name": "list_monitors", "outputSchema": null }, { "description": "List recent orders with optional status filter. Auth required.", "inputSchema": { "properties": { "limit": { "description": "Max number of orders to return (default: 20).", "type": "number" }, "status": { "description": "Filter by order status.", "enum": [ "PENDING", "FILLING", "FILLED", "PARTIAL", "FAILED", "CANCELLED" ], "type": "string" } }, "type": "object" }, "name": "list_orders", "outputSchema": null }, { "description": "List all Merx providers with types, durations, and availability. No authentication required.", "inputSchema": { "properties": {}, "type": "object" }, "name": "list_providers", "outputSchema": null }, { "description": "List all standing orders with optional status filter. Auth required.", "inputSchema": { "properties": { "status": { "description": "Filter by status.", "enum": [ "ACTIVE", "TRIGGERED", "EXHAUSTED", "EXPIRED", "CANCELLED" ], "type": "string" } }, "type": "object" }, "name": "list_standing_orders", "outputSchema": null }, { "description": "Log in to an existing Merx account. No MERX_API_KEY needed.", "inputSchema": { "properties": { "email": { "description": "Email address", "type": "string" }, "password": { "description": "Password", "type": "string" } }, "required": [ "email", "password" ], "type": "object" }, "name": "login", "outputSchema": null }, { "description": "Look up a MERX invoice. Shows amount, recipient, token, and status. Agent must sign and broadcast the transfer separately (non-custodial).", "inputSchema": { "properties": { "invoice_id": { "description": "Invoice UUID (e.g. eaa00c4e-1234-5678-90ab-cdef12345678) returned by create_invoice, or a full payment URL containing /pay/<uuid>.", "type": "string" } }, "required": [ "invoice_id" ], "type": "object" }, "name": "lookup_invoice", "outputSchema": null }, { "description": "Pay an x402 invoice by signing and broadcasting a TRX transfer to the invoice address, then verifying the payment with the facilitator. x402 (Coinbase + Cloudflare HTTP 402 standard) is the protocol AI agents use to pay APIs per call. Use this when you receive an invoice_id from a paywalled service or another agent. REQUIRES: TRON_PRIVATE_KEY in env (use set_private_key first) AND a valid invoice_id from create_invoice or x402 challenge response. The transfer is signed locally — your private key never leaves the MCP process.", "inputSchema": { "properties": { "invoice_id": { "description": "Invoice ID to pay", "type": "string" } }, "required": [ "invoice_id" ], "type": "object" }, "name": "pay_invoice", "outputSchema": null }, { "description": "Call a view/pure function on a TRON smart contract. No auth or private key required.", "inputSchema": { "properties": { "contract_address": { "description": "Contract TRON address.", "type": "string" }, "function_selector": { "description": "Function signature, e.g. \"balanceOf(address)\".", "type": "string" }, "parameter": { "description": "ABI-encoded parameter hex (optional).", "type": "string" } }, "required": [ "contract_address", "function_selector" ], "type": "object" }, "name": "read_contract", "outputSchema": null }, { "description": "Register your TRON address as an agent on agent.merx.exchange. Required ONCE before using request_payment, create_invoice, watch_address, agent_status, or any other agent payment tool. Pass the TRON address you want to use as the on-chain identity for this API key. Idempotent — calling twice with the same key returns the existing registration. Auth required (API key).", "inputSchema": { "properties": { "label": { "description": "Optional human-readable label (max 64 chars)", "type": "string" }, "tron_address": { "description": "Your TRON address (T...) that will receive payments and act as the agent identity.", "type": "string" } }, "required": [ "tron_address" ], "type": "object" }, "name": "register_agent", "outputSchema": null }, { "description": "Create a TRC20 payment request on TRON (USDT, USDC, USDD, or any TRC20). Returns a payment address. Fires webhook when payment arrives (<3 seconds). Use for receiving payments from other agents or humans. Requires agent registration first — call register_agent if you get AGENT_NOT_REGISTERED error.", "inputSchema": { "properties": { "amount_usdt": { "description": "Amount in token units (e.g. \"5.00\")", "type": "string" }, "description": { "description": "What this payment is for", "type": "string" }, "timeout_seconds": { "description": "Wait timeout (10-3600, default 300)", "type": "number" }, "tolerance_pct": { "description": "Amount tolerance % (default 0 = exact)", "type": "number" }, "webhook_url": { "description": "URL to notify on payment (optional)", "type": "string" } }, "required": [ "amount_usdt" ], "type": "object" }, "name": "request_payment", "outputSchema": null }, { "description": "Broadcast a signed TRON transaction with automatic energy optimization.\nIf the target address lacks sufficient energy, MERX purchases the deficit at the best\nmarket price before broadcasting. One call: estimate, buy energy, wait for delegation, broadcast.\n\nRequires MERX_API_KEY with the \"broadcast\" scope, and a pre-signed transaction.\nReturns txid on success, refunds on timeout.\n\nNOTE: This endpoint is currently behind a feature flag and disabled by default in production.\nIf you get a 503 MAINTENANCE error, use the manual flow instead: call ensure_resources to\nprovision energy, then sign and broadcast the transaction with your own TronWeb client.", "inputSchema": { "properties": { "signed_tx": { "description": "Hex-encoded signed TRON transaction", "type": "string" }, "target_address": { "description": "TRON address that will execute the transaction (must match TX sender)", "type": "string" } }, "required": [ "signed_tx", "target_address" ], "type": "object" }, "name": "resource_broadcast", "outputSchema": null }, { "description": "Get on-chain transaction history for a TRON address. No auth required.", "inputSchema": { "properties": { "address": { "description": "TRON address.", "type": "string" }, "limit": { "description": "Max results (default: 20).", "type": "number" }, "type": { "description": "Transaction type filter (default: all).", "enum": [ "all", "trx", "trc20" ], "type": "string" } }, "required": [ "address" ], "type": "object" }, "name": "search_transaction_history", "outputSchema": null }, { "description": "Set your Merx API key for this session. Unlocks all authenticated tools (trading, balance, orders). Use this if you already have an API key.", "inputSchema": { "properties": { "api_key": { "description": "Your Merx API key (starts with sk_live_)", "type": "string" } }, "required": [ "api_key" ], "type": "object" }, "name": "set_api_key", "outputSchema": null }, { "description": "Set your TRON private key for this session. Address is derived automatically. Enables write tools: transfer_trx, transfer_trc20, approve_trc20, execute_swap, deposit_trx. Key stays local - never sent to Merx servers.", "inputSchema": { "properties": { "private_key": { "description": "Your TRON private key (64 hex characters)", "type": "string" } }, "required": [ "private_key" ], "type": "object" }, "name": "set_private_key", "outputSchema": null }, { "description": "Dry-run a multi-step operation (transfer, swap, buy resources, etc) without sending anything on-chain. Returns per-step energy and bandwidth estimates plus a total TRX cost. Use this to preview a plan before committing — for example, before transferring USDT to multiple recipients you can simulate to see the total energy cost. No auth required.", "inputSchema": { "properties": { "resource_strategy": { "description": "Resource acquisition strategy (default: batch_cheapest).", "enum": [ "batch_cheapest", "per_step", "no_resources" ], "type": "string" }, "steps": { "description": "Array of { action, params } steps to simulate.", "type": "array" } }, "required": [ "steps" ], "type": "object" }, "name": "simulate", "outputSchema": null }, { "description": "Recommend a rental duration based on your use case. No authentication required.", "inputSchema": { "properties": { "transaction_count": { "description": "Expected number of transactions (optional).", "type": "number" }, "use_case": { "description": "Your intended use case.", "enum": [ "single_transfer", "batch_transfers", "dapp_session", "daily_operations", "weekly_operations", "monthly_budget" ], "type": "string" } }, "required": [ "use_case" ], "type": "object" }, "name": "suggest_duration", "outputSchema": null }, { "description": "Transfer TRC-20 tokens with automatic energy optimization. Signs and broadcasts on-chain. Requires TRON_PRIVATE_KEY.", "inputSchema": { "properties": { "amount": { "description": "Amount to transfer (human-readable).", "type": "string" }, "resource_operation_id": { "description": "Optional stable ID for resource purchases. Reuse on retries; this does not make the token transfer itself idempotent.", "type": "string" }, "to_address": { "description": "Recipient TRON address.", "type": "string" }, "token": { "description": "Token symbol (USDT, USDC) or contract address.", "type": "string" } }, "required": [ "to_address", "token", "amount" ], "type": "object" }, "name": "transfer_trc20", "outputSchema": null }, { "description": "Send TRX to an address. Checks bandwidth, buys via Merx if needed. Signs and broadcasts on-chain. Requires TRON_PRIVATE_KEY.", "inputSchema": { "properties": { "amount_trx": { "description": "Amount of TRX to send.", "type": "string" }, "resource_operation_id": { "description": "Optional stable ID for resource purchases. Reuse on retries; this does not make the token transfer itself idempotent.", "type": "string" }, "to_address": { "description": "Recipient TRON address.", "type": "string" } }, "required": [ "to_address", "amount_trx" ], "type": "object" }, "name": "transfer_trx", "outputSchema": null }, { "description": "Validate a TRON address format and check on-chain status. No auth required.", "inputSchema": { "properties": { "address": { "description": "TRON address to validate.", "type": "string" } }, "required": [ "address" ], "type": "object" }, "name": "validate_address", "outputSchema": null }, { "description": "Block until an order reaches a terminal state (FILLED, PARTIAL, FAILED, or CANCELLED) by polling get_order at fixed intervals. Use this right after create_order when you need to confirm the energy/bandwidth has actually been delegated on-chain before sending the next transaction. Returns the final order details including the on-chain delegation tx hash. Auth required.", "inputSchema": { "properties": { "order_id": { "description": "The order UUID returned by create_order.", "type": "string" }, "poll_interval_sec": { "description": "How often to check status in seconds (default: 3, min: 1).", "type": "number" }, "timeout_sec": { "description": "Maximum time to wait in seconds (default: 60, max: 300).", "type": "number" } }, "required": [ "order_id" ], "type": "object" }, "name": "wait_for_delegation", "outputSchema": null }, { "description": "Watch any TRON address for TRC20 transfers (USDT, USDC, USDD, or any token). Fires webhook on each matching transfer. Persistent - runs 24/7 even when conversation ends.", "inputSchema": { "properties": { "address": { "description": "TRON address to watch (T...)", "type": "string" }, "event_types": { "description": "Event types to watch", "items": { "enum": [ "usdt_incoming", "usdt_outgoing", "trx_incoming" ], "type": "string" }, "type": "array" }, "min_amount_usdt": { "description": "Minimum amount filter (default \"0\")", "type": "string" }, "ttl_hours": { "description": "Watch duration in hours (1-720, default 24)", "type": "number" }, "webhook_url": { "description": "Webhook URL for notifications", "type": "string" } }, "required": [ "address", "webhook_url" ], "type": "object" }, "name": "watch_address", "outputSchema": null }, { "description": "Withdraw TRX or USDT from your Merx account to an external TRON address. The \"amount\" parameter is interpreted in the currency specified by \"currency\" — i.e. for currency=TRX it is TRX units, for currency=USDT it is USDT units. (The legacy parameter \"amount_trx\" is still accepted as an alias for backwards compatibility, but is misleading when currency is USDT — prefer \"amount\" in new code.) Requires MERX_API_KEY.", "inputSchema": { "properties": { "address": { "description": "Destination TRON address (starts with T).", "type": "string" }, "amount": { "description": "Amount to withdraw, in units of the chosen currency. E.g. \"100\" with currency=TRX = 100 TRX, \"100\" with currency=USDT = 100 USDT.", "type": "string" }, "amount_trx": { "description": "DEPRECATED alias for \"amount\" — kept for backwards compatibility. Pass \"amount\" instead in new code.", "type": "string" }, "currency": { "description": "Currency to withdraw. Default: TRX.", "enum": [ "TRX", "USDT" ], "type": "string" } }, "required": [ "address" ], "type": "object" }, "name": "withdraw", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:c6fb3a316233d872dfbd2da4b8a6c20c95d9a9f444fc835a73f884ba19c1b492 | sha256sum