Skip to main content
Glama

Create a verified PnL link

create_verified_pnl
Read-onlyIdempotent

Read a wallet's results for one tax year from the chain and return a public, signed link (https://papertax.xyz/v/…) with a share image, for posting on X or anywhere else. Free, and nothing is stored. Dollar amounts are included only when amounts is true. With private true (the default) the wallet address is left out of the link and the page; with private false the page shows it, so check with the user first. It proves what the wallet did, not who owns it.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "address": "<address>"
    },
    "name": "create_verified_pnl"
  }
}

Input Schema

NameRequiredDescriptionDefault
addressYesPublic Hyperliquid wallet address
amountsNoInclude net result, gains, losses and fees
privateNoLeave the wallet address out of the link and page
tax_yearNoTax year. AU-2027 = Australia · FY 2026–27; AU-2026 = Australia · FY 2025–26; US-2026 = United States · 2026; US-2025 = United States · 2025; UK-2027 = United Kingdom · 2026–27; UK-2026 = United Kingdom · 2025–26; CA-2026 = Canada · 2026; CA-2025 = Canada · 2025; NZ-2027 = New Zealand · 2026–27; NZ-2026 = New Zealand · 2025–26; JP-2026 = Japan · 2026; JP-2025 = Japan · 2025; ES-2026 = Spain · 2026; ES-2025 = Spain · 2025. Defaults by jurisdiction: AU AU-2026, US US-2026, UK UK-2026, CA CA-2026, NZ NZ-2027, JP JP-2026, ES ES-2026.
jurisdictionNoUsed when tax_year is not given. AU = 1 Jul–30 Jun; US, CA, JP and ES = calendar year; UK = 6 Apr–5 Apr; NZ = 1 Apr–31 MarAU

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / jurisdiction / description
      Previous value: -"Used when tax_year is not given. AU = 1 Jul–30 Jun; US and CA = calendar year; UK = 6 Apr–5 Apr; NZ = 1 Apr–31 Mar"New value: +"Used when tax_year is not given. AU = 1 Jul–30 Jun; US, CA, JP and ES = calendar year; UK = 6 Apr–5 Apr; NZ = 1 Apr–31 Mar"
    • changedInput schema / properties / jurisdiction / enum
      Previous value: -[
      -  "AU",
      -  "US",
      -  "UK",
      -  "CA",
      -  "NZ"
      -]New value: +[
      +  "AU",
      +  "US",
      +  "UK",
      +  "CA",
      +  "NZ",
      +  "JP",
      +  "ES"
      +]
    • changedInput schema / properties / tax_year / description
      Previous value: -"Tax year. AU-2027 = Australia · FY 2026–27; AU-2026 = Australia · FY 2025–26; US-2026 = United States · 2026; US-2025 = United States · 2025; UK-2027 = United Kingdom · 2026–27; UK-2026 = United Kingdom · 2025–26; CA-2026 = Canada · 2026; CA-2025 = Canada · 2025; NZ-2027 = New Zealand · 2026–27; NZ-2026 = New Zealand · 2025–26. Defaults by jurisdiction: AU AU-2026, US US-2026, UK UK-2026, CA CA-2026, NZ NZ-2027."New value: +"Tax year. AU-2027 = Australia · FY 2026–27; AU-2026 = Australia · FY 2025–26; US-2026 = United States · 2026; US-2025 = United States · 2025; UK-2027 = United Kingdom · 2026–27; UK-2026 = United Kingdom · 2025–26; CA-2026 = Canada · 2026; CA-2025 = Canada · 2025; NZ-2027 = New Zealand · 2026–27; NZ-2026 = New Zealand · 2025–26; JP-2026 = Japan · 2026; JP-2025 = Japan · 2025; ES-2026 = Spain · 2026; ES-2025 = Spain · 2025. Defaults by jurisdiction: AU AU-2026, US US-2026, UK UK-2026, CA CA-2026, NZ NZ-2027, JP JP-2026, ES ES-2026."
    • changedInput schema / properties / tax_year / enum
      Previous value: -[
      -  "AU-2027",
      -  "AU-2026",
      -  "US-2026",
      -  "US-2025",
      -  "UK-2027",
      -  "UK-2026",
      -  "CA-2026",
      -  "CA-2025",
      -  "NZ-2027",
      -  "NZ-2026"
      -]New value: +[
      +  "AU-2027",
      +  "AU-2026",
      +  "US-2026",
      +  "US-2025",
      +  "UK-2027",
      +  "UK-2026",
      +  "CA-2026",
      +  "CA-2025",
      +  "NZ-2027",
      +  "NZ-2026",
      +  "JP-2026",
      +  "JP-2025",
      +  "ES-2026",
      +  "ES-2025"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / tax_year / description
      Previous value: -"Tax year. AU-2027 = Australia · FY 2026–27; AU-2026 = Australia · FY 2025–26; US-2026 = United States · 2026; US-2025 = United States · 2025; UK-2027 = United Kingdom · 2026–27; UK-2026 = United Kingdom · 2025–26; CA-2026 = Canada · 2026; CA-2025 = Canada · 2025; NZ-2027 = New Zealand · 2026–27; NZ-2026 = New Zealand · 2025–26. Defaults to the year being filed now."New value: +"Tax year. AU-2027 = Australia · FY 2026–27; AU-2026 = Australia · FY 2025–26; US-2026 = United States · 2026; US-2025 = United States · 2025; UK-2027 = United Kingdom · 2026–27; UK-2026 = United Kingdom · 2025–26; CA-2026 = Canada · 2026; CA-2025 = Canada · 2025; NZ-2027 = New Zealand · 2026–27; NZ-2026 = New Zealand · 2025–26. Defaults by jurisdiction: AU AU-2026, US US-2026, UK UK-2026, CA CA-2026, NZ NZ-2027."
  3. Changed1 schema field changed
    • addedInput schema / properties / private
      Added value: +{
      +  "default": true,
      +  "description": "Leave the wallet address out of the link and page",
      +  "type": "boolean"
      +}
  4. Added

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description reconciles the 'create' verb with those hints by explaining that nothing is stored. It adds real behavioral context beyond the annotations: dollar amounts appear only when amounts=true, private=true strips the address from both link and page, private=false exposes it, and it scopes the claim ('proves what the wallet did, not who owns it').

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

Conciseness5/5

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

Five sentences, front-loaded with what the tool does and its output, then cost/storage, then the two parameter behaviors, then a closing scope caveat. No filler and nothing repeated from the schema.

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?

With no output schema, the description carries the burden and does describe the return value (public signed https://papertax.xyz/v/… link plus share image). It also addresses cost, persistence, privacy defaults, and the epistemic limit of the proof — everything needed to invoke and explain the result.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the terser schema text — it explains the user-visible consequence of the private flag on both the link and the rendered page, and pairs amounts=true with dollar figures. It omits the tax_year/jurisdiction interaction, which the schema already covers in detail.

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 description states a specific verb+resource pair ('Read a wallet's results for one tax year from the chain and return a public, signed link'), and the output artifact (URL with share image) is concrete. It is unmistakably distinct from siblings like get_tax_summary (numbers) and export_tax_file (a file), even though it does not name them.

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 gives clear context for use ('for posting on X or anywhere else') and a conditional caution ('with private false ... check with the user first'), plus a cost note ('Free'). It stops short of explicitly comparing against get_tax_summary or export_tax_file, so the agent must infer that this is the sharing tool rather than the data-retrieval tool.

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