Skip to main content
Every tool declares an outputSchema, returns structuredContent (with the same JSON in a text block), and carries MCP annotations so clients can decide what needs confirmation. Which tools a server offers depends on how it runs: see Choose an integration.

Read tools

On a local server with a signer, submitter and payer default to the server’s wallet. On the hosted server, pass them.

Round tools

execute_subscription_round and execute_x402_round take the same core inputs: execute_subscription_round also accepts encryptSecrets (local only) and sourcePayment.maxSpendUsdc for paid sources. On the hosted server it takes a sessionToken, and x402 rounds go through prepare_x402_round first: see Hosted MCP.

Output

attestation has the same shape as in the gateway’s round response. submit_attestation accepts this output unchanged, and build_verifier_calldata takes its attestation. Field meanings are explained in Rounds and attestations.

Timing and retries

Rounds run on a 100 ms tick (round timing). A second request for the same source and quorum inside one tick gets HTTP 409; the x402 and hosted subscription tools retry it once a tick later, then fail with round_conflict. Nothing else is retried automatically, because every retry is a new round that spends again.

Write tools

Providers and paid sources

A gateway can integrate data providers. A provider entry lists its access flows and ready-made feeds, each with a complete apiConfig and sourceId.
  • api_key flow. Molpha holds the provider key; you pay nothing extra and send nothing extra. Pass the feed’s apiConfig unchanged to a round tool with signaturesRequired of at least 3. Any change moves the sourceId and is refused on the provider’s host.
  • x402 flow. You pay the provider per node fetch. Call quote_source_payment, then execute_subscription_round with sourcePayment: { maxSpendUsdc }. The payer pays the source directly; Molpha never receives that payment, and it does not replace the payment for the round itself.
Paying sources is off by default and local only. It needs MOLPHA_SOURCE_PAYER_KEY (an EVM key) and an allowlist in MOLPHA_SOURCE_PAYMENT_NETWORKS, and it is bounded by sourcePayment.maxSpendUsdc and the per-round and daily caps. Without authorization a paywalled source fails with source_payment_required and its quote. Paid sources cannot be combined with encryptSecrets. Describe provider values as attested provider quotes: Molpha attests what the endpoint returned, not that the price is correct.

Errors