Odel
MERX - TRON Resource Exchange

MERX - TRON Resource Exchange

@hovstederAI Agents3TypeScriptMITUpdated 2mo ago

TRON energy exchange for AI agents. 54 tools, 30 prompts, 21 resources. A2A + ACP.

Server endpointStreamable HTTP

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

MERX

https://MERX.exchange

TRON infrastructure for AI agents.

MERX MCP server

smithery badge npm version License: MIT Tools Prompts Resources

66 MCP tools. Energy market across 6 providers. USDT/USDC/USDD payments. x402 v2 facilitator on TRON mainnet.

Documentation | API Reference | MCP Server


Table of contents


What is MERX

MERX is the infrastructure layer for AI agents and agentic networks on TRON. Where Stripe is infrastructure for web commerce and Cloudflare for the open web, MERX is the missing infrastructure layer that lets autonomous AI agents discover, transact, and operate on TRON without ever touching energy, bandwidth, or low-level blockchain mechanics.

The platform exposes one coherent stack: 66-tool MCP server, agent payment service for TRC-20 stablecoins, x402 v2 facilitator (the only TRON facilitator in the coinbase/x402 ecosystem registry), GasFree transfers via a MERX-deployed mainnet controller, dedicated TRON RPC node, A2A (Google, 7 skills) and ACP (BeeAI, 7 capabilities) protocol coverage, and a natural language Policy Engine powered by Anthropic Claude.

Underneath those agent surfaces sits an energy aggregator across 6 active providers (CatFee, Netts, TronSave, iTRX, PowerSun, TEM) that routes resource purchases to the cheapest source automatically -- so when an agent calls send(), MERX estimates the energy required, buys only the deficit, and broadcasts the transaction. The agent never holds TRX or thinks about energy.

Any AI agent running in Claude, LangChain, CrewAI, Vertex AI, AutoGen, or BeeAI can send payments and acquire resources on TRON through a single integration with MERX.

Three ways to plug an agent into MERX:

  • MCP server -- 66 tools for AI agents. Hosted SSE at https://merx.exchange/mcp/sse (zero install) or local stdio via npx merx-mcp. Works with Claude, GPT, Cursor, Windsurf, and any MCP-compatible client.

  • Claude Code plugin -- one-line install for Claude Code. Auto-registers the MCP server, ships 6 slash commands and a tron-agent-engineer sub-agent. See Hovsteder/merx-claude-plugin.

  • REST API + SDKs -- direct programmatic access for agents that aren't using MCP. JavaScript (merx-sdk v2.1 on npm), Python (merx-sdk v2.1 on PyPI), or raw HTTP against /api/v1/ (70+ versioned endpoints).

For human users, the web platform at merx.exchange remains available for manual energy trading, dashboard, deposits, and withdrawals -- but the platform is built primarily for agents.


The problem

AI agents will become the dominant transactional users of stablecoins, and TRON -- home to USDD, $86B+ USDT, USDC, and the dominant chain for retail USDT in Southeast Asia, Africa, and Latin America -- is already the largest USDT-native network in the world.

But TRON has no infrastructure designed for agents:

  • No agent-native payment service. Existing TRON wallets are built for human users with mouse clicks and seed-phrase backups, not for autonomous programs that need to register addresses, send TRC-20s, watch for incoming payments, and create invoices via REST.

  • Energy and bandwidth are a UX dead-end. Every smart contract call on TRON requires energy. Without energy, TRX tokens burn as fees -- a single USDT transfer burns 3-13 TRX (~$1-4) for cold receivers. Renting energy from a provider drops the cost to ~$0.10 -- a 94% reduction -- but every provider has a different price, different API, different duration tiers, and different failure modes. No agent can be expected to manage that.

  • No x402 facilitator on TRON before MERX. The x402 protocol has already processed $43.57M in agent-to-agent payments on Base, Solana, Stellar, and Ethereum. TRON was completely absent from the coinbase/x402 ecosystem registry until MERX. Agents that wanted to pay for TRON-hosted APIs in USDT had no standardized way to do it.

  • Three agent protocols, zero TRON integrations. MCP (Anthropic), A2A (Google), and ACP (BeeAI) are the three major agent communication protocols. Until MERX, none of them had a deployed, production-grade TRON server. AI agents in Claude, Vertex AI, or BeeAI literally could not see TRON.

MERX builds the missing layer. AI agents call one API, hold zero TRX, and get paid / pay / send / receive in USDT, USDC, or USDD on the world's largest USDT network.

Without MERXWith MERX
Agent has to manage energy + bandwidth manuallysend() estimates and provisions resources automatically
Agent has to hold TRX as gasGasFree transfers — agents send stablecoins from zero-TRX wallets
Agent has to integrate every energy provider's APIOne MERX API routes to the cheapest of 6 providers
No way to pay for TRON-hosted APIs in USDTx402 v2 facilitator with full USDT/USDC/USDD support
No A2A/ACP discovery on TRONAgent Card + Manifest live, 7 skills, 7 capabilities
Agent has to write its own MCP server for TRON66 tools, 30 prompts, 21 resources, hosted
Address watching means polling RPCwatch() with sub-3-second webhook delivery via ZMQ

Platform overview

ComponentDescription
MCP server66 tools, 30 prompts, 21 resources for AI agents. Hosted SSE at https://merx.exchange/mcp/sse (zero install) or local stdio. SEP-1649 server card. The largest TRON-native MCP server in production.
Claude Code pluginOne-line install: /plugin marketplace add Hovsteder/merx-claude-plugin. Auto-registers MCP, 6 slash commands, sub-agent.
Agent Payment Serviceagent.merx.exchange -- non-custodial REST API. register, send, receive, watch, invoice, batch, schedule, contacts. USDT live; USDD/USDC next sprint.
x402 v2 Facilitatorx402.merx.exchange -- only TRON facilitator in the coinbase/x402 ecosystem registry. Three settlement schemes (exact, exact_permit, exact_gasfree) for USDT, USDC, USDD on TRON mainnet plus USDC on Base.
GasFree Transfer ServiceMainnet controller TKjJ1r5XYqnLZmLakcP3knis7Lh6gm3qtR activated 2026-04-08. TIP-712 PermitTransfer for USDT/USDC/USDD. Agents send stablecoins from zero-TRX wallets.
A2A Protocol (Google)Agent Card at /.well-known/agent.json. 7 skills including compile_policy. Task-based execution with SSE streaming. Compatible with LangChain, CrewAI, Vertex AI, AutoGen, Mastra.
ACP Protocol (BeeAI)Manifest at /.well-known/agent-manifest.json. 7 capabilities matching A2A skills. Run-based execution with long-polling.
Policy EngineNatural language → standing orders, powered by Anthropic Claude Sonnet 4. Available as MCP tool, A2A skill, and REST endpoint.
Energy aggregatorReal-time price comparison across 6 active providers (CatFee, Netts, TronSave, iTRX, PowerSun, TEM). Routes orders to cheapest source. Underneath the agent surfaces.
Dedicated TRON RPC noderpc.merx.exchange, sub-5ms read latency, 13.7ms broadcast. Trial 1,000 free requests; paid tiers with energy-spend waiver.
REST API70+ versioned endpoints under /api/v1/. Idempotency-Key on POST. Standard error format.
WebSocketReal-time TRC-20 transfer stream and price updates at wss://merx.exchange/ws.
JavaScript SDKmerx-sdk v2.1 -- AgentModule + SwapModule + 4 base modules. TypeScript types included.
Python SDKmerx-sdk v2.1 -- same surface in snake_case.
x402 middlewaremerx-x402 v2.0.0 -- one-line Express integration for x402 v2.
Documentation38+ pages at merx.exchange/docs. API reference, MCP/A2A/ACP guides, x402 integration.

Quick start

Four paths depending on your use case. For AI agents, paths 3 and 4 are the primary surfaces. Path 1 (web) is for human operators; path 2 (REST/SDK) is for direct programmatic integration.

Path 1: Web platform (humans)

Go to merx.exchange. Sign in. Deposit TRX. Manage energy, agent API keys, and balance through the dashboard. No code required.

Path 2: REST API / SDK (programmatic)

Install the JavaScript SDK:

npm install merx-sdk

Use it in your application (replace merx_sk_your_key with your API key from merx.exchange):

import { MerxClient } from 'merx-sdk'

const merx = new MerxClient({ apiKey: 'merx_sk_your_key' })

// Get current prices from all providers
const prices = await merx.prices.list()
console.log(prices[0])
// { provider: "netts", price_sun: 22, available: 100000000 }

// Buy energy at best price
const order = await merx.orders.create({
  resource_type: 'ENERGY',
  amount: 65000,
  duration_sec: 300,
  target_address: 'TYourAddress...',
})
console.log(order.status)   // "FILLED"
console.log(order.cost_trx) // 1.4311

Python:

from merx import MerxClient

merx = MerxClient(api_key="merx_sk_your_key")

prices = merx.prices.list()
order = merx.orders.create(
    resource_type="ENERGY",
    amount=65000,
    duration_sec=300,
    target_address="TYourAddress..."
)

curl (no SDK needed):

# Public -- no auth required
curl https://merx.exchange/api/v1/prices

# Authenticated
curl -X POST https://merx.exchange/api/v1/orders \
  -H "Authorization: Bearer merx_sk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "resource_type": "ENERGY",
    "amount": 65000,
    "duration_sec": 300,
    "target_address": "TYourAddress..."
  }'

Path 3: Claude Code plugin (one-line install)

If you're using Claude Code, this is the fastest path. The plugin auto-registers the hosted MCP server, ships 6 slash commands, and includes a tron-agent-engineer sub-agent specialized in agentic payment workflows on TRON.

/plugin marketplace add Hovsteder/merx-claude-plugin
/plugin install merx@merx

Then run /merx:setup to configure your MERX API key. Available commands:

CommandWhat it does
/merx:setupFirst-time setup: API key, connection test, capability tour
/merx:pricesLive TRON energy and bandwidth prices across all providers
/merx:buy-energyBuy energy via cheapest provider, delegated to a target address
/merx:balanceMERX prepaid balance, recent orders, free-tier usage
/merx:txLook up a TRON transaction with structured fields
/merx:sendSend TRC-20 stablecoin via the agent payment service

Source: github.com/Hovsteder/merx-claude-plugin.

Path 4: MCP for any AI agent (Claude, Cursor, Windsurf, custom)

Hosted (zero install) -- works with Claude.ai, Cursor, Windsurf, and any SSE-compatible MCP client:

{
  "mcpServers": {
    "merx": {
      "url": "https://merx.exchange/mcp/sse"
    }
  }
}

22 read-only tools are available immediately: prices, estimation, market analysis, on-chain queries, address lookups. No API key required.

To unlock trading tools, call set_api_key in any conversation:

set_api_key("merx_sk_your_key")
-> All 34 authenticated tools unlocked for this session.

To unlock write tools (send TRX, swap tokens), call set_private_key:

set_private_key("your_64_char_hex_key")
-> Address derived automatically. All 66 tools available.
-> Key never leaves your machine.

Local (stdio) -- full power with keys set via environment variables:

npm install -g merx
{
  "mcpServers": {
    "merx": {
      "command": "npx merx-mcp",
      "env": {
        "MERX_API_KEY": "merx_sk_your_key",
        "TRON_PRIVATE_KEY": "your_private_key"
      }
    }
  }
}

All 66 tools available from the first message.

Additional protocol support

MERX also exposes A2A and ACP for non-MCP orchestrators -- same backend, different discovery surface:

Access levels

ConfigurationToolsCapabilities
No keys22Prices, estimation, market analysis, on-chain queries, address lookups
+ MERX_API_KEY34+ Orders, balance, deposits, standing orders, monitors
+ TRON_PRIVATE_KEY66+ Send TRX/USDT/USDC/USDD, swap tokens, approve contracts, execute intents, agent payments

What sets MERX apart

The only complete agent stack on TRON

MERX is the only TRON project that runs all three major agent protocols as production-grade services: MCP (Anthropic), A2A (Google, 7 skills), and ACP (BeeAI, 7 capabilities). TronLink published a core MCP library (@tronlink/tronlink-mcp-core v0.1.0, March 2026) but it is explicitly a building block, not a hosted service. MERX is the only TRON entry in the coinbase/x402 ecosystem partner registry.

Agent payment service with sub-3-second receive

agent.merx.exchange is non-custodial: agents register their own TRON address and MERX never holds private keys or controls funds. The ZMQ event listener matches incoming TRC-20 transfers (USDT, USDC, USDD, plus any other token in real time) and dispatches webhooks within ~3 seconds of on-chain confirmation. watch() provides persistent 24/7 address monitoring with per-token filtering. invoice() creates payment requests with payment links and automatic detection. batch() sends up to 50 transfers in one call.

x402 v2 facilitator with full TRON stablecoin coverage

x402.merx.exchange implements the standard /verify, /settle, and /supported endpoints, so any x402 client (including the Coinbase CDP reference implementation) interoperates out of the box. Three settlement schemes live on TRON mainnet: exact (direct TRC-20 transfer), exact_permit and exact_gasfree (TIP-712 PermitTransfer through MERX's own GasFreeController contract). USDT, USDC, and USDD all settled on mainnet with verified txids and on-chain commission collection. Among 15 known x402 facilitators, MERX is the only one supporting the full TRON stablecoin set.

GasFree zero-TRX sends

The MERX-deployed GasFreeController contract TKjJ1r5XYqnLZmLakcP3knis7Lh6gm3qtR went live on mainnet 2026-04-08 with three verified mainnet permitTransfer settlements (USDT, USDC, USDD). Agents send stablecoins from wallets that hold zero TRX -- the controller pulls value+fee from a per-user GasFree subaccount and the executor pays the broadcast gas. Single biggest UX barrier for agents on TRON, removed.

Resource-aware transactions

Every write operation (TRC-20 transfer, token swap, contract call) automatically estimates energy AND bandwidth needed, buys the deficit at the best market price across 6 providers, waits for delegation to arrive on-chain, then executes. The agent never burns TRX unnecessarily. Tested on mainnet: a USDT transfer with auto-resources saves up to 94% compared to burning.

Exact energy simulation

Before buying energy for swaps and contract calls, MERX simulates the exact transaction via triggerConstantContract with real parameters. No hardcoded estimates -- the precise energy amount is purchased. For a SunSwap V2 swap, simulation returned 223,354 energy; the on-chain transaction used exactly 223,354.

Natural language Policy Engine

"Keep 500,000 energy on my wallet. Buy when price drops below 55 SUN. Max 200 TRX per week."

The Policy Engine (powered by Anthropic Claude Sonnet 4) parses this instruction, generates structured standing orders with triggers, budget limits, and expiration, previews them for the user, and creates everything with one confirmation. Available through MCP, A2A skill, and REST endpoint. No competitor can replicate this without their own Anthropic integration, standing order infrastructure, and real-time provider price feeds.

Multi-provider energy routing (under the agent surfaces)

All 6 active energy providers are aggregated (CatFee, Netts, TronSave, iTRX, PowerSun, TEM). Orders are routed to the cheapest source automatically. If one provider fails or runs out of capacity, the next cheapest fills the order. Prices cover both energy and bandwidth across every available duration tier.

Standing orders + delegation monitors

Server-side 24/7 automation stored in PostgreSQL. Trigger types: price_below, price_above, schedule (cron), balance_below, delegation_expiry. Persists across restarts. Works when the client is offline. Auto-renew with configurable max price.

Full MCP protocol

The only TRON MCP server using all three MCP primitives: tools (66), prompts (30), and resources (21 -- 14 static + 7 templates). Two transport modes: hosted SSE (zero install) and local stdio (full key management). Three protocol versions supported: 2024-11-05, 2025-03-26, 2025-06-18.


Architecture

Platform overview

graph TB
    User[User / Application / AI Agent]
    Platform[MERX Platform<br>merx.exchange]
    PM[Price Monitor<br>polls every 30s]
    OE[Order Executor<br>routes to cheapest]
    DV[Delegation Verifier<br>confirms on-chain]
    TR[Treasury<br>balance management]
    RPC[TronGrid / GetBlock<br>TRON RPC]
    Providers[Energy Providers<br>all connected]
    TRON[TRON Blockchain]

    User -->|Web / API / SDK / MCP| Platform
    Platform --> PM
    Platform --> OE
    Platform --> DV
    Platform --> TR
    PM -->|Price polling| Providers
    OE -->|Order routing<br>cheapest first| Providers
    DV -->|Verify delegations| RPC
    RPC --> TRON
    Providers -->|Delegate energy<br>+ bandwidth| TRON

    style User fill:#1a1a2e,stroke:#B8963E,color:#F5F0E8
    style Platform fill:#0C0B09,stroke:#B8963E,color:#F5F0E8
    style TRON fill:#141310,stroke:#B8963E,color:#F5F0E8
ASCII diagram (if Mermaid does not render)
User / Application / AI Agent
    |
    | Web / REST API / SDK / MCP
    v
+----------------------------------+
|         MERX Platform            |
|         merx.exchange            |
|                                  |
|  +------------+ +-------------+  |
|  |   Price    | |   Order     |  |
|  |  Monitor   | |  Executor   |  |
|  | (every 30s)| | (cheapest)  |  |
|  +------------+ +-------------+  |
|  +------------+ +-------------+  |
|  | Delegation | |  Treasury   |  |
|  |  Verifier  | |  Manager    |  |
|  +------------+ +-------------+  |
+----------------------------------+
    |                    |
    v                    v
TronGrid / GetBlock   Energy Providers
(TRON RPC)            (all connected)
    |                    |
    v                    v
+----------------------------------+
|        TRON Blockchain           |
+----------------------------------+

Key architecture principle: All traffic goes through the MERX platform. Users never need TronGrid API keys. MERX manages all RPC infrastructure, caching, and failover server-side. The only operation that stays on the client: transaction signing with a private key. Private keys never leave the client process.

Resource-aware transaction flow

This sequence diagram shows a real USDT transfer with auto-resource optimization. Numbers are from production testing.

sequenceDiagram
    participant C as Client
    participant M as MERX
    participant P as Providers
    participant T as TRON

    C->>M: POST /orders or transfer_trc20(USDT, 100, TAddr)
    M->>M: POST /estimate (trc20_transfer)
    Note over M: energy: 7,896 / bandwidth: 345
    M->>M: GET /chain/resources/TSender
    Note over M: energy: 0 / bandwidth: 0 / free BW: 600
    Note over M: Energy deficit: 7,896 (round up to 65,000 min)<br>Bandwidth: 345 < 1,500 min order, skip
    M->>P: Route order: ENERGY, 65,000, 300s
    P-->>M: FILLED at 22 SUN (1.43 TRX)
    Note over M: Poll every 2s until delegation arrives
    M->>T: Verify delegation on sender address
    T-->>M: energy: 65,050 available
    Note over M: Sign TX (client-side if MCP, server-side if API)
    M->>T: Broadcast signed TX
    T-->>M: TX confirmed
    M-->>C: USDT sent. Cost: 1.43 TRX.<br>Burn alternative: 3.66 TRX. Savings: 87.6%
ASCII diagram (if Mermaid does not render)
Client                  MERX                    Providers               TRON
  |                       |                       |                      |
  | order / transfer      |                       |                      |
  |---------------------->|                       |                      |
  |                       | estimate energy+BW    |                      |
  |                       | energy: 7,896         |                      |
  |                       | bandwidth: 345        |                      |
  |                       |                       |                      |
  |                       | check sender resources|                      |
  |                       | energy: 0, BW: 0      |                      |
  |                       |                       |                      |
  |                       | [deficit: 7,896 -> round up to 65,000]      |
  |                       | [BW: 345 < 1,500 min -> skip, burn ~0.3 TRX]|
  |                       |                       |                      |
  |                       | route to cheapest     |                      |
  |                       |---------------------->|                      |
  |                       |   FILLED 22 SUN       |                      |
  |                       |   1.43 TRX            |                      |
  |                       |<----------------------|                      |
  |                       |                       |                      |
  |                       | [poll until delegation arrives]              |
  |                       |                       |                      |
  |                       | verify delegation     |--------------------->|
  |                       |   energy: 65,050      |<---------------------|
  |                       |                       |                      |
  |                       | [sign + broadcast]    |                      |
  |                       |---------------------->|--------------------->|
  |                       |                       |   TX confirmed       |
  |                       |<----------------------|<---------------------|
  |                       |                       |                      |
  |   USDT sent           |                       |                      |
  |   Cost: 1.43 TRX      |                       |                      |
  |   Burn alt: 3.66 TRX  |                       |                      |
  |   Savings: 87.6%      |                       |                      |
  |<----------------------|                       |                      |

Resource purchase rules

RuleDetails
Energy deficit > 0Round up to minimum 65,000 units. Cheaper to buy minimum than to burn even small deficits.
Bandwidth deficit < 1,500Skip purchase, let network burn ~0.3 TRX. Cheaper than minimum bandwidth order.
After energy purchasePoll check_address_resources every 2 seconds until delegation arrives on-chain. Never broadcast TX before delegation is confirmed.
DEX swapsSimulate exact energy via triggerConstantContract with real swap parameters. No hardcoded estimates.

API overview

Base URL: https://merx.exchange/api/v1

All endpoints are versioned. Errors follow a standard format: { "error": { "code": "...", "message": "...", "details": { ... } } }. Idempotency-Key header supported on POST /orders and POST /withdraw.

Public endpoints (no authentication)

MethodEndpointDescription
GET/pricesCurrent energy and bandwidth prices from all providers
GET/prices/bestCheapest provider for given resource and amount
GET/prices/historyHistorical price snapshots by provider and period
GET/prices/statsPrice statistics: min, max, average, percentiles
GET/prices/analysisMarket analysis with trends and recommendations
GET/orders/previewPreview order cost without creating it
POST/estimateEstimate energy and bandwidth for any transaction type
GET/chain/account/:addressOn-chain account info
GET/chain/resources/:addressEnergy, bandwidth, and free BW for any address
GET/chain/transaction/:txidTransaction details by ID
GET/chain/block/:numberBlock info by number or latest
GET/chain/parametersTRON network parameters

Authenticated endpoints (API key required)

MethodEndpointDescription
POST/ordersCreate order -- routed to cheapest provider
GET/ordersList orders with optional status filter
GET/orders/:idOrder details with fills, TX hashes, verification
GET/balanceMERX account balance (TRX, USDT, locked)
GET/deposit/infoDeposit address and memo
POST/withdrawWithdraw TRX to external address
GET/historyAccount transaction history
GET/history/summaryHistory summary with totals
POST/keysCreate new API key
GET/keysList API keys
DELETE/keys/:idRevoke API key
POST/webhooksRegister webhook endpoint
GET/webhooksList registered webhooks
DELETE/webhooks/:idRemove webhook
POST/ensureEnsure minimum resources on an address
POST/standing-ordersCreate server-side standing order
GET/standing-ordersList standing orders
POST/monitorsCreate delegation or balance monitor
GET/monitorsList monitors

x402 endpoints (zero registration)

MethodEndpointDescription
POST/x402/invoiceCreate payment invoice
POST/x402/verifyVerify invoice payment

Full API reference: merx.exchange/docs/api


MCP server

MERX provides a full MCP (Model Context Protocol) server for AI agents. 66 tools across 18 categories, 30 pre-built prompts, and 21 live data resources.

Note: the tool catalog table below was last fully audited at 52 tools. Twelve newer tools (agent payment service, swap module, advanced standing orders) are documented at merx.exchange/docs/tools/mcp-server. The canonical count is 64, served by the live MCP server.

Tool categories

CategoryCountAuthDescription
Price Intelligence5--Real-time prices from all providers, market analysis, trends, history
Resource Estimation2--Estimate energy + bandwidth for any transaction type
Resource Trading4API keyBuy energy/bandwidth at best price, ensure resources on any address
Account Management3API keyBalance, deposit info, transaction history
Agent Convenience4--Explain concepts, suggest durations, calculate savings, list providers
On-chain Queries5--Account info, TRX/TRC20 balances, transaction lookup, blocks
Token Operations4Private keySend TRX, transfer TRC20, approve tokens -- all resource-aware
Smart Contracts3MixedRead contract state, estimate call cost, execute with auto-resources
Network Utilities5--Chain parameters, address tools, TRX price, on-chain history
DEX Swaps3Private keySunSwap V2 quotes, execution with exact energy simulation
Onboarding2--Create account + login, no browser needed
Payments4MixedSelf-deposit, auto-deposit config, x402 pay-per-use
Intent Execution2MixedMulti-step plans: simulate or execute complex sequences
Standing Orders4API keyServer-side 24/7 automation: price triggers, cron, monitors
Session Management2--Set API key and private key for current session
Total52

Prompts (30)

Pre-built conversation templates available in Claude Desktop prompt picker and via prompts/get in any MCP client.

GroupPromptsExamples
Market (5)buy-energy, buy-bandwidth, ensure-resources, market-analysis, compare-providers"Buy energy at best market price"
Transactions (5)send-usdt, send-trx, send-token, multi-transfer, explain-transaction"Send USDT with auto resource optimization"
Wallet (4)check-wallet, audit-spending, monitor-delegations, optimize-wallet"Full wallet overview with balances and delegations"
DEX (3)swap-tokens, check-token, price-check"Swap tokens via SunSwap"
Planning (3)estimate-costs, budget-plan, stake-vs-rent"Plan energy budget for a period"
Developer (2)integrate-merx, setup-mcp"How to integrate MERX API"
Onboarding (2)onboard, fund-account"Create account and get started"
Payments (2)setup-auto-funding, buy-without-account"x402 zero-registration purchase"
Simulation (2)simulate-plan, execute-plan"Simulate a multi-step plan"
Monitoring (2)setup-standing-order, auto-renew-delegations"Set up auto-renewal for delegations"

Resources (21)

14 static resources + 7 URI templates. Attach to conversations as context or subscribe for real-time updates.

ResourceURIUpdates
Energy pricesmerx://prices/energyEvery 30s
Bandwidth pricesmerx://prices/bandwidthEvery 30s
Best pricemerx://prices/bestEvery 30s
Market analysismerx://market/analysisEvery 5m
Provider listmerx://market/providersEvery 30s
Provider statusmerx://market/providers/statusEvery 30s
Account balancemerx://account/balanceOn change
Recent ordersmerx://account/orders/recentOn change
Account statsmerx://account/statsEvery 5m
Auto-deposit configmerx://account/auto-depositOn change
Network parametersmerx://network/parametersEvery 1h
TRX pricemerx://network/trx-priceEvery 1m
Token referencemerx://reference/tokensStatic
Standing ordersmerx://standing-orders/activeOn change

URI Templates:

TemplateDescription
merx://address/{address}/overviewFull address state: TRX, tokens, energy, bandwidth
merx://address/{address}/resourcesEnergy + bandwidth with free BW tracking
merx://address/{address}/transactionsRecent transactions with type and amounts
merx://address/{address}/delegationsActive delegations with expiry times
merx://token/{token}/infoToken metadata + price + transfer energy cost
merx://order/{order_id}/statusOrder details with fills and cost breakdown
merx://standing-order/{id}/statusStanding order trigger state and executions

Example conversations

Check prices and buy energy:

User: What is the cheapest energy right now?
Agent: [calls get_prices] Cheapest energy is 22 SUN from Netts (5-minute
       delegation). For 65,000 energy, that is 1.43 TRX.
User: Buy it for TLyqz...
Agent: [calls create_order] Done. 65,050 energy delegated via Netts.
       Cost: 1.43 TRX. TX: 27ab0019... (verified on-chain).

Resource-aware USDT transfer:

User: Send 100 USDT to TAddr.
Agent: [calls transfer_trc20] MERX estimated 7,896 energy needed,
       bought 65,000 at 22 SUN, waited for delegation, signed and
       broadcast. USDT sent. Cost: 1.43 TRX instead of 3.66 TRX.
       Savings: 87.6%.

Market analysis:

User: Is now a good time to buy energy?
Agent: [calls analyze_prices] Energy is at 22 SUN -- the 1st percentile
       of the last 7 days. 64% below the weekly average of 62 SUN.
       Trend: falling. Recommendation: good time to buy.

Full tool reference

All 66 tools with auth requirements. For input schemas and output examples, see docs/TOOLS.md.

Price Intelligence

#ToolDescriptionAuth
1get_pricesCurrent energy and bandwidth prices from all providers--
2get_best_priceCheapest provider for given resource and amount--
3analyze_pricesMarket analysis with trends, percentile, and recommendation--
4get_price_historyHistorical price snapshots by provider, resource, and period--
5compare_providersSide-by-side provider comparison with all duration tiers--

Resource Estimation

#ToolDescriptionAuth
6estimate_transaction_costEstimate energy + bandwidth for TRX/TRC20/custom operations--
7check_address_resourcesEnergy, bandwidth, free BW, and TRX balance for any address--

Resource Trading

#ToolDescriptionAuth
8create_orderBuy energy or bandwidth, routed to cheapest providerAPI key
9get_orderOrder details with fills, TX hashes, and verification statusAPI key
10list_ordersList orders with optional status filterAPI key
11ensure_resourcesDeclarative: ensure minimum energy/bandwidth on an addressAPI key

Account Management

#ToolDescriptionAuth
12get_balanceMERX account balance (TRX, USDT, locked)API key
13get_deposit_infoMERX deposit address and memoAPI key
14get_transaction_historyMERX account order history (7D/30D/90D)API key

Agent Convenience

#ToolDescriptionAuth
15explain_conceptExplain TRON concepts: energy, bandwidth, staking, delegation, sun_units--
16suggest_durationRecommend rental duration based on use case and TX count--
17calculate_savingsCalculate savings from renting vs burning for N transactions--
18list_providersAll providers with types, durations, and availability--

On-chain Queries

#ToolDescriptionAuth
19get_account_infoFull on-chain account: TRX, energy, bandwidth, limits--
20get_trx_balanceQuick TRX balance for any address--
21get_trc20_balanceTRC-20 token balance (supports symbol or contract address)--
22get_transactionLook up transaction by ID with status, energy, bandwidth used--
23get_blockBlock info by number (or latest)--

Token Operations

#ToolDescriptionAuth
24transfer_trxSend TRX with auto bandwidth optimizationPrivate key
25transfer_trc20Transfer TRC-20 tokens with auto energy + bandwidthPrivate key
26approve_trc20Approve TRC-20 spending allowance with auto energyPrivate key
27get_token_infoToken metadata: name, symbol, decimals, total supply--

Smart Contracts

#ToolDescriptionAuth
28read_contractCall view/pure contract functions (no gas, no signing)--
29estimate_contract_callEstimate energy + bandwidth for a contract call--
30call_contractExecute state-changing contract function with auto resourcesPrivate key

Network Utilities

#ToolDescriptionAuth
31get_chain_parametersTRON network parameters with MERX price comparison--
32convert_addressConvert between base58 (T...) and hex (41...) formats--
33get_trx_priceCurrent TRX price from CoinGecko--
34validate_addressValidate TRON address format and check on-chain status--
35search_transaction_historyOn-chain transaction history for any address--

DEX Swaps

#ToolDescriptionAuth
36get_swap_quoteReal SunSwap V2 quote with expected output and slippage--
37execute_swapExecute SunSwap swap with exact energy simulationPrivate key
38get_token_priceToken price via SunSwap pools + CoinGecko USD rate--

Onboarding

#ToolDescriptionAuth
39create_accountCreate MERX account and get API key--
40loginLog in to existing MERX account--

Payments

#ToolDescriptionAuth
41deposit_trxDeposit TRX to MERX from wallet (signs TX with memo)API key + Private key
42enable_auto_depositConfigure auto-deposit when balance drops below thresholdAPI key
43pay_invoicePay an existing x402 invoicePrivate key
44create_paid_orderx402 zero-registration order: invoice, pay, verify, orderPrivate key

Intent Execution

#ToolDescriptionAuth
45execute_intentExecute multi-step plan with resource optimizationAPI key
46simulateSimulate multi-step plan without executing--

Standing Orders and Monitors

#ToolDescriptionAuth
47create_standing_orderCreate server-side standing order with trigger + actionAPI key
48list_standing_ordersList standing orders with status filterAPI key
49create_monitorCreate persistent monitor (delegation, balance, price)API key
50list_monitorsList monitors with status filterAPI key

Session Management

#ToolDescriptionAuth
51set_api_keySet MERX API key for this session--
55set_private_keySet TRON private key for this session (address auto-derived)--

SDKs

JavaScript / TypeScript

npm install merx-sdk
import { MerxClient } from 'merx-sdk'

const merx = new MerxClient({ apiKey: 'merx_sk_your_key' })

// 4 modules: prices, orders, balance, webhooks
const prices   = await merx.prices.list()
const best     = await merx.prices.best({ resource: 'ENERGY' })
const order    = await merx.orders.create({ ... })
const status   = await merx.orders.get(order.id)
const balance  = await merx.balance.get()
const webhooks = await merx.webhooks.list()
PropertyValue
Packagemerx-sdk
Modulesprices, orders, balance, webhooks
Methods16
TypeScriptFull type definitions included
DependenciesZero
Node.js18+

Python

pip install merx-sdk
from merx import MerxClient

merx = MerxClient(api_key="merx_sk_your_key")

# Same 4 modules, snake_case
prices  = merx.prices.list()
best    = merx.prices.best(resource="ENERGY")
order   = merx.orders.create(resource_type="ENERGY", amount=65000, ...)
status  = merx.orders.get(order.id)
balance = merx.balance.get()
PropertyValue
Packagemerx-sdk
Modulesprices, orders, balance, webhooks
Methods16
Type hintsFull type annotations
DependenciesZero
Python3.11+

REST API

No SDK required. All endpoints accept JSON and return JSON.

# Get prices (public, no auth)
curl https://merx.exchange/api/v1/prices

# Get best price for energy
curl https://merx.exchange/api/v1/prices/best?resource=ENERGY

# Create order (authenticated)
curl -X POST https://merx.exchange/api/v1/orders \
  -H "Authorization: Bearer merx_sk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"resource_type":"ENERGY","amount":65000,"duration_sec":300,"target_address":"TAddr..."}'

# Check balance
curl https://merx.exchange/api/v1/balance \
  -H "Authorization: Bearer merx_sk_your_key"

Real-time data

WebSocket

Connect to wss://merx.exchange/ws for real-time price updates.

const ws = new WebSocket('wss://merx.exchange/ws')

ws.onopen = () => {
  // Subscribe to all energy price updates
  ws.send(JSON.stringify({ type: 'subscribe', channel: 'prices', resource: 'ENERGY' }))
}

ws.onmessage = (event) => {
  const data = JSON.parse(event.data)
  // { provider: "netts", resource: "ENERGY", price_sun: 22, available: 100000000, ... }
}
PropertyValue
Endpointwss://merx.exchange/ws
Channelsprices, orders, balance
Update frequencyEvery 30 seconds for prices
HeartbeatEvery 30 seconds
ReconnectClient-side with exponential backoff recommended

Webhooks

Register webhook endpoints to receive HTTP POST notifications for account events.

curl -X POST https://merx.exchange/api/v1/webhooks \
  -H "Authorization: Bearer merx_sk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://your-app.com/webhook","events":["order.filled","deposit.received"]}'
EventFired when
order.filledEnergy or bandwidth order has been filled by a provider
order.failedOrder failed after all provider attempts exhausted
deposit.receivedTRX deposit confirmed and credited to balance
withdrawal.completedTRX withdrawal broadcast and confirmed on-chain

Security: Every webhook request includes an X-Merx-Signature header containing an HMAC-SHA256 signature computed with your webhook secret. Verify this signature before processing. Failed deliveries are retried with exponential backoff.


Payment methods

MERX supports three ways to pay for energy and bandwidth.

1. Pre-funded MERX balance

Deposit TRX to your MERX account via the dashboard at merx.exchange or via the API. Trade directly from your balance. Best for high-volume users and teams.

# Check balance
curl https://merx.exchange/api/v1/balance \
  -H "Authorization: Bearer merx_sk_your_key"

# Response
# { "available_trx": 45.20, "locked_trx": 1.43, "total_trx": 46.63 }

2. Self-deposit from agent wallet

The agent deposits TRX to MERX from its own wallet using the deposit_trx tool or API. The tool builds a TRX transfer with the correct memo, signs it locally, and broadcasts. Balance is credited in 1-2 minutes.

deposit_trx(amount: 10)
-> TX: 4bc60854f828...8ddcd509
-> 10 TRX deposited. Will be credited to your MERX balance shortly.

3. x402 pay-per-use

No account needed. No pre-deposit. Create an invoice, pay with TRX from any wallet, and receive energy delegation directly. Complete flow in one API call or one tool call via create_paid_order.

create_paid_order(amount: 65000, duration_sec: 300,
  resource_type: "ENERGY", target_address: "THT49...")
-> Invoice: inv_f41ffc2f...
-> Payment TX: 53236a5a...
-> Cost: 1.43 TRX
-> Status: PENDING -> FILLED
-> 65,050 energy delegated to THT49...
MethodSetup requiredBest forMin deposit
Pre-funded balanceAccount + dashboard depositHigh-volume users, teamsAny amount
Self-deposit (deposit_trx)API key + private keyAutonomous agentsAny amount
x402 (create_paid_order)Private key onlyOne-off purchases, no-account agentsPer-order

See docs/PAYMENT-METHODS.md for detailed flow diagrams.


Standing orders and monitors

Standing orders

Server-side 24/7 automation stored in PostgreSQL. Persists across restarts. Works when the client is offline.

Trigger types:

TriggerDescriptionExample
price_belowFire when best price drops below thresholdBuy 65,000 energy when price < 20 SUN
price_aboveFire when best price exceeds thresholdAlert when energy exceeds 50 SUN
scheduleCron-based scheduleBuy energy every day at 03:00 UTC
balance_belowFire when MERX balance drops below thresholdAuto-deposit 50 TRX when balance < 10 TRX

Action types:

ActionDescription
buy_resourceBuy specified amount of energy or bandwidth
ensure_resourcesEnsure minimum resources on target address
notify_onlySend notification via webhook

Example:

create_standing_order(
  trigger: { type: "price_below", resource: "ENERGY", threshold_sun: 20 },
  action: { type: "buy_resource", amount: 65000, duration_sec: 300 },
  target_address: "TLyqz...",
  max_executions: 10,
  budget_trx: 15
)

-> Standing Order: so_a1b2c3d4
-> Status: ACTIVE
-> Trigger: ENERGY price < 20 SUN
-> Action: Buy 65,000 energy (5m)
-> Budget: 15 TRX (10 executions max)

Delegation monitors

Watch delegations and resources on any address. Alert before expiry. Auto-renew with configurable max price.

Monitor typeDescriptionExample
delegation_expiryAlert before energy/bandwidth delegation expiresAlert 5 minutes before expiry, auto-renew at max 30 SUN
balance_thresholdAlert when TRX balance drops below thresholdAlert when balance < 5 TRX
price_alertAlert on price movementsAlert when energy price drops below 20 SUN

Example:

create_monitor(
  type: "delegation_expiry",
  address: "TLyqz...",
  resource: "ENERGY",
  alert_before_sec: 300,
  auto_renew: true,
  max_price_sun: 30
)

-> Monitor: mon_e5f6g7h8
-> Status: ACTIVE
-> Type: delegation_expiry
-> Alert: 5 minutes before expiry
-> Auto-renew: Yes (max 30 SUN)

Savings calculator

Energy is the expensive resource on TRON. These numbers show the cost difference between burning TRX (no energy) and renting energy through MERX.

ResourcePurposeFree dailyWithout it
EnergySmart contract execution (USDT transfers, swaps, approvals)0 (must stake or rent)TRX burned at network rate
BandwidthTransaction serialization (every TX needs some)600 bytes/dayTRX burned at network rate

Cost comparison

ScenarioBurn cost (no energy)Rental cost (MERX)Savings
1 USDT transfer3-13 TRX1.43 TRX56-89%
10 USDT transfers30-130 TRX14.30 TRX52-89%
100 USDT transfers/day300-1,300 TRX143 TRX52-89%
SunSwap swap (small)~50 TRX~4.91 TRX~90%
Contract call (simple)~1 TRX~0.09 TRX~91%

Numbers assume the cheapest available provider at time of order. Actual burn cost varies by recipient address state (whether it has held the token before).

How it works

1 TRX = 1,000,000 SUN. Energy is priced in SUN per unit. A USDT transfer needs approximately 65,000 energy units. At 22 SUN per unit, that is 65,000 x 22 = 1,430,000 SUN = 1.43 TRX. Without energy, the network burns 3-13 TRX from the sender depending on the recipient's account state.


Error handling

All errors follow a standard format across API, SDKs, and MCP:

{
  "error": {
    "code": "INSUFFICIENT_BALANCE",
    "message": "MERX balance too low. Need 1.43 TRX, have 0.50 TRX.",
    "details": {
      "required_trx": 1.43,
      "available_trx": 0.50
    }
  }
}

Common error codes

CodeDescriptionResolution
INSUFFICIENT_BALANCEMERX account balance too lowDeposit TRX via dashboard or deposit_trx
PROVIDER_UNAVAILABLEAll providers failed for this orderTry again later or increase max price
INVALID_ADDRESSTRON address format invalidCheck address starts with T and is 34 characters
DELEGATION_TIMEOUTEnergy delegation did not arrive within timeoutCheck order status with get_order
SIMULATION_FAILEDContract call simulation failedCheck contract address and function parameters
PRIVATE_KEY_REQUIREDOperation requires TRON private keySet TRON_PRIVATE_KEY env var or call set_private_key
API_KEY_REQUIREDOperation requires MERX API keySet MERX_API_KEY env var or call set_api_key
ORDER_MIN_AMOUNTAmount below minimum order sizeEnergy minimum: 65,000. Bandwidth minimum: 1,500

Security

Private key handling

  • Private keys are set via environment variable (TRON_PRIVATE_KEY) or the set_private_key tool in-session.
  • Keys never leave the client process. All transaction signing happens locally.
  • The MERX API never receives private keys.
  • The set_private_key tool derives the TRON address automatically -- the user only provides the 64-character hex key.

API key handling

  • API keys authenticate with the MERX API for trading operations.
  • Keys can be set via environment variable (MERX_API_KEY) or the set_api_key tool in-session.
  • Create an account and get an API key without leaving the conversation using the create_account tool.

What MERX can and cannot do

With private keyWithout private key
Sign and broadcast transactionsRead-only operations only
Send TRX and TRC-20 tokensCheck prices and balances
Execute swapsGet swap quotes
Approve contractsEstimate costs
Deposit TRX to MERXView market data

Tested on mainnet

Every capability was tested in production on TRON mainnet. These are not simulations -- every TX hash is verifiable on TronScan.

Verified transactions

CategoryOperationTX HashStatusDetails
Token Operationstransfer_trxb22813a813c3...990e7955SUCCESS0.1 TRX sent, 267 bandwidth consumed
Paymentsdeposit_trx4bc60854f828...8ddcd509SUCCESS10 TRX deposited to MERX with memo, credited to balance
Token Operationsapprove_trc2056fc87f319b9...0bf5ffbbSUCCESSUSDT approval, 99,764 energy consumed
Smart Contractscall_contractfc55aee3dc50...4bb5c1bfSUCCESSname() call on contract, 4,098 energy consumed
DEX Swapsexecute_swap61424b1e89a0...d066d21577SUCCESS0.1 TRX -> 0.032 USDT via SunSwap V2, 223,354 energy (exactly as simulated)
Resource Tradingcreate_order8adac3b8a859...4e69e4caFILLED65,050 energy via Netts at 22 SUN, 1.43 TRX
Paymentscreate_paid_order53236a5aeba0...984dec7bSUCCESSx402 flow: 1.43 TRX invoice paid, 65,050 energy delegated

Key findings from mainnet testing

MetricValue
USDT transfer energy (typical)65,000 units
USDT transfer cost (rented energy)1.43 TRX
USDT transfer cost (burned)3-13 TRX
Maximum savings observed94%
SunSwap swap energy (0.1 TRX -> USDT)223,354 units (exact simulation match)
SunSwap swap output0.032094 USDT for 0.1 TRX
x402 payment flowInvoice -> pay -> verify -> order -> fill -> delegate (one call)
Energy delegation confirmation2-6 seconds after order fill

Comparison with alternatives

Factual comparison based on publicly available information.

FeatureMERXSun ProtocolNetts MCPTronLink MCPPowerSun MCP
MCP Tools55~20~102727
MCP Prompts300000
MCP Resources210000
REST API70+ endpointsNoNoNoNo
JavaScript SDKYesNoNoNoNo
Python SDKYesNoNoNoNo
WebSocketYesNoNoNoNo
Web exchangeYesNoNoNoNo
Transportstdio + SSEstdiostdiostdioSSE
Energy providersAll connected0101
Bandwidth supportYesNoNoNoNo
Auto resource purchaseEnergy + BWNoNoNoEnergy only
Exact energy simulationYesNoNoNoNo
Intent executionYesNoNoNoNo
Standing orders (24/7)YesNoNoNoNo
Delegation monitorsYesNoNoNoNo
x402 pay-per-useYesNoNoNoNo
DEX swapsYesNoNoNoYes
Zero install optionYes (SSE)NoNoNoYes (SSE)
Private key requiredOptionalYesYesYesNo
WebhooksYesNoNoNoNo
Tested on mainnet7 TX verifiedUnknownUnknownUnknownUnknown

MERX covers resource economics, transaction optimization, and general blockchain operations. Other servers focus on one area.


Documentation


License

MIT. See LICENSE.