Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.brawlaphant/vealth

REMOTE · VEALTH.NET · SCANNED OCT 4

Vealth work board: find real work, claim free with your wallet, prove it. Free onchain anchoring.

Available components

0 this week 77 Trust /100

Recent critical change

Authorization (1 Sept 2026). See the changelog before you install this server.

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security63
Transport & Reachability100
Schema Quality & AI Usability66
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 21147 tokens (~213/item across 99 items; 99 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 98% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety88
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 2 of 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "prepare_vote_withdraw" implies "withdraw" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
  • An AI judge read all 100 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
  • Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Install

How do I install the io.github.brawlaphant/vealth MCP server?

io.github.brawlaphant/vealth is a hosted endpoint at https://vealth.net/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · vealth.net

# add to Claude Code
claude mcp add --transport http brawlaphant-vealth 'https://vealth.net/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "brawlaphant-vealth": {
      "url": "https://vealth.net/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "brawlaphant-vealth": {
      "type": "http",
      "url": "https://vealth.net/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.brawlaphant-vealth]
url = "https://vealth.net/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "brawlaphant-vealth": {
      "type": "remote",
      "url": "https://vealth.net/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add brawlaphant-vealth --url 'https://vealth.net/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  brawlaphant-vealth:
    url: "https://vealth.net/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "brawlaphant-vealth": {
      "Transport": "http",
      "Url": "https://vealth.net/mcp"
    }
  }
}
# add to Vellum
assistant mcp add brawlaphant-vealth -t streamable-http -u 'https://vealth.net/mcp'
// mcp.json
{
  "mcpServers": {
    "brawlaphant-vealth": {
      "type": "http",
      "url": "https://vealth.net/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Oct 26 0
    • Tool “compare_titles” rewrote its description, which is the text the model reads security
    • Tool “worker_titles” rewrote its description, which is the text the model reads security
  • 1 Oct 26 0
    • New tool “submit_feedback” functional
    • New tool “submit_funding” functional
  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 24 Sept 26 0
    • Tool “prepare_post_work” rewrote its description, which is the text the model reads security
    • Tool “start_here” rewrote its description, which is the text the model reads security
    • New tool “prepare_physical_proof” functional
    • New tool “provision_plan” functional
    • New tool “submit_physical_proof” functional
    • “prepare_claim” added an optional parameter “crew” cosmetic
    • “prepare_post_work” added an optional parameter “flags” cosmetic
    • “prepare_post_work” added an optional parameter “proofRequirements” cosmetic
    • “prepare_post_work” added an optional parameter “safetyNotes” cosmetic
    • “prepare_post_work” added an optional parameter “skillLevel” cosmetic
    • “prepare_proof” added an optional parameter “crew” cosmetic
    • “prepare_proof” reworded the description of “proofs” cosmetic
  • 23 Sept 26 0
    • “prepare_claim” added an optional parameter “attestAtLeast18” cosmetic
    • “prepare_claim” added an optional parameter “attestSafetyRead” cosmetic

    2 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.

  • 15 Sept 26 0
    • Tool “hour_card” rewrote its description, which is the text the model reads security
    • New tool “my_money” functional
    • “hour_card” added an optional parameter “lang” cosmetic
  • 14 Sept 26 0
    • New tool “regen_provisioning_subscription_quote” functional
    • New tool “regen_provisioning_subscription_status” functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Oct 2026 · Probed https://vealth.net/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=vealth.net CN=YE2,O=Let's Encrypt,C=US 1 Sept 2026 30 Nov 2026 ECDSA 256 ECDSA-SHA384 5e021f9762975da00b3738cc39185efcc07
SANs: *.vealth.net, vealth.net
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of vealth.net. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
net. present 37331 13 Verified
vealth.net. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=31536000; includeSubDomains
content-security-policy default-src 'self'; script-src 'self' 'unsafe-inline' https://static.cloudflareinsights.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data:; frame-src 'self' https://embed.music.apple.com; connect-src 'self' https://cloudflareinsights.com https://base.publicnode.com https://base.llamarpc.com https://mainnet.base.org https://1rpc.io https://regen-api.polkachu.com https://keys.coinbase.com https://rpc.wallet.coinbase.com https://api.fiscaldata.treasury.gov; base-uri 'self'; form-action 'self'; frame-ancestors 'self'; object-src 'none'; upgrade-insecure-requests;
x-content-type-options nosniff
x-frame-options SAMEORIGIN
referrer-policy strict-origin-when-cross-origin

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://vealth.net/mcp Verified 200
http (plaintext) http://vealth.net/mcp HTTPS enforced 301 https://vealth.net/mcp
MCP tools · 99 exposed · ~20,695 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
provision_plan ~387

VEALTH PROVISION: send an objective in plain words (any spelling; English, Spanish or Swahili) and get back a PLAN: a verdict (plan, authority_required, clarify, no_home, or entry_work when the objective only offers help, such as 'I want to help', and names no work), ONE exact next call, the governed work units that answer it (method, safety stops, the authority each needs, whether it is executable) and any live board packets near the place you name with their posted price and what a stranger may do now. Regulated work (lead paint, gas, asbestos, electrical, needles and similar) is never presented as freely doable: the plan names whose authority it needs. Nothing in a plan has happened; no place or price is invented; corpus units have no price until posted. The same plan GET /labor/provision returns. Free, keyless, read-only, moves no money. Not provision_work, which builds a funding path for one packet.

NameTypeReqDescription
entryLevelOnlyboolean–Only work the corpus holds as entry level; the reply also carries entry_set, the posted work a stranger can take today.
excludeAuthorityboolean–Drop any unit that names an authority it requires.
latitudenumber–Optional, with longitude: the place's coordinates, for live packets nearby.
longitudenumber–Optional, with latitude.
objectivestringyesThe useful work you want done, 5 to 300 characters, e.g. 'clear the storm drain on my street before the rain'.
placestring–Optional place name, e.g. 'Kibera' or 'Los Angeles'. Used as an address filter, never scored as work.
radiusKmnumber–Search radius for live packets in km. Default 25, at most 200.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

provision_work ~207

Turn a place + problem (or a board packet id) into provisioned work: a bounded packet with scope, standards-registered method, proof requirement, tCO2e estimate, and the keyless funding path YOU pay from your own wallet. This tool returns the packet and the path; it never spends, never holds funds, never signs. When the retirement lane is running, approved proof queues a carbon retirement and an on-chain certificate — provision, not offset; that lane is paused by operator order since 2026-08-04.

NameTypeReqDescription
latitudenumber–Center of the search, with query.
longitudenumber–Center of the search, with query.
querystring–Or free text for the problem, e.g. 'storm drain' or 'tree planting'.
radiusKmnumber–Search radius in km. Default 50.
workIdstring–Provision a specific open board packet by id (from find_work).
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

regen_address_lookup ~142

Live balance, bonded stake, unclaimed staking rewards, and REGEN locked in open governance deposits for any regen1… address — read directly from Regen's own public LCD API (the same one Vealth's browser explorer hits; no Vealth backend caches or alters it). Any figure that cannot be read answers so honestly rather than defaulting to zero, and the total is withheld until every figure is known. Free, keyless, read-only — this never asks for a private key, only the address.

NameTypeReqDescription
addressstringyesA regen1… bech32 address (not a 0x… Base address — Regen is a separate Cosmos chain).
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

regen_burn_tracker ~134

Regen Compute (compute.regen.network, run by Regen Network Development PBC — unaffiliated with Vealth) burns 5% of net subscriber revenue as REGEN via MsgBurnRegen. This tool returns every burn transaction found on-chain by querying the public Regen LCD network-wide (no sender filter, so the single-wallet claim is itself verified, not assumed), the running total, cadence, and a reconciliation against the $REGEN Tokenomics DAO's own claimed weekly range. Free, keyless, read-only.

NameTypeReqDescription
limitnumber–Max recent burns to list, newest first. Default 10.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

regen_forum_feed ~227

Poll-friendly activity log of new threads and replies on Vealth's self-hosted Regen Network governance forum — built because Regen's own forum sits behind an unpaid hosting bill. Each event carries the author's regen1 address and the bonded REGEN stake behind it, captured at post time, so an argument about a vote sits next to its weight. Pass the returned next_cursor back as `since` to page forward without re-listing what you already read. Free, keyless, read-only — posting needs a Regen wallet signature this tool never asks for; get the exact recipe from GET /regen/forum/signing-spec.

NameTypeReqDescription
authorstring–Optional: only events from this regen1… address.
limitnumber–Max events, 1-200. Default 50.
proposalIdstring–Optional: only events tied to this Regen governance proposal number, e.g. '71'.
sincestring–Optional: a cursor a PRIOR call to this tool returned (next_cursor). Not a timestamp — pass it back verbatim to page forward.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

regen_governance_status ~146

Live-mirrored Regen Network (regen-1) governance: bonded stake, active validator count, and every proposal — decoded, with phase (deposit/voting/resolved) and tally. Omit proposalId for an overview of what is open right now; pass one to get that proposal's full deposit/voting/tally detail. Read from a periodically regenerated mirror straight off the public ledger and registry, not asserted on Vealth's own authority — the response states exactly when it was generated. Free, keyless, read-only.

NameTypeReqDescription
proposalIdstring–Optional: one proposal number, e.g. '71'. Omit for the overview of everything open.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

regen_provisioning_subscription_quote ~339

The regenerative provisioning subscription, BUILT AND OFF. Someone picks an amount from $1 to $1,000 and a period (day or month) and names a place; this tool returns the plan: exactly which OPEN, unfunded, claimable packets at that place the money would back, in the board's own order, at the board's own prices, never over the amount, with the remainder carried, plus the place's Standing link and every reason it is not live. Call it with no arguments for the product and the ladder. NOTHING CHARGES: there is no payment path on any of these routes, no store and no scheduler, and the lane refuses on its own kill file and its own lane state. Free, keyless, read-only. This funds work at a place you name. It buys no token. It promises no return. Standing is earned by the work, never by the payment. Cancel any time; what was funded stays funded.

NameTypeReqDescription
amountnumber–Whole dollars, 1 to 1000. Omit for the product and the ladder only.
holdEcowealthOptInboolean–Record that the subscriber wants to hold ECOWEALTH in their own wallet. A preference only: we never hold, price, or issue a token.
periodstring–"day" or "month".
place––A place label string, or an object { lat, lng, radiusKm } naming a coordinate cluster.
walletstring–The subscriber's OWN 0x address, used for receipts and for reading Standing. Never custody.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

regen_provisioning_subscription_status ~156

Given a wallet, returns its regenerative provisioning subscription state. There is no subscription store and nothing has ever been charged, so this answers "no subscription" honestly rather than inventing an empty record, and it names every reason the lane is not live. Standing belongs to a PLACE and is read free at GET /labor/standing?place=. Free, keyless, read-only. This funds work at a place you name. It buys no token. It promises no return. Standing is earned by the work, never by the payment. Cancel any time; what was funded stays funded.

NameTypeReqDescription
walletstringyesThe wallet to look up (0x…). The read is public and proves nothing about who you are.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

regen_token_volume ~135

How much of the $REGEN token itself changes hands — NOT Regen ecocredit retirement volume, a completely different market (use regen_burn_tracker or the commons page for that). Returns live price, 24h volume, market cap, a 7-day trend read off real daily history, a per-exchange/DEX breakdown of where that volume actually happens, and the peak/most-recent complete month from a year of monthly history (the human page at /regen/volume.html has a full daily/monthly chart toggle). Sourced from CoinGecko's own aggregation. Free, keyless, read-only.

Input schema present but exposes no named parameters.

NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

retire_and_certify ~145

How to retire a given tCO2e amount for real, on-chain, via the Klima rail — paid keyless from the caller's own wallet, returning a confirmed retire transaction as the certificate. Returns instructions and the exact door; this server never performs the retirement and never holds a wallet. The retirement is real; any footprint number behind it stays orientation, never a precise carbon claim.

NameTypeReqDescription
amount_tco2enumberyesTonnes of CO2e to retire, e.g. 0.005.
beneficiary_namestring–Optional name to record on the retirement.
retirement_messagestring–Optional message to record on the retirement.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

start_here ~115

The door for an agent arriving with nothing. Leads with the front-door set: the few posted packets of physical work an ordinary person can take today (no licence, no special equipment, no supervisor), checked against the live board. Explains that ecological wealth is provisioned by work, how to generate your own wallet locally in one line (we never see the key), and that browsing, claiming and proving are all free and need no balance or gas. Read-only, free, keyless — it performs nothing and asks for nothing.

Input schema present but exposes no named parameters.

NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_accept_hours ~212

Complete the acceptance: pass the BODY_JSON from prepare_accept_hours UNCHANGED and the signature your wallet produced over MESSAGE_TO_SIGN. Relays to the same public door any HTTP client uses (POST /labor/work/:workId/accept-hours); this server holds no keys and no funds. FREE and KEYLESS with a valid signature, and the signature is YOUR OWN, from the wallet the packet named. NOBODY IS PAID by this call: no wage is released, no settlement is recorded and nothing is minted. Returns the hours the worker claimed, the hours you accepted, and who the record now says accepted them. THE HOUSE CANNOT ACCEPT ITS OWN HOURS, so the house cannot make this call for you.

NameTypeReqDescription
bodyJsonstringyesThe exact BODY_JSON string from prepare_accept_hours, unchanged.
signaturestringyesThe 0x… personal_sign output over MESSAGE_TO_SIGN.
workIdstringyesThe packet id, the same one prepare_accept_hours was given.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_backing ~160

Complete the pledge: pass workId, the BODY_JSON from prepare_backing UNCHANGED, and the signature your wallet produced over MESSAGE_TO_SIGN. This server relays the signed request to the same public pledge gate any HTTP client uses — it holds no keys and no funds, and without your signature it can do nothing. Free, always: no fee is ever charged for a validly signed pledge. Returns whether your wallet's balance verified against the pledged amount, and the packet's current backer ledger.

NameTypeReqDescription
bodyJsonstringyesThe exact BODY_JSON string from prepare_backing, unchanged.
signaturestringyesThe 0x… personal_sign output over MESSAGE_TO_SIGN.
workIdstringyesThe packet id.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_backing_withdraw ~108

Complete the withdrawal: pass workId, the BODY_JSON from prepare_backing_withdraw UNCHANGED, and the signature over MESSAGE_TO_SIGN. Free, always, and relays to the same public gate any HTTP client uses.

NameTypeReqDescription
bodyJsonstringyesThe exact BODY_JSON string from prepare_backing_withdraw, unchanged.
signaturestringyesThe 0x… personal_sign output over MESSAGE_TO_SIGN.
workIdstringyesThe packet id.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_bid ~135

Complete the bid: pass workId, the BODY_JSON from prepare_bid UNCHANGED, and the signature your wallet produced over MESSAGE_TO_SIGN. Relays to the same public bid gate any HTTP client uses; this server holds no keys and no funds. Free with a valid signature. Returns your recorded offer; the creator accepts or declines it later — work_status and my_work show what happened.

NameTypeReqDescription
bodyJsonstringyesThe exact BODY_JSON string from prepare_bid, unchanged.
signaturestringyesThe 0x… personal_sign output over MESSAGE_TO_SIGN.
workIdstringyesThe packet id.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_claim ~120

Complete the claim: pass the BODY_JSON string from prepare_claim UNCHANGED plus the signature your wallet produced over MESSAGE_TO_SIGN. This server relays the signed request to the same public claim gate any HTTP client uses — it holds no keys and no funds, and without your signature it can do nothing. Success returns your claimId; keep it, proof submission needs it.

NameTypeReqDescription
bodyJsonstringyesThe exact BODY_JSON string from prepare_claim, unchanged.
signaturestringyesThe 0x… personal_sign output over MESSAGE_TO_SIGN.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_credit_offer ~145

Complete the offer: pass workId, the BODY_JSON from prepare_credit_offer UNCHANGED, and the signature your wallet produced over MESSAGE_TO_SIGN. Relays to the same public door any HTTP client uses (POST /labor/work/:workId/back/credit); this server holds no keys, no funds and no credits. Free with a valid signature. Returns the recorded offer, including the regen1 account the board derived for you.

NameTypeReqDescription
bodyJsonstringyesThe exact BODY_JSON string from prepare_credit_offer, unchanged.
signaturestringyesThe 0x… personal_sign output over MESSAGE_TO_SIGN.
workIdstringyesThe packet id.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_credit_settlement ~154

Complete the record: pass workId, the BODY_JSON from prepare_credit_settlement UNCHANGED, and the signature your wallet produced over MESSAGE_TO_SIGN. Relays to POST /labor/work/:workId/settle/credit; this server holds no keys, no funds and no credits, and reads regen-1 only. Free with a valid signature. Returns the settlement with settledIn naming the ledger, the batch, the tradable amount and the paying account.

NameTypeReqDescription
bodyJsonstringyesThe exact BODY_JSON string from prepare_credit_settlement, unchanged.
signaturestringyesThe 0x… personal_sign output over MESSAGE_TO_SIGN.
workIdstringyesThe packet id.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_evidence_surface ~104

Complete the reservation: pass the BODY_JSON from prepare_evidence_surface UNCHANGED and the signature your wallet produced over MESSAGE_TO_SIGN. Free, always. Returns the targetUrl to pass to prepare_claim. Re-submitting for the same packet returns the surface you already hold.

NameTypeReqDescription
bodyJsonstringyesThe exact BODY_JSON string from prepare_evidence_surface, unchanged.
signaturestringyesThe 0x… personal_sign output over MESSAGE_TO_SIGN.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_evidence_write ~108

Complete the publish: pass the BODY_JSON from prepare_evidence_write UNCHANGED and the signature over MESSAGE_TO_SIGN. Free when signed. On success the files are live at your targetUrl and the next step is prepare_proof — the verifier probes them passively like any public machine surface.

NameTypeReqDescription
bodyJsonstringyesThe exact BODY_JSON string from prepare_evidence_write, unchanged.
signaturestringyesThe 0x… personal_sign output over MESSAGE_TO_SIGN.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_feedback ~258

Record what you tried to do with Vealth, what happened, and what you expected. Use this when a tool, endpoint, page or capability is missing, confusing, blocked or appears broken. Free and keyless. Feedback is untrusted observation only: it does not change work, proof, payment, safety, authority, standards or code. Do not include passwords, private keys, seed phrases or API keys.

NameTypeReqDescription
actorRefstring–Optional self-declared reporter reference. This is attribution only, never verified identity.
attemptedIntentstringyesWhat you were trying to accomplish.
evidenceRefsarray–Optional references to existing evidence/receipts. Do not paste secrets.
expectedResultstring–Optional: what you expected instead.
observedResultstringyesWhat actually happened, including the refusal/error if useful.
requestIdstring–Optional request/trace id if one was returned.
targetKindstringyesWhat kind of Vealth surface you were using.
targetNamestringyesThe exact endpoint, MCP tool, capability or page, e.g. find_work or POST /labor/work.
targetVersionstring–Optional exact version/ref if known.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_funding ~297

Finish funding a packet from your own wallet: pass the workId, your funderWallet, and xPayment — the standard X-PAYMENT header value (x402 exact scheme, an EIP-3009 USDC authorization on Base) that YOUR wallet built and signed against the challenge prepare_funding returned. This tool forwards it, unchanged, to the same public funding door any HTTP client uses (POST /nurture/fund) and returns that door's own answer. It holds no key, takes no payment itself, and marks nothing funded: the door settles the payment and only a verified settlement stamps a packet funded. Without xPayment it refuses and points you back to prepare_funding. A packet whose claim lane is closed is refused before any challenge, in plain words. If the door times out, do NOT pay again: read work_status first.

NameTypeReqDescription
contributeUsdnumber–Optional. The same EXPLICIT contribution you passed to prepare_funding; it must match the amount you signed.
funderWalletstringyesThe 0x… address that signed the payment. The ADDRESS only, never a private key.
workIdstringyesThe packet id, from funding_quote or find_work.
xPaymentstringyesThe X-PAYMENT header value your own wallet built and signed for the exact accepts[] terms from prepare_funding. Required; this server cannot create it.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_gmx_order ~93

Relay a signed Ethereum transaction to the Arbitrum network. The transaction must have been pre-signed by the caller using prepare_gmx_order output. This endpoint does NOT sign — it only broadcasts an already-signed transaction.

NameTypeReqDescription
signedRawTransactionstringyes0x-prefixed raw signed transaction hex (e.g., from ethers.Wallet.signTransaction() or ethers.Signer.sendTransaction().wait()).
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_physical_proof ~193

Relay the signed physical proof to the same public door any HTTP client uses (POST /labor/work/:workId/physical-proof): pass workId, the BODY_JSON from prepare_physical_proof UNCHANGED, and the signature over MESSAGE_TO_SIGN. FREE with a valid signature from the claiming wallet. It records the photo hashes and the on-site GPS against the packet's 350 m place; a far GPS is flagged for the human, never auto-rejected. NOBODY IS PAID by this call and nothing is accepted: the packet's creator signs the verdict, never the worker.

NameTypeReqDescription
bodyJsonstringyesThe exact BODY_JSON string from prepare_physical_proof, unchanged.
signaturestringyesThe 0x… personal_sign output over MESSAGE_TO_SIGN.
workIdstringyesThe packet id, the same one prepare_physical_proof was given.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_place ~135

Complete the handover: pass the BODY_JSON from prepare_place UNCHANGED and the signature your wallet produced over MESSAGE_TO_SIGN. Relays to the same public door any HTTP client uses (POST /labor/place/intake); this server holds no keys and no funds. Free with a valid signature. Returns the recorded intake with its id and the Regen account the board derived for you. It is recorded, not accepted: watch it with place_status.

NameTypeReqDescription
bodyJsonstringyesThe exact BODY_JSON string from prepare_place, unchanged.
signaturestringyesThe 0x… personal_sign output over MESSAGE_TO_SIGN.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_post_work ~236

Complete the posting: pass BODY_JSON from prepare_post_work UNCHANGED, the creator wallet's signature over MESSAGE_TO_SIGN, and (unless you hold an EWP key) xPayment — the standard X-PAYMENT header value your own wallet produced for the $0.05 write fee. If you send no payment, the answer is the live 402 challenge with exact price and pay-to; pay it from your own wallet and retry with a fresh prepare. This server relays to the same public gate any HTTP client uses — it holds no keys and no funds. Success returns your packet's id and public page; claiming it (even yourself) is free.

NameTypeReqDescription
bodyJsonstringyesThe exact BODY_JSON string from prepare_post_work, unchanged.
signaturestringyesThe 0x… personal_sign output over MESSAGE_TO_SIGN, from the creator wallet.
xPaymentstring–Optional: the X-PAYMENT header value (EIP-3009 USDC on Base, from YOUR wallet) settling the $0.05 write fee. Omit if you hold an EWP key.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_proof ~144

Relay the signed proof to the public completion gate: pass workId, the BODY_JSON from prepare_proof UNCHANGED, and the signature over MESSAGE_TO_SIGN. Approval follows (the creator, or self-verification where the packet supports it); on a funded packet, approval releases the wage into settlement; on an unfunded packet, approval RECORDS earned credit — never a settlement by itself. work_status shows where it stands.

NameTypeReqDescription
bodyJsonstringyesThe exact BODY_JSON string from prepare_proof, unchanged.
signaturestringyesThe 0x… personal_sign output over MESSAGE_TO_SIGN.
workIdstringyesThe packet id.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_token_offer ~139

Complete the offer: pass workId, the BODY_JSON from prepare_token_offer UNCHANGED, and the signature your wallet produced over MESSAGE_TO_SIGN. Relays to the same public door any HTTP client uses (POST /labor/work/:workId/back/token); this server holds no keys, no funds and no tokens. Free with a valid signature. Returns the recorded offer and the packet's token terms.

NameTypeReqDescription
bodyJsonstringyesThe exact BODY_JSON string from prepare_token_offer, unchanged.
signaturestringyesThe 0x… personal_sign output over MESSAGE_TO_SIGN.
workIdstringyesThe packet id.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_token_settlement ~147

Complete the record: pass workId, the BODY_JSON from prepare_token_settlement UNCHANGED, and the signature your wallet produced over MESSAGE_TO_SIGN. Relays to POST /labor/work/:workId/settle/token; this server holds no keys, no funds and no tokens, and reads the chain only. Free with a valid signature. Returns the settlement with settledIn naming the chain, token, atomic amount and payer.

NameTypeReqDescription
bodyJsonstringyesThe exact BODY_JSON string from prepare_token_settlement, unchanged.
signaturestringyesThe 0x… personal_sign output over MESSAGE_TO_SIGN.
workIdstringyesThe packet id.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_vote ~144

Complete the vote: pass workId, the BODY_JSON from prepare_vote UNCHANGED, and the signature your wallet produced over MESSAGE_TO_SIGN. This server relays the signed request to the same public vote gate any HTTP client uses — it holds no keys and no funds, and without your signature it can do nothing. Free, always: no fee is ever charged for a validly signed vote. Returns the live tally for this packet.

NameTypeReqDescription
bodyJsonstringyesThe exact BODY_JSON string from prepare_vote, unchanged.
signaturestringyesThe 0x… personal_sign output over MESSAGE_TO_SIGN.
workIdstringyesThe packet id.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

submit_vote_withdraw ~105

Complete the withdrawal: pass workId, the BODY_JSON from prepare_vote_withdraw UNCHANGED, and the signature over MESSAGE_TO_SIGN. Free, always, and relays to the same public gate any HTTP client uses.

NameTypeReqDescription
bodyJsonstringyesThe exact BODY_JSON string from prepare_vote_withdraw, unchanged.
signaturestringyesThe 0x… personal_sign output over MESSAGE_TO_SIGN.
workIdstringyesThe packet id.
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

track_followup ~57

Private, read-only follow-up tracking. Keeps appointments, referrals, records and other stated next steps from disappearing. It records what another person or service said should happen; it does not invent clinical next steps.

NameTypeReqDescription
itemsarrayyes–
NameTypeReqDescription
claimIdstring––
claimableboolean––
definitionOfDoneobject|array|string|null––
fulfillableByarray––
fundedboolean––
needs_from_callerarray––
next_callobject––
notClaimableReasonstring––
okboolean––
payUsdnumber––
proofRulestring––
toolstring––
workIdstring––

No examples provided.

Common questions

What is the io.github.brawlaphant/vealth MCP server?

io.github.brawlaphant/vealth is an MCP server listed in the public MCP registry as io.github.brawlaphant/vealth. Vealth work board: find real work, claim free with your wallet, prove it. Free onchain anchoring. This page covers its hosted endpoint (https://vealth.net/mcp).

Is the io.github.brawlaphant/vealth MCP server safe to use?

io.github.brawlaphant/vealth scores 77 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.brawlaphant/vealth MCP server expose?

io.github.brawlaphant/vealth exposes 99 tools: start_here, find_work, get_work_packet, how_to_claim, prepare_claim, and 94 more. Their descriptions and schemas cost roughly 20,695 tokens of context every time the server is loaded.

Does the io.github.brawlaphant/vealth MCP server require authentication?

No. We connected to io.github.brawlaphant/vealth without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the io.github.brawlaphant/vealth MCP server still maintained?

io.github.brawlaphant/vealth is still listed as active in the MCP registry. We last reached this channel on 4 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.