TronSave

io.github.tronsavePublished by GitHub account tronsavev1.5.1Updated Nov 4, 2026

Buy, sell and extend TRON Energy/Bandwidth on the TronSave market. Quotes need no login.

VerifiedStreamable HTTPWeb executableCloud & InfrastructureFinance

Overview

AI-generated overview

TronSave MCP lets an assistant quote, buy, sell and extend TRON ENERGY and BANDWIDTH on the TronSave market and manage TronSave accounts.

What you can do
  • Read market data: overview, price grid, minimum price, order books, system parameters and an address's staked resources
  • Quote and place buy orders for ENERGY or BANDWIDTH, including fill suggestions and order listing
  • Manage orders: read, update, cancel and manually fulfil with a wallet-signed transaction
  • Extend existing delegations and find extendable receivers or delegates
  • Handle account and seller data: profile, auto-sell and auto-buy rules, seller stats, delegations, API keys
  • Operate an internal balance: deposit address, order book, estimates, order creation and history via API key
When to use it
Useful when an assistant needs to work with TRON resource costs: checking rental prices, sizing a purchase, placing or managing ENERGY/BANDWIDTH orders, or reviewing a seller's delegations and earnings. Public quotes and market data work without any login.
Requirements
Remote Streamable HTTP endpoint, mainnet or Nile testnet by URL; no install needed. Optional Authorization header with an ApiKey for internal-balance tools, or wallet-signature login through the login tool. Self-hosting needs Node.js 22 or later and Redis 6.2 or later.
Before you install
Order creation, manual selling, cancellation, updates and auto-sell/auto-buy settings spend funds or change live state; confirm before calling. API key generation and revocation issue or invalidate secrets. Never share private keys or seed phrases; signing happens in the user's wallet. Logged-in session identifiers act as bearer credentials until logout or expiry.

Installation

In SourceWeft

  1. Open TronSave in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.tronsave%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "tronsave": {
      "type": "http",
      "url": "https://mcp.tronsave.io/mcp"
    }
  }
}

README

TronSave MCP Server

[MCP] [Transport] [Node] [License: MIT]

An agent-native Model Context Protocol server for TronSave: AI agents can quote, buy and manage TRON ENERGY / BANDWIDTH and TronSave accounts through 53 typed tools.

Mainnet endpointhttps://mcp.tronsave.io/mcp
Testnet (Nile) endpointhttps://mcp.tronsave.io/testnet/mcp
TransportStreamable HTTP (POST, JSON responses); legacy SSE at /sse
Authnone · OAuth 2.1 sign-in at /oauth/mcp (API key or TronLink) · Authorization: ApiKey <key> header · tronsave_login tool

Documentation

What makes it agent-native

  • Self-describing. initialize returns instructions (auth model, units, buy workflow, safety rules); every tool has an action-oriented description, strict inputSchema, an outputSchema and MCP annotations (readOnlyHint, destructiveHint, idempotentHint).
  • No out-of-band setup. Agents log in with a tool call; the login binds to the MCP connection automatically. Static clients can use an Authorization: ApiKey header instead. tronsave_get_session_status tells the agent what it can do right now.
  • Actionable errors. Failures are isError results with {"error":{"code","message","retryable","hint"}}; the hint names the next tool to call.
  • Safe writes. Writes are never retried automatically (no duplicate orders); a timeout on a write is reported as "outcome unknown — verify first". Successful writes are never turned into errors by response-schema drift.
  • Secrets stay out of the model. API keys are masked in tool output and never logged; signing always happens in the user's wallet.
  • Resources & prompts. tronsave://guide/agent resource and buy_resource / account_overview prompts.

Tools at a glance

53 tools in two payment paths. Market path: public quotes, plus orders paid on-chain or managed with a wallet signature. Internal-balance path (tronsave_internal_*): orders paid from a pre-funded TronSave balance with an API key, for bots and backends. Each tool description says when to use its counterpart on the other path.

GroupToolsAuth
Sessionget_session_status, get_sign_message, login, logoutpublic
Market dataget_market_overview, get_price_table, get_system_info, get_min_price, list_order_books, get_account_resourcespublic
Quote and buyestimate_buy_resource, suggest_create_order, create_order, list_orderspublic (on-chain payment)
Extendlist_extendable_receivers, list_extendable_delegatespublic
Flash unstakelist_flash_unstake_orders, estimate_flash_unstake, get_flash_unstake_requestpublic / wallet
Ordersget_order, update_order, cancel_order, sell_order_manualwallet signature
Accountget_user_info, get_user_permissions, get_referral, generate_api_key, revoke_api_keywallet signature
Auto-sellget_user_auto_setting, register_auto_sell, update_auto_sell_setting, get_seller_stats, list_delegationswallet signature
Auto-buy and bulklist_auto_buy_settings, create_auto_buy_setting, update_auto_buy_setting, delete_auto_buy_setting, bulk_create_internal_orderswallet signature
Alertslist_notifications, mark_notifications_read, get_telegram_notify_setting, update_telegram_notify_setting, get_agency_botwallet signature
Internal balanceget_internal_account, get_deposit_address, list_internal_transactions, internal_order_book, internal_order_estimate, internal_order_create, internal_order_history, internal_order_details, internal_extend_delegates, internal_create_extend_requestAPI key (list_internal_transactions: wallet)

All names carry the tronsave_ prefix. Full details: docs/TOOLS.md.

Connect in 30 seconds

Claude Code:

bash
claude mcp add --transport http tronsave https://mcp.tronsave.io/mcp \  --header "Authorization: ApiKey YOUR_TRONSAVE_API_KEY"   # header optional

Any client that accepts a remote MCP URL:

json
{  "mcpServers": {    "tronsave": {      "url": "https://mcp.tronsave.io/mcp",      "headers": { "Authorization": "ApiKey YOUR_TRONSAVE_API_KEY" }    }  }}

Apps that support OAuth (Claude, ChatGPT, Cursor, VS Code) can use https://mcp.tronsave.io/oauth/mcp instead: the user signs in on a TronSave page with an API key or TronLink. Without a header the agent can still use all public tools and log in with tronsave_login. More clients: quickstart.

Run it yourself

Requirements: Node.js ≥ 22, Redis ≥ 6.2.

bash
npm cicp .env.example .envnpm run dev                          # or: npm run build && npm start# or with Docker (point REDIS_URL in .env at your Redis)docker compose up --build
VariableDefaultPurpose
MCP_PORT3000HTTP port
REDIS_URLredis://localhost:6379Session store. memory keeps sessions in the process (single instance, lost on restart; for trials only)
SESSION_TTL_SECONDS86400Login / MCP session lifetime (sliding for the transport)
SIGNATURE_MAX_AGE_SECONDS86400Oldest signed timestamp accepted for wallet login / Signature header
SIGN_MESSAGE_TTL_SECONDS300TTL of nonces issued by tronsave_get_sign_message
AUTH_VERIFY_CACHE_TTL_SECONDS60Cache for verified ApiKey / Signature headers
GRAPHQL_TIMEOUT_MS / REST_TIMEOUT_MS10000Per-attempt upstream timeout
REST_RETRIES2Retries for idempotent reads only
READINESS_UPSTREAM_TIMEOUT_MS2000Upstream probe in /readyz
LOG_LEVELinfodebug adds redacted tool input/output bodies
MCP_SERVER_NAME / MCP_SERVER_VERSIONTronSave MCP Server / 1.5.1Reported in initialize
PUBLIC_BASE_URLunsetPublic origin, e.g. https://mcp.tronsave.io. Enables the OAuth authorization server and /oauth/mcp
OAUTH_ACCESS_TOKEN_TTL_SECONDS / OAUTH_REFRESH_TOKEN_TTL_SECONDS3600 / 2592000OAuth token lifetimes (wallet sign-ins are capped at SIGNATURE_MAX_AGE_SECONDS)
TRUST_PROXY1Reverse-proxy hops in front of the server (client IP for OAuth rate limits)
METRICS_TOKEN—When set, /metrics requires Authorization: Bearer <token> (set it whenever /metrics is public)
TRONSAVE_NETWORKmainnetstdio only: mainnet or testnet (HTTP takes the network from the URL)
TRONSAVE_API_KEY—stdio only: sent as Authorization: ApiKey <key>; unset = public tools until tronsave_login

HTTP endpoints: POST|DELETE /mcp, POST|DELETE /testnet/mcp, with PUBLIC_BASE_URL also POST|DELETE /oauth/mcp, /oauth/testnet/mcp and the OAuth endpoints (/.well-known/oauth-authorization-server, /.well-known/oauth-protected-resource/*, /authorize, /token, /register, /revoke, /oauth/signin), GET / (server info), GET /healthz, GET /readyz, GET /metrics (Prometheus), GET /quickstart, legacy GET /sse + POST /messages.

Local stdio server

npm ci && npm run start:stdio (or node dist/stdio.js; npm ci builds dist/ through prepare) serves the same 53 tools over stdio for one local client, without Redis (REDIS_URL defaults to memory; logs go to stderr). For example in a client config:

json
{ "mcpServers": { "tronsave": { "command": "node", "args": ["/path/to/tronsave-mcp/dist/stdio.js"],  "env": { "TRONSAVE_NETWORK": "mainnet", "TRONSAVE_API_KEY": "<optional>" } } } }

The hosted endpoint needs no install and is the recommended way to connect; stdio is for self-hosting and testing.

Scaling

The Streamable HTTP endpoint is stateless per request: session continuity (transport marker + login) lives in Redis, so any number of replicas can serve the same client without sticky sessions, and restarts are transparent. Only the legacy SSE endpoint needs sticky routing.

Development

bash
npm run typechecknpm test              # unit + HTTP session-flow tests (in-memory Redis stub)npm run test:cov      # with coverage gatenpm run docs:tools    # regenerate docs/TOOLS.md and docs/AGENT_GUIDE.md after changing toolsBASE=http://127.0.0.1:3000/mcp npm run smoke   # end-to-end check against a running server (throwaway wallet)

Project layout:

txt
src/├── app/                 composition root + shutdown registry├── clients/ infra/http  GraphQL/REST clients on a shared retry + circuit-breaker HttpClient├── config/              env + constants (network endpoints)├── handlers/            Express app, Streamable HTTP + legacy SSE, request auth context├── mcp/agentGuide.ts    server instructions, guide resource, prompts├── services/            auth (headers/sessions), sessions, signature verification, Redis├── tools/               definitions (schemas + descriptions), handlers, adapters, docs renderer├── tools.ts             registration: auth gate, error envelope, metrics, logging└── utils/               errors, responses, logging, redaction, metrics

Adding a tool: add the name in src/tools/toolNames.ts, the schemas in definitions/*/schema.ts, the definition (description, auth.mode, annotations) and a handler, update tests/tools/toolsCount.test.ts, then run npm run docs:tools.

Releasing: bump package.json, server.json and the CHANGELOG, merge, then run npm run publish:public from a clean checkout. It appends the release as one snapshot commit (no private history) to https://github.com/tronsave/tronsave-mcp, tags vX.Y.Z and creates the GitHub release; then mcp-publisher publish updates the MCP Registry.

Security

  • Never send private keys or seed phrases to the server or the agent; all signing is client-side.
  • mcp-session-id values of logged-in sessions are bearer credentials until they expire or DELETE /mcp / tronsave_logout is called.
  • Run Redis on a private network with auth/TLS; it holds session credentials.
  • Logs redact keys, signatures and session ids; tool bodies are only logged at debug and never for tronsave_generate_api_key.

License

MIT — see LICENSE.

Source: README.md at commit 7bdedee

Tools

53

tronsave_get_internal_account

Internal Account Information

Retrieve the Tronsave internal account profile for the current logged-in session (wallet/represent address, balances, deposit address). Requires an internal API key: `tronsave_login` (api-key mode, or signature mode for a wallet with an internal account) or an `Authorization: ApiKey <key>` client header. Never pass API keys as tool arguments; the server forwards the key from the session/header to TronSave. Use when the user needs their linked address or balance; for the full wallet profile use `tronsave_get_user_info`, for the ledger of deposits and payments `tronsave_list_internal_transactions`. Returns `{ id, balance (SUN string), representAddress, depositAddress }`; any API key in the payload is masked. Read-only.

Takes no parameters.

tronsave_get_deposit_address

Get Deposit Address

Fetches the specific deposit address for the TronSave internal account. Requires an internal API key: `tronsave_login` (api-key mode, or signature mode for a wallet with an internal account) or an `Authorization: ApiKey <key>` client header. Never pass API keys as tool arguments; the server forwards the key from the session/header to TronSave. Trigger this tool if the user asks for a deposit address or needs to top up their TronSave TRX balance. Constraints: 1) TRX only; 2) Minimum deposit amount is 10 TRX; 3) Read-only operation.

ParametersamountTrxrequired

tronsave_internal_order_history

Internal Account Order History

List paginated order history for the internal account linked to the API key, newest first. Requires an internal API key: `tronsave_login` (api-key mode, or signature mode for a wallet with an internal account) or an `Authorization: ApiKey <key>` client header. Never pass API keys as tool arguments; the server forwards the key from the session/header to TronSave. Use when the user asks about past purchases, fulfillment, payouts, or delegates on their internal account. This is the API-key path; wallet-signature sessions can also use `tronsave_list_orders` with `isOnlyMyOrder`. Read-only. Pair with `tronsave_internal_order_details` for a single order's full snapshot.

ParameterspagepageSize

tronsave_internal_order_details

Internal Order Details

Fetch full details for one internal-account order by order ID. Requires an internal API key: `tronsave_login` (api-key mode, or signature mode for a wallet with an internal account) or an `Authorization: ApiKey <key>` client header. Never pass API keys as tool arguments; the server forwards the key from the session/header to TronSave. Use when monitoring fulfillment after `tronsave_internal_order_create`, or when the user asks for status on a specific order id. API-key path; with a wallet signature `tronsave_get_order` returns the same order. Read-only. FRESHNESS: order state changes within seconds as the market matches — re-read immediately before acting.

ParametersorderIdrequired

tronsave_internal_order_book

Internal Market Order Book

Return the current TronSave market depth/price tiers for ENERGY or BANDWIDTH via the api-key REST endpoint. Requires an internal API key: `tronsave_login` (api-key mode, or signature mode for a wallet with an internal account) or an `Authorization: ApiKey <key>` client header. Never pass API keys as tool arguments; the server forwards the key from the session/header to TronSave. Use before `tronsave_internal_order_create` or `tronsave_internal_order_estimate` when the user needs live prices or liquidity. Same depth as the public `tronsave_list_order_books`, plus SLOW/MEDIUM/FAST price tiers; use the public tool when there is no API key. Read-only. FRESHNESS: live market depth can change roughly every 3 seconds (one TRON block) — re-read immediately before placing an order.

ParametersaddressdurationSecresourceTypeminDelegateAmount

tronsave_internal_order_estimate

Estimate TRX Cost Before Order

Estimate the TRX cost and availability for a buy order before submitting it (api-key internal account). Requires an internal API key: `tronsave_login` (api-key mode, or signature mode for a wallet with an internal account) or an `Authorization: ApiKey <key>` client header. Never pass API keys as tool arguments; the server forwards the key from the session/header to TronSave. Use when the user wants a quote or price check; feed the result into `tronsave_internal_order_create`. Quotes for `tronsave_create_order` come from `tronsave_estimate_buy_resource` instead. Read-only. FRESHNESS: `unitPrice`/`estimateTrx` are live and can change roughly every 3 seconds — re-estimate immediately before creating the order.

ParametersoptionsreceiverrequesterunitPricedurationSecresourceTyperesourceAmountrequired

tronsave_internal_order_create

Create Energy or Bandwidth Order (Internal)

Place a new buy order for ENERGY or BANDWIDTH on TronSave, paid from the internal account balance. Requires an internal API key: `tronsave_login` (api-key mode, or signature mode for a wallet with an internal account) or an `Authorization: ApiKey <key>` client header. Never pass API keys as tool arguments; the server forwards the key from the session/header to TronSave. Side effect: SPENDS internal TRX balance and creates a live order; not idempotent — each call places a new order. This is the api-key/internal path; for the signature-session market path use `tronsave_create_order`. Always derive `unitPrice` from the latest `tronsave_internal_order_estimate` (re-estimate immediately before submitting — quotes older than a few seconds may be stale and revert). Returns `{ orderId }`.

ParametersoptionssponsorreceiverrequiredunitPricedurationSecresourceTyperesourceAmountrequired

tronsave_internal_extend_delegates

List Extendable Delegations

Return extendable delegations for a receiver plus an `extendData` payload for the extension flow. Requires an internal API key: `tronsave_login` (api-key mode, or signature mode for a wallet with an internal account) or an `Authorization: ApiKey <key>` client header. Never pass API keys as tool arguments; the server forwards the key from the session/header to TronSave. Use as STEP 1 before `tronsave_internal_create_extend_request` when the user wants to extend existing delegation time. This is the only source of submittable `extendData`; `tronsave_list_extendable_delegates` is a public market view, and `tronsave_list_extendable_receivers` finds which receiver to extend. Read-only; does not submit anything. FRESHNESS: pricing/availability change within seconds — run immediately before extending and pass the returned `extendData` unchanged.

ParametersextendTorequiredreceiverrequiredrequesterresourceTypemaxPriceAccepted

tronsave_internal_create_extend_request

Submit Delegation Extension

Submit an extension request for existing delegated resources on TronSave via authenticated REST `POST /v2/extend-request`. Requires an internal API key: `tronsave_login` (api-key mode, or signature mode for a wallet with an internal account) or an `Authorization: ApiKey <key>` client header. Never pass API keys as tool arguments; the server forwards the key from the session/header to TronSave. Side effect: creates an extension order and may commit TRX from the internal account. `extendData` must follow the REST contract (see schema on each row). Get `extendData` from `tronsave_internal_extend_delegates` (STEP 1) and pass the rows unchanged. Do not copy rows from `tronsave_list_extendable_delegates` (GraphQL); that payload shape differs and is for market discovery only.

ParametersreceiverrequiredextendDatarequiredresourceType

tronsave_get_sign_message

Get Signature Message

Step 1 of wallet login. Returns `{ message, timestamp }`: ask the user to sign `message` with their TRON wallet (TronWeb `signMessageV2`, TronLink, etc.), then call `tronsave_login` with `signature: "<signature>_<timestamp>"`. Signing the plain decimal `timestamp` text is also accepted. No auth needed; no side effects on the account.

Takes no parameters.

tronsave_login

Login Session

Log in to TronSave for the rest of this MCP connection. Provide EXACTLY ONE of: `signature` = `<signature>_<timestamp>` produced by the user's wallet over the `message` from `tronsave_get_sign_message` (unlocks wallet tools; also loads the wallet's internal API key if it has one), or `apiKey` = raw TronSave internal API key (unlocks internal-account tools and `paymentMethod=internal`). The login is bound to the current `mcp-session-id` automatically — do not pass session ids in later tool arguments. Returns `{ sessionId, authMode, walletAddress?, hasInternalApiKey, expiresAt, unlocked }`. Signed timestamps older than the server limit (default 24h) are rejected with `SIGNATURE_EXPIRED`. Never ask the user for private keys or seed phrases.

ParametersapiKeysignature

tronsave_logout

Logout

Remove the TronSave login bound to this MCP connection (api-key or signature). Returns `{ loggedOut: true }`; idempotent. Header credentials configured on the client are not affected.

Takes no parameters.

tronsave_get_session_status

Session Status

Report the current authentication state without calling TronSave: `authMode` (none | api-key | signature), `source` (login | header), `walletAddress`, `hasInternalApiKey`, `expiresAt`, network, and which tool groups are available now. Call this first when unsure whether to log in, and after `SESSION_REQUIRED` / `INVALID_SESSION_TYPE` errors.

Takes no parameters.

tronsave_get_user_info

User Information

Read the current authenticated user's profile and linked TronSave internal account. For the internal balance alone use `tronsave_get_internal_account`; for referral data `tronsave_get_referral`. Returns `{ caller, address, balance (SUN string), info, internalAccount }` — `info` carries referral/contact metadata and may be null; `internalAccount` is null when the wallet has not provisioned a TronSave internal balance yet. `internalAccount.apiKey` is masked. Requires a wallet signature identity. Read-only and idempotent. Use `tronsave_get_user_auto_setting` for the auto-sell config or `tronsave_get_user_permissions` for permission flags when the full profile is unnecessary.

Takes no parameters.

tronsave_get_user_auto_setting

User Auto Setting

Read the current user's auto-sell configuration (`autoSettings`). Returns the full `autoSettings` object — call this before `tronsave_register_auto_sell` or `tronsave_update_auto_sell_setting` to avoid overwriting fields you do not intend to change. Requires a wallet signature identity. Read-only and idempotent.

Takes no parameters.

tronsave_get_user_permissions

User Permissions

Read the enabled permission operations (`autoSettings.permitOperations`) for the authenticated user. Returns `{ permitOperations: string[] }` — use it before mutating auto-sell or auto-buy rules to confirm the action is allowed for the wallet. Requires a wallet signature identity. Read-only and idempotent.

Takes no parameters.

tronsave_estimate_buy_resource

Estimate Buy Resource

Quote price and availability for buying ENERGY or BANDWIDTH for a receiver address before placing an order. This quote feeds `tronsave_create_order`; for `tronsave_internal_order_create` (API key) quote with `tronsave_internal_order_estimate`. Returns `{ unitPrice (SUN/unit), durationSec, estimateTrx (total cost in SUN), availableResource, systemDepositAddress }` — map them to `tronsave_create_order` as `orderUnitPrice`, `orderDurationSec`, `paymentPaymentAmount`. Defaults: ENERGY, 100000 units (1000 for BANDWIDTH), 900 s. Read-only and safe to call repeatedly; no session is required, but backend rate limits apply. For order-book depth use `tronsave_list_order_books`; for the minimum unit price only use `tronsave_get_min_price`.

ParametersreceiverunitPricedurationSecresourceTypeallowPartialFillbuyResourceAmountminResourceDelegateRequiredAmount

tronsave_get_order

Order Detail

Read one order by `id` and return its full snapshot for NORMAL, FAST, or EXTEND order types. With only an API key, use `tronsave_internal_order_details` instead. Use this as the source of truth before `tronsave_update_order`, `tronsave_sell_order_manual`, or `tronsave_cancel_order` to avoid acting on stale state. Requires a wallet signature identity. Read-only and idempotent.

Parametersidrequired

tronsave_list_orders

List Orders

Query the market order list with paging (`offset`, `limit` ≤ 10). For an API-key account's own purchases use `tronsave_internal_order_history`. Returns `{ orders: [{ id, requester?.address, receiver.address, resourceType, resourceAmount, remainAmount, durationSec, unitPrice (SUN), isOwner, isMatching, apy, createdAt, typeOrder (NORMAL|FAST|EXTEND) }] }`. `status`: `ACTIVE` = still matching, `COMPLETED` = no longer matching. Set `isOnlyMyOrder=true` (requires a wallet signature identity) to list orders requested by the caller's wallet. Use `tronsave_get_order` with an `id` for one snapshot before mutating an order.

ParameterslimitoffsetstatusresourceTypeisOnlyMyOrder

tronsave_list_order_books

Order Book

Read market depth buckets for `ENERGY` or `BANDWIDTH`. Public view; with an API key, `tronsave_internal_order_book` adds SLOW/MEDIUM/FAST price tiers. Returns price buckets `{ min, max, value }` optionally scoped by viewer address, minimum delegate amount, and duration. No login required; read-only and idempotent. Use this to estimate market ranges before create/update decisions; pair with `tronsave_estimate_buy_resource` for quote-style buy estimation and `tronsave_get_order` for one concrete order.

ParametersaddressdurationSecresourceTyperequiredminDelegateAmount

tronsave_get_min_price

Get Minimum Unit Price

Quote the minimum unit price for a buy. Use when only the floor price matters; for a full purchase quote use `tronsave_estimate_buy_resource`, for a grid across amounts and durations `tronsave_get_price_table`. Returns `{ minPrice }` (SUN per resource unit; per day when `durationSec` >= 86400) from GraphQL `market.estimateMinPrice` for the given `resourceType`, `buyAmount`, and `durationSec`. Optional `address` scopes context when the API supports it. No login required. Read-only and idempotent. Pair with `tronsave_estimate_buy_resource` for full buy quotes and `tronsave_list_order_books` for depth buckets.

ParametersaddressbuyAmountdurationSecresourceType

tronsave_list_extendable_delegates

Extendable Delegates

List extendable delegate candidates for a `receiver` and `resourceType` (ENERGY|BANDWIDTH). Optional `suggestData` scores an extend-and-buy scenario for planning purposes. Read-only; does NOT create orders or change on-chain state. No login required. NOTE: this is GraphQL market data for discovery only. To actually submit an extension, use `tronsave_internal_create_extend_request` with `extendData` from the authenticated REST `POST /v2/get-extendable-delegates` (payload shape differs from this GraphQL response).

ParametersreceiverrequiredrequestersuggestDataresourceTyperequired

tronsave_create_order

Create Order

Create a buy order for ENERGY/BANDWIDTH delegated to `orderReceiver`. SPENDS FUNDS — confirm the plan with the user first. API-key integrations paying from the internal balance can instead use `tronsave_internal_order_create` (FAST/MEDIUM/SLOW pricing, fill guards). Inputs: `orderResourceType`, `orderReceiver`, `orderUnitPrice` (SUN, not TRX), `orderDurationSec`, `orderResourceAmount`, `paymentPaymentAmount` (SUN), and `paymentMethod`: `internal` — debits the TronSave internal balance (needs an api-key login/header or a signature login whose wallet has an internal account); `onchain` — no login needed, but `paymentSignedTx` must be the user's wallet-signed TRX transfer to `systemDepositAddress`. Take price/amount/duration values from the latest `tronsave_estimate_buy_resource`. Returns `{ success, message, code, data.orderId }` — check `success`; verify with `tronsave_get_order` or `tronsave_list_orders`. Not idempotent: on a timeout, verify before retrying to avoid duplicate orders.

ParametersorderReceiverrequiredpaymentMethodrequiredorderUnitPricerequiredpaymentSignedTxorderDurationSecrequiredorderResourceTyperequiredorderResourceAmountrequiredpaymentPaymentAmountrequired

tronsave_sell_order_manual

Sell Order Manual

Manually execute seller-side fulfillment of an existing order with a wallet `signedTx`. Returns `{ success, message, code, delegatedId }`. Side effect: broadcasts a market/delegation transaction and may consume balances/resources; not idempotent — each call re-executes. Requires a wallet signature identity. Use only when explicit manual sell is intended; call `tronsave_get_order` first to verify order state before signing.

ParametersorderIdrequiredsignedTxrequiredpaymentAddress

tronsave_cancel_order

Cancel Order

Cancel an open order by `orderId`. Returns `{ success, message, code }`. Side effect: marks the order non-matchable and refunds locked balance per backend rules; effectively destructive on the live order. Idempotent — cancelling an already-cancelled order is a no-op success. Fails for fulfilled orders or unauthorized callers. Requires a wallet signature identity (the order's owner). Verify state with `tronsave_get_order` first; prefer `tronsave_update_order` when only price/receiver should change.

ParametersorderIdrequired

tronsave_update_order

Update Order

Update an open order by `orderId` with partial fields (`receiver`, `newPrice`). Returns `{ success, message, code }`. Side effect: overwrites live order parameters; not idempotent — each call with a different `newPrice` produces a new state. Requires a wallet signature identity (the order's owner). Prefer this over cancel+recreate when only price/receiver should change. Verify state with `tronsave_get_order` first; fails for already-fulfilled, already-cancelled, or non-editable orders.

ParametersorderIdrequirednewPricereceiver

tronsave_register_auto_sell

Register Auto Sell

Create the initial auto-sell configuration for the authenticated user. Returns the persisted `autoSettings` payload. Side effect: persists automation settings that affect future delegation/sell behavior; not idempotent — calling twice may reset fields. Requires a wallet signature identity. Use for FIRST-TIME setup only; for subsequent edits use `tronsave_update_auto_sell_setting`, and always read the current state with `tronsave_get_user_auto_setting` first to avoid overwriting unknown fields. Fails for invalid config combinations, unauthorized sessions, or backend policy restrictions.

ParameterspoolSettingaddOnFeaturepaymentConfig

tronsave_update_auto_sell_setting

Update Auto Sell Setting

Update the existing auto-sell configuration with partial fields. Returns the updated `autoSettings` payload. Side effect: overwrites stored automation settings for the current user; not idempotent across different field sets. Requires a wallet signature identity. Use for INCREMENTAL changes after registration; read the baseline via `tronsave_get_user_auto_setting` to avoid accidental resets, and use `tronsave_register_auto_sell` only for first-time setup. Fails for invalid field combinations, unauthorized sessions, or policy constraints.

ParameterspoolSettingaddOnFeaturepaymentConfig

tronsave_generate_api_key

Generate API Key

Generate a new internal API key credential for the current user. Returns `data` containing the issued key — show it to the user once and tell them to store it securely; do not repeat it in later messages. Side effect: issues secret material; not idempotent — each call mints a fresh key and may invalidate the previous one per backend policy. Requires a wallet signature identity. Sensitive output — never log raw keys; unauthorized sessions or policy checks may reject issuance.

Takes no parameters.

tronsave_revoke_api_key

Revoke API Key

Revoke the caller's current internal API key. Side effect: any future request using the previous key is rejected. Existing in-flight sessions cached by the server may continue serving until their TTL expires — treat the effect as 'best-effort immediate' rather than guaranteed instantaneous cutoff. Idempotent — revoking an already-revoked key returns success. Requires a wallet signature identity. Call `tronsave_generate_api_key` afterwards to mint a replacement when continued internal access is needed.

Takes no parameters.

tronsave_delete_auto_buy_setting

Delete Auto Buy Setting

Permanently delete one auto-buy rule by `id` (`MObjectId`). Side effect: stops all future executions matching that rule; the rule cannot be restored. Idempotent — deleting a non-existent or already-removed id returns success. Requires a wallet signature identity. Use `tronsave_get_user_auto_setting` to list current rules first; prefer disabling/updating instead when reversibility is desired.

Parametersidrequired

tronsave_get_market_overview

Market Overview

Read the TronSave market summary: resource currently available and total listed for ENERGY and BANDWIDTH, number of pooled sellers, and seller APY (percent). Use for a quick 'how is the market' answer before pricing; for prices use `tronsave_get_price_table` (grid) or `tronsave_estimate_buy_resource` (one quote), for depth by price use `tronsave_list_order_books`. Public, read-only. Data refreshes about every TRON block (3 s).

Takes no parameters.

tronsave_get_price_table

Resource Price Table

Read the price grid for ENERGY or BANDWIDTH: `prices[i][j]` is the unit price in SUN for `amounts[i]` resource units rented for `durations[j]` (e.g. '15m', '1h', '1d'). Durations of 1 day or longer are priced per day: '30d' at 40 SUN costs 40 x 30 SUN per unit in total. Use to compare cost across amounts and durations in one call. For an exact quote on one purchase use `tronsave_estimate_buy_resource`; for only the floor price use `tronsave_get_min_price`. Public, read-only.

ParametersaddressresourceTyperequired

tronsave_get_system_info

Protocol Parameters

Read TronSave and TRON protocol parameters: latest block, minimum buy amounts, TRX burn rates per unit, dynamic buy/lowest prices, the system deposit address, max lock period and the energy cost of a USDT transfer. Use to size purchases (minimums) and to compare renting with burning TRX. For market prices use `tronsave_get_price_table` or `tronsave_estimate_buy_resource`; for supply and APY use `tronsave_get_market_overview`. Public, read-only.

Takes no parameters.

tronsave_get_account_resources

Account Resources

Read the on-chain staked and delegatable ENERGY/BANDWIDTH of a TRON address, plus its TRX balance (SUN string). Use to check whether a wallet can sell, or how much resource it holds. Public (any address), read-only; does not need a login.

Parametersaddressrequired

tronsave_suggest_create_order

Suggest Order Strategy

Ask the market how a buy would be filled: a plain new order, buying more only, or extending existing delegations (optionally plus extra). Returns each option with `readyToFill` (percent), `payout` (SUN) and the `extendData` rows. Use before `tronsave_create_order` when the receiver may already have delegations that can be extended cheaper. Public, read-only. Prices move every ~3 s: re-run right before ordering.

ParametersreceiverrequiredrequesterunitPricerequireddurationSecrequiredresourceTyperequiredresourceAmountrequired

tronsave_list_extendable_receivers

Extendable Receivers

List the receiver addresses that have delegations bought by `requester` which can still be extended, with expiry time (Unix seconds), delegation count and total amount. Use as the first step of an extension flow to find which receiver to extend, then `tronsave_list_extendable_delegates` (market view) or `tronsave_internal_extend_delegates` (API-key path, returns the `extendData` to submit). Public (any requester address), read-only.

ParametersrequesterrequiredresourceType

tronsave_get_seller_stats

Seller Statistics

Read the logged-in seller's lifetime totals (delegations, resource delegated, TRX earned, average price per resource) and a daily earnings chart split into auto, manual, exclusive and extend delegations. Use for 'how much did I earn' totals; for the individual delegations behind them use `tronsave_list_delegations`. Requires a wallet signature identity. Read-only.

ParametersresourceTypetimeFilterBy

tronsave_list_delegations

Delegation History

List the logged-in seller's delegations (resource sent to buyers): amount, TRX amount, duration, unit price, type (AUTO, MANUAL, EXTEND, FAST), status and payout. Newest first; page with `offset`/`limit`. Use for a seller's per-delegation history; for earnings totals use `tronsave_get_seller_stats`, for orders the user bought use `tronsave_list_orders` (`isOnlyMyOrder`). Requires a wallet signature identity. Read-only.

ParameterslimitoffsettimeFilterByfilterByResourceTypefilterByTypeDelegate

tronsave_list_auto_buy_settings

Auto-Buy Rules

List the logged-in user's auto-buy rules: receiver, resource, unit price cap, threshold, budget/order limits, totals bought and active state. Use before `tronsave_update_auto_buy_setting` or `tronsave_delete_auto_buy_setting` to get rule ids. Requires a wallet signature identity. Read-only.

ParameterslimitoffsetfilterBy

tronsave_create_auto_buy_setting

Create Auto-Buy Rule

Create a rule that automatically buys `resourceAmount` for `receiver` whenever its remaining resource falls below `thresholdResourceAmount`, paying up to `unitPrice` SUN per unit from the TronSave internal balance. Side effect: SPENDS internal TRX every time the rule fires until a budget/order limit or `endActiveAt` stops it; not idempotent (each call adds a rule). Confirm receiver, amounts, price cap and limits with the user first; prefer setting `limitBudgetInSun`. Requires a wallet signature identity.

ParametersreceiverrequiredunitPricerequireddurationSecrequiredendActiveAtresourceTyperequiredstartActiveAtresourceAmountrequiredlimitBudgetInSunlimitInOrderCountthresholdResourceAmountrequired

tronsave_update_auto_buy_setting

Update Auto-Buy Rule

Change an auto-buy rule by id: pause or resume it with `isActive`, or change any of price cap, amount, duration, threshold and limits (only the fields you send change). Side effect: a resumed or loosened rule can start spending internal TRX again. Idempotent for the same arguments. Get ids from `tronsave_list_auto_buy_settings`. Requires a wallet signature identity.

ParametersidrequiredisActivereceiverunitPricedurationSecendActiveAtresourceTypestartActiveAtresourceAmountlimitBudgetInSunlimitInOrderCountthresholdResourceAmount

tronsave_list_notifications

Notifications

List the logged-in user's notifications (order created / filled / cancelled / reclaimed, referral payouts) newest first, with the unread count. Use to follow up on an order after creating it; page with `offset`/`limit`, and mark items read with `tronsave_mark_notifications_read`. Requires a wallet signature identity. Read-only.

ParameterslimitoffsetunreadOnly

tronsave_mark_notifications_read

Mark Notifications Read

Mark one notification (by `id`) or, when `id` is omitted, ALL of the user's notifications as read. Get ids from `tronsave_list_notifications`. Only changes the read flag; idempotent. Requires a wallet signature identity.

Parametersid

tronsave_get_referral

Referral Program

Read the logged-in user's referral status: own referral code, sponsor, referral counts, bonus earned and remaining (SUN strings), rank, the referral list (PENDING/ACTIVE) and recent commission payouts. Use for referral questions only; account profile is `tronsave_get_user_info`. `offset`/`limit` page the referral list and the payout list together. Requires a wallet signature identity. Read-only.

ParameterslimitoffsetfilterBy

tronsave_get_telegram_notify_setting

Telegram Notification Settings

Read the Telegram alert filters of the logged-in user: seller alerts (remaining amount, duration, price and APY ranges, unlocked-only) and buyer alerts (reclaim warning time, low energy / bandwidth thresholds). `setting` is null when Telegram is not linked. Read these before changing them with `tronsave_update_telegram_notify_setting` (which replaces whole filter objects). For in-app alerts use `tronsave_list_notifications`. Requires a wallet signature identity. Read-only.

Takes no parameters.

tronsave_update_telegram_notify_setting

Update Telegram Notification Settings

Replace the Telegram alert filters. Send the COMPLETE `sellerFilter` and/or `buyerFilter` objects (read the current ones with `tronsave_get_telegram_notify_setting`, edit, send back); each range or value has `isEnabled` plus its numbers. Only changes which alerts are sent; no funds move. Idempotent. Requires a wallet signature identity and a linked Telegram account.

ParametersbuyerFiltersellerFilter

tronsave_get_agency_bot

Agency Bot

Read the logged-in user's Telegram agency bot (resale bot): name, username, status (PENDING, ACTIVE, INACTIVE, BLOCKED, REJECTED), rewards (total and unpaid) and order / resource statistics. `bot` is null when none is registered. The bot token is never returned. Requires a wallet signature identity. Read-only.

ParameterstimeFilterBy

tronsave_list_internal_transactions

Internal Account Transactions

List the TRX ledger of the logged-in user's internal account (deposits, order payments, refunds), newest first, with the current balance and deposit address. Amounts are SUN strings. Use to reconcile spending after orders. For the orders themselves use `tronsave_internal_order_history` (API key) or `tronsave_list_orders` (`isOnlyMyOrder`); for the balance alone, `tronsave_get_internal_account`. Page with `offset`/`limit`. Requires a wallet signature identity. Read-only.

Parameterslimitoffset

tronsave_get_flash_unstake_request

My Flash Unstake Request

Read the logged-in user's flash-unstake request (selling staked TRX early for an immediate payout): state, payout state, amounts and release progress. `request` is null when there is none. Use for the user's own request; to preview a payout before requesting use `tronsave_estimate_flash_unstake`, to browse everyone's orders use `tronsave_list_flash_unstake_orders`. Requires a wallet signature identity. Read-only.

Takes no parameters.

tronsave_list_flash_unstake_orders

Flash Unstake Market

Browse the flash-unstake market: `available` (open orders buyers can take), `ongoing` (being paid out) or `completed`. Amounts are SUN-scaled numbers; `estimateCompletionTime` is seconds. Use to browse the whole market; the user's own request is `tronsave_get_flash_unstake_request` and a payout preview is `tronsave_estimate_flash_unstake`. Public, read-only.

Parameterskindlimitoffset

tronsave_estimate_flash_unstake

Estimate Flash Unstake

Estimate what an address would receive by flash-unstaking all its staked TRX now: total staked, fee percentage, payout, delegations to reclaim and the minimum unstake amount. Nothing is submitted. Use before requesting a flash unstake; check an existing request with `tronsave_get_flash_unstake_request`. Public (any address), read-only. Fails with 404 when the address has nothing staked.

Parametersrequesterrequired

tronsave_bulk_create_internal_orders

Bulk Buy For Many Receivers

Buy the SAME amount of ENERGY or BANDWIDTH for several receiver addresses in one call, paid from the TronSave internal balance; returns one order id per receiver. Side effect: SPENDS `paymentAmount` SUN of the internal balance; not idempotent (a repeat buys again). Estimate one receiver with `tronsave_estimate_buy_resource` first and show the user receivers, amount and total cost before calling. Requires a wallet signature identity.

ParameterssponsorreceiversrequiredunitPricerequireddurationSecrequiredresourceTyperequiredpaymentAmountrequiredresourceAmountrequired

Version history

5
  1. v1.5.1LatestNov 4, 2026
  2. v1.5.0Nov 4, 2026
  3. v1.4.0Nov 3, 2026
  4. v1.2.0Oct 29, 2026
  5. v1.0.0Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts