Skip to main content
Glama

Get your earnings

rent_supply_earnings
Read-onlyIdempotent

What your nodes have earned, in micro-USD (one micro-USD is one USDC base unit): totals and one page of entries, newest first. A lease shows once it settles, never while it runs. Each entry counts in exactly one total, named by its state: pending (in the holdback, which is longer when the customer paid by card), releasable (waiting for its node's next payout), frozen (never paid while frozen), in_payout (in an open payout, named by payout_id), paid (the chain shows its payout made). unaddressed_micros is the releasable part on nodes with no payout address on the payout network: register one with rent_supply_update_node. payouts says whether this environment pays, and on which network, token and wallet. Each node is paid once a day, in USDC, to the address registered on that node; a node without an address is not paid and its releasable earnings wait until one is registered. A payout cannot be reversed, and a payout made is never sent again to another address. rent_supply_payouts lists the payouts themselves. next_cursor is only for the next call of this tool.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "rent_supply_earnings"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoEntries per page, 1-200. Default 50.
cursorNo

Output Schema

NameRequiredDescriptionDefault
entriesYes
payoutsYes
next_cursorYes
frozen_microsYes
pending_microsYes
paid_out_microsYes
in_payout_microsYes
releasable_microsYes
unaddressed_microsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • addedOutput schema / properties / entries / items / properties / payout_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "pattern": "^pay_(n[0-9a-hjkmnp-tv-z]{15})_(\\d{8})$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / entries / items / properties / state
      Added value: +{
      +  "enum": [
      +    "paid",
      +    "in_payout",
      +    "frozen",
      +    "releasable",
      +    "pending"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / entries / items / required
      Previous value: -[
      -  "key",
      -  "lease_id",
      -  "node_id",
      -  "micros",
      -  "customer_micros",
      -  "created_at",
      -  "releasable_at",
      -  "frozen"
      -]New value: +[
      +  "key",
      +  "lease_id",
      +  "node_id",
      +  "micros",
      +  "customer_micros",
      +  "created_at",
      +  "releasable_at",
      +  "frozen",
      +  "state",
      +  "payout_id"
      +]
    • addedOutput schema / properties / in_payout_micros
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / payouts
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "asset": {
      +      "anyOf": [
      +        {
      +          "pattern": "^0x[0-9a-f]{40}$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "enabled": {
      +      "type": "boolean"
      +    },
      +    "from": {
      +      "anyOf": [
      +        {
      +          "pattern": "^0x[0-9a-f]{40}$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "network": {
      +      "anyOf": [
      +        {
      +          "pattern": "^eip155:[1-9][0-9]*$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [
      +    "enabled",
      +    "network",
      +    "asset",
      +    "from"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / unaddressed_micros
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "pending_micros",
      -  "releasable_micros",
      -  "frozen_micros",
      -  "paid_out_micros",
      -  "entries",
      -  "next_cursor"
      -]New value: +[
      +  "pending_micros",
      +  "releasable_micros",
      +  "frozen_micros",
      +  "in_payout_micros",
      +  "paid_out_micros",
      +  "unaddressed_micros",
      +  "payouts",
      +  "entries",
      +  "next_cursor"
      +]
  2. First observed

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, it discloses real behavioral substance: a lease appears only after settlement, never while running; payouts are daily in USDC to the node's registered address; a payout cannot be reversed and is never resent to another address; nodes without an address are not paid. That is exactly the operational context an agent needs before deciding to rely on these numbers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and currency definition are front-loaded, but the body is a single dense run-on block, and the address/payout paragraph repeats the earlier unaddressed_micros explanation ('releasable earnings wait until one is registered'). Useful content, but it would benefit from tighter grouping of state semantics vs. payout mechanics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, yet the description still pre-explains the state taxonomy, unaddressed_micros, the payouts block and paging, so an agent can interpret results immediately. Combined with the annotation safety profile and parameter schema, nothing material for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: limit is documented in the schema, while cursor has only minLength 1. The 'next_cursor is only for the next call of this tool' sentence implicitly explains the pagination loop for cursor, but neither parameter's format or paging behavior is directly elaborated, so the description adds only partial value over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause states a concrete verb and resource ('What your nodes have earned, in micro-USD'), plus scope ('totals and one page of entries, newest first'). It also names the sibling it is not: 'rent_supply_payouts lists the payouts themselves', so an agent can route between earnings and payouts without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It routes the agent to rent_supply_payouts for payout records and to rent_supply_update_node for registering a missing payout address, and clarifies that next_cursor belongs only to this tool. It stops short of an explicit when-not-to-use statement, but the alternative-tool routing is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources