K402

io.github.Kali123411Published by GitHub account Kali123411v0.7.0Updated Oct 24, 2026

Agent-payable APIs on Kaspa: LLMs, chain data, covenants, zk proofs — pay per call, no API key

VerifiedStreamable HTTPWeb executableFinanceDeveloper ToolsAI & ML

Overview

AI-generated overview

K402 exposes agent-payable services on Kaspa — LLM calls, Kaspa chain data, covenant tooling and zk proofs — metered per call against a prepaid KAS session or a

What you can do
Discover and price services: list the gateway catalog, search the provider exchange, inspect a provider's reputation and payment options, and check channel configuration and status. Manage payment: open a prepaid session with a Kaspa mainnet deposit address, attach an existing session key, check balance, and settle per-call payments with a transaction ID. Run paid text and web tasks: summarize, extract schema-constrained JSON, rewrite, classify, read a public URL, embed texts, and index or semantically search server-side collections. Query Kaspa mainnet: address balance, UTXOs, transaction mempool status, fee estimates and network status. Use GPU model tiers for chat, reasoning, code and Kas
When to use it
Worth adding when an assistant needs paid, keyless access to LLM inference, Kaspa chain data, covenant scripting or RISC Zero proving, and you are willing to fund a KAS balance. Useful for agents that must pay per call rather than hold provider API keys.
Requirements
Runs as a remote streamable HTTP endpoint or as the local PyPI package k402-mcp over stdio. Payment requires a Kaspa mainnet wallet and KAS; a prepaid session needs a minimum deposit of 0.25 KAS. Optional environment variables K402_GATEWAY (gateway URL) and K402_SESSION (pin a funded session key). Network access to the gateway and Kaspa mainnet.
Before you install
Paid tools spend real KAS from a prepaid balance or per-call on-chain payment; proving costs scale with cycles. covenant_broadcast moves real KAS on mainnet, so run covenant_check first. The session key is a bearer credential saved locally and should be kept secret; indexed collection names should be unguessable and kept secret. Deposits and payments go to third-party gateway and provider addresses.

Installation

In SourceWeft

  1. Open K402 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.Kali123411%2Fk402/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": {
    "k402": {
      "type": "http",
      "url": "https://x402-compute.68cxgfyr0.workers.dev/mcp"
    }
  }
}

Tools

36

catalog

List every service this gateway sells (text tools, Kaspa chain data, LLM tiers) with live prices in KAS and USD. Free. Start here to see what's available and what calls cost.

Takes no parameters.

open_session

Open a prepaid payment session: returns a session key and a personal Kaspa MAINNET deposit address. Send KAS to the address from any wallet (min 0.25 KAS); confirmed deposits become spendable balance within seconds and every paid tool call meters against it. Free. The session is saved locally so subsequent calls use it automatically.

Takes no parameters.

use_session

Attach an existing k402 session key (from a previous open_session) so paid calls meter against its balance — use after reconnecting to the hosted endpoint, or to carry one funded session across clients. Returns the session's current balance. Free.

Parameterssessionrequired

session_status

Check the current payment session: deposit address, deposited / spent / remaining KAS. Free.

Takes no parameters.

registry_provider

Full detail on one provider in the service exchange by its payee pubkey: every service it lists, its chain-verified reputation (settled KAS volume + settlement count), and its payee address. Free.

Parameterspayee_pubkeyrequired

channel_config

Parameters for opening a kaspa-channel — a covenant-enforced payment channel that settles per-call vouchers on Kaspa L1 with NO custodian (the trustless alternative to a prepaid session). Returns the payee pubkey, min/max channel size, required expiry lead, and maxfee. Free. Opening a channel means funding the channel covenant on-chain (payer holds the key), then paying per call with signed vouchers — use the `k402` Python client (`pip install k402`, k402.channel) to build the covenant and sign vouchers, since that flow needs your Kaspa key. Returns {error} if this gateway hasn't enabled the (experimental) channel rail.

Takes no parameters.

channel_status

Status of a kaspa-channel by its channel id (covenant id): funded value, amount spent via vouchers, remaining, expiry, and whether it has been closed on-chain. Free.

Parameterschannel_idrequired

payment_options

Which coins and schemes this gateway accepts for payment. Free. Ways to pay any paid tool: a prepaid KAS session (open_session — simplest, no per-call step); per-call in any listed coin (pay the offer a 402 returns, then pay_per_call); or, where the experimental 'kaspa-channel' scheme is offered, a covenant payment channel that settles per-call vouchers on L1 with no custodian (see channel_config). Coins may include Kaspa, Pearl, BTC, LTC, DOGE, BCH, DASH, and EVM assets (ETC, ETH, USDC, USDT).

Takes no parameters.

pay_per_call

Complete a PER-CALL coin payment. After a paid tool returns a 402 with pay_per_call_offers, pay one offer on-chain from your own wallet, then call this with the 402's `endpoint` and `request_body`, the chosen offer's `scheme` and `payment_id`, and your payment `txid`. The gateway verifies the payment landed and returns the tool's real result. (Alternative to a prepaid session — use this when you'd rather pay each call directly in a specific coin.)

Parameterstxidrequiredschemerequiredendpointrequiredpayment_idrequiredrequest_bodyrequired

summarize

Summarize text or a public URL in at most max_words. Paid (~$0.001 in KAS).

Parametersurltextmax_words

extract

Extract structured data from text as JSON guaranteed to match your JSON schema (schema-constrained decoding, not best-effort). Paid (~$0.0015 in KAS).

Parameterstextrequiredschemarequiredinstruction

rewrite

Rewrite text per an instruction (tone, format, length...). Paid (~$0.001 in KAS).

Parameterstextrequiredinstructionrequired

classify

Classify text into one (or multiple, if multi=true) of 2-32 labels; the result is constrained to your label set. Paid (~$0.0003 in KAS).

Parameterstextrequiredmultilabelsrequired

read_url

Fetch a public web page and return its title + clean markdown; distill=true adds key-fact bullets. Useful when you have no web access of your own. Paid (~$0.0012 in KAS).

Parametersurlrequireddistill

embed_text

Embed up to 64 texts (768-dim vectors, nomic-embed-text). Paid (~$0.0003 in KAS).

Parameterstextsrequired

search_index

Store documents [{id, text, meta?}] in a named server-side collection for semantic search. Use an unguessable collection name and keep it secret. Paid (~$0.0015 in KAS).

Parametersreplacedocumentsrequiredcollectionrequired

search_query

Semantic-search a collection you indexed earlier; returns top-k matches with scores. Paid (~$0.0003 in KAS).

Parametersqrequiredtop_kcollectionrequired

kaspa_balance

Balance of any Kaspa MAINNET address, straight from a node (no indexer, no API key). Paid (~$0.00015 in KAS).

Parametersaddressrequired

kaspa_utxos

UTXO set of a Kaspa mainnet address, including scriptPublicKey and covenant_id where set. Paid (~$0.0003 in KAS).

Parametersaddressrequired

kaspa_tx_status

Mempool status of a Kaspa transaction. Absent from mempool means accepted-or-unknown — confirm acceptance by checking one of its outputs with kaspa_utxos. Paid (~$0.00015).

Parameterstxidrequired

kaspa_fee_estimate

Current Kaspa mainnet feerate buckets (sompi per gram of tx mass). Paid (~$0.00015).

Takes no parameters.

kaspa_network

Kaspa mainnet status: DAA score, block count, difficulty, node sync state. Paid (~$0.00015 in KAS).

Takes no parameters.

generate

Run a prompt on a GPU model tier: 'chat' (fast 7B, ~$0.0015), 'llama' (budget 8B, ~$0.0008), 'reason' (35B, ~$0.004), 'think' (deep chain-of-thought 35B MoE, ~$0.004), 'code' (coder model, ~$0.0025), or 'kaspa-expert' (RAG-grounded, current Kaspa knowledge, ~$0.0015). Returns the completion text.

Parameterstierpromptrequiredsystemmax_tokens

covenant_compile

Compile a Silverscript covenant to script hex, ABI, hardened template hash, and its P2SH address on each network. constructor_args is the silverc ctor JSON (e.g. [{"kind":"int","data":7}]). Paid (~$0.002). NOTE: 'compiles' ≠ proven on-chain.

Parameterssourcerequiredconstructor_args

covenant_address

Derive the covenant P2SH address for a compiled script on 'mainnet' or 'testnet-10'. Paid (~$0.0003).

Parametersnetworkscript_hexrequired

covenant_utxos

Live UTXO set locked under a covenant address (covenant state inspection), from the node. Optionally filter by covenant_id. Paid (~$0.0003).

Parametersaddressrequirednetworkcovenant_id

covenant_build

Assemble a covenant spend tx. Each input: {txid, index, entry, compute_budget?, and either sigscript:{source,decl,args,is_leader?} to build a covenant sigscript server-side, or omit sigscript for a P2PK input you sign locally}. Each output: {amount, address|script_public_key_hex, covenant?:{authorizing_input,covenant_id}}. Returns the tx, a broadcast-ready rpc_transaction, fee accounting, and (if fully authorized) a pre-verify. We never sign. Paid (~$0.001).

Parametersinputsrequirednetworkoutputsrequiredlock_timepayload_hex

covenant_check

Local txscript pre-verify of a signed covenant tx BEFORE broadcast — catches script failures that would otherwise cost you a broadcast. 'entries' are the spent UTXOs (covenant_utxos output plugs in directly). Returns {all_ok, inputs:[{index, ok, error?}]}. Paid (~$0.0005).

Parametersentriesrequiredtransactionrequired

covenant_broadcast

Broadcast a signed covenant tx (RpcTransaction JSON from covenant_build). MAINNET moves real KAS — run covenant_check first. Paid (~$0.0003).

Parametersnetworktransactionrequired

prove_guest_upload

Upload a RISC Zero program binary (the .bin risc0-build emits, base64) once; returns its content-addressed image_id (also the verification key), reusable across proofs. Paid (~$0.01).

Parametersprogram_b64required

prove_preflight

Execute a guest WITHOUT proving: exact cycle count + a signed price quote {total_cycles, price_kas, quote_id, quote_expires}. Run this first — proving cost scales with cycles by orders of magnitude. Paid (~$0.002).

Parametersimage_idrequiredinput_b64

prove_submit

Queue a proving job -> {job_id, cost_kas}. Pass quote_id (from prove_preflight; charged the quote) or max_kas (skip preflight; priced on actual cycles, refuses if over the cap). Then poll job_status and fetch job_result. Paid: the proof's cycle-based price (dynamic).

Parametersmax_kasimage_idrequiredquote_idinput_b64

job_status

Poll a proving job: queued/running/done/failed, queue position, cost. Free.

Parametersjob_idrequired

job_result

Fetch a finished proving job's result {image_id, total_cycles, journal_b64, receipt_b64}. 404 until done; results kept 24h. Free.

Parametersjob_idrequired

attest_verify

Verify a RISC Zero receipt against an image_id -> {valid, journal_b64}. Anyone can check an attestation without trusting the prover. Paid (~$0.0002).

Parametersimage_idrequiredreceipt_b64required

Version history

1
  1. v0.7.0LatestSep 16, 2026

Score

75% 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

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • License10 pts

    Declare a license in the repository or the registry entry.