_ registry / mcp http-sse · checked 12h ago

dpyc-oracle

https://dpyc-oracle.fastmcp.app

Registry code: 437be90dd21866f5

api record

DPYC Oracle — community concierge for the DPYC Social Contract.

DPYC ("Don't Pester Your Customer") is a philosophy and protocol for API monetization via Bitcoin Lightning micropayments. Users pre-fund a satoshi balance and consume API calls without KYC, stablecoins, or mid-session payment popups. Identity is a Nostr keypair (npub), not an email or username. Tollbooth monetizes complete business information at the MCP tool layer — not raw REST data fragments — using pre-funded Lightning balances that eliminate per-request payment ceremonies.

endpoint
https://dpyc-oracle.fastmcp.app/mcp
protocol
http-sse ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing
karma
0 · newcomer
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
599ms

last good check

priced tools
0

of 30 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ used through this hub 30 days

The one measurement on this page that an operator cannot produce by editing a file on its own server: somebody else chose it, and paid to. Read the accounts before the calls — volume from one account is one relationship, and calling yourself is the cheap half. Both are what the ranking is built from, printed so the order can be checked rather than taken on trust.

accounts
0

distinct, expensive to fake

calls served
0

successful, last 30 days

_ what it can do 30 tools
3 open 27 never probed 3 of 30 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • get_relays open 12h ago

    Return the DPYC Nostr relay set, best first. The single source of truth is ``dpyc-community/relays.json``. An Operator seeds its relay set from here at cold start (its only fixed dependency is this Oracle endpoint), then reads its own bootstrap config from Nostr using just its nsec — no direct GitHub access. That file is a curated *guess*: it says which relays are worth using, not which are up this minute. Relays that an operator reported and the Oracle then proved unreachable are moved to the back of the list; everything else keeps its declared order, and nothing is ever dropped. This call never probes anything — it is on every operator's cold-start path, so it stays a lookup. Ranking improves only when someone hits a dead relay and says so via ``report_relay_failure``. Report failures only; successes need no announcement. Free.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • list_campaigns open 12h ago

    List published pricing campaigns from the DPYC community. Optionally filter by operator or author npub.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "author_npub": {
          "type": "string",
          "default": "",
          "description": "Filter to campaigns by this author (optional)."
        },
        "operator_npub": {
          "type": "string",
          "default": "",
          "description": "Filter to campaigns for this operator (optional)."
        }
      },
      "additionalProperties": false
    }
    arguments 16 lines
  • get_tax_rate open 12h ago

    Explain how Tollbooth certification taxation works. Taxation is ad valorem and **per-Authority** — there is no single network-wide number, and the Oracle deliberately quotes none. The actual fee is the Authority's own accounting, set in its pricing model and reported at transaction time. This tool is a docent: it explains the model and points to the live source. For the exact figure, query the relevant Authority's ``check_price`` for ``certify_credits``.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • resolve_service unknown never probed

    Resolve a DPYC service by ``name`` or ``npub``. Returns ``{npub, url, name, role, purchase_mode}`` where ``purchase_mode`` is the registry-topology fact ``"certified"`` or ``"direct"`` (not a price). Supply exactly one of ``name`` or ``npub``.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "default": ""
        },
        "npub": {
          "type": "string",
          "default": ""
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • request_citizenship unknown never probed

    Begin the citizen registration process (Operator-owned flow). This is the **citizen** registration path. Called by the Operator on behalf of a patron — invokes the Oracle directly. No Authority npub is required or consulted. The patron's npub is registered as a Citizen in the DPYC community. The npub provided here becomes the user's **patron identity** — the keypair they will use for credit purchases and service access across all Tollbooth-monetized services. Not to be confused with **operator** registration, which goes through the Authority via a Nostr DM delegation request. Issues a cryptographic challenge that the applicant must sign with their Nostr private key (nsec) to prove they own the claimed npub. The nsec never leaves the applicant's device. Returns a challenge_id, nonce, and signing instructions. The applicant signs a Nostr event containing the nonce and submits it via confirm_citizenship within 10 minutes.

    mcp-tool

    {
      "type": "object",
      "required": [
        "npub",
        "display_name"
      ],
      "properties": {
        "npub": {
          "type": "string"
        },
        "display_name": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 16 lines
  • confirm_citizenship unknown never probed

    Complete the citizen registration by submitting a signed Nostr event. This is part of the **citizen** registration flow (Operator-owned). The Operator calls this on behalf of a patron after the patron has signed the cryptographic challenge from request_citizenship. Verifies: 1. The challenge exists and hasn't expired 2. The Schnorr signature is valid 3. The event's pubkey matches the claimed npub 4. The event content contains the issued nonce 5. The npub is not already registered On success, commits directly to dpyc-community/members/citizens/{npub}.json to register the new Citizen immediately.

    mcp-tool

    {
      "type": "object",
      "required": [
        "npub",
        "challenge_id",
        "signed_event_json"
      ],
      "properties": {
        "npub": {
          "type": "string"
        },
        "challenge_id": {
          "type": "string"
        },
        "signed_event_json": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 20 lines
  • resolve_authority_for unknown never probed

    Resolve the certifying Authority for an operator npub. Returns the Authority's ``{npub, url, name}`` (from the operator's ``upstream_authority_npub``). Use this after bootstrap to learn — and verify — which Authority signed your config, without reading GitHub.

    mcp-tool

    {
      "type": "object",
      "required": [
        "npub"
      ],
      "properties": {
        "npub": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 12 lines
  • list_services unknown never probed

    Enumerate the live DPYC service network with self-described summaries. Reads the member roster from the dpyc-community registry, then (when ``probe=True``) performs a lightweight MCP handshake against each member's public service endpoint to fetch that service's *own* self-description and tool inventory. Nothing about the services is hardcoded here — descriptions are authored by each service, and prices come from each Operator/Authority pricing model (call the service's ``check_price``). Resilient by design: per-service timeout, partial results, brief caching, and a registry-only fallback when an endpoint is asleep or unreachable. A sleeping service never breaks the listing. Free, unauthenticated.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "default": "all",
          "description": "Role filter — \"all\", \"operator\", \"authority\", or \"advocate\"."
        },
        "probe": {
          "type": "boolean",
          "default": true,
          "description": "Handshake each endpoint for a live self-description. Set\nFalse for a fast registry-only listing (no network fan-out)."
        }
      },
      "additionalProperties": false
    }
    arguments 16 lines
  • get_campaign unknown never probed

    Retrieve a published pricing campaign.

    mcp-tool

    {
      "type": "object",
      "required": [
        "author_npub",
        "operator_npub",
        "slug"
      ],
      "properties": {
        "slug": {
          "type": "string",
          "description": "The campaign slug (directory name)."
        },
        "format": {
          "type": "string",
          "default": "json",
          "description": "\"json\" for importable data, \"markdown\" for readable summary."
        },
        "author_npub": {
          "type": "string",
          "description": "The campaign author's npub."
        },
        "operator_npub": {
          "type": "string",
          "description": "The target operator's npub."
        }
      },
      "additionalProperties": false
    }
    arguments 28 lines
  • get_rulebook unknown never probed

    Fetch the DPYC Social Contract governance document. Returns the raw markdown of GOVERNANCE.md from the dpyc-community repo.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • how_to_join unknown never probed

    Tier-specific onboarding guide for joining the DPYC Social Contract. Covers all five tiers: Citizen, Advocate, Operator, Authority, and First Curator. Includes Nostr keygen instructions and practical next steps.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • about unknown never probed

    Extended narration about DPYC, the Social Contract, and the Oracle. Fetches README.md and GOVERNANCE.md from the dpyc-community repo and assembles a comprehensive context answer.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • lookup_member unknown never probed

    Look up a member by their Nostr npub. Can look up any role's npub — citizen, operator, or authority. Returns the full member record if found, or a not-found message.

    mcp-tool

    {
      "type": "object",
      "required": [
        "npub"
      ],
      "properties": {
        "npub": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 12 lines
  • economic_model unknown never probed

    Explain the DPYC Social Contract economic model — qualitatively. Describes how value flows through the network: ad valorem certification fees, the cascade up the Certification Chain to the First Curator, and where the live numbers actually live. The Oracle quotes **no** rates, counts, or revenue figures — those belong to the Authorities' pricing models and the live registry, not to a docent. Free, unauthenticated.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • who_is_first_curator unknown never probed

    Identify the First Curator (Prime Authority) of the Certification Chain. Returns the curator's npub, display name, and member record.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • network_versions unknown never probed

    Get current recommended versions of all Tollbooth components. Returns component versions, minimum compatibility, active protocols, and a short advisory summary. Data is fetched live from network-status.json in the dpyc-community repo.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • network_advisory unknown never probed

    Get current network deployment advisory. Returns human-readable guidance on what changed recently, urgent upgrades, and actions operators should take. Fetched live from ADVISORY.md in the dpyc-community repo.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • how_to_add_authority unknown never probed

    End-to-end guide for spinning up a new Tollbooth Authority. Returns the eight-step procedure covering identity, region selection, GitHub workspace, dpyc-community registry entry, Neon + BTCPay + Horizon deployment, BTCPay credential delivery via Secure Courier, the self-registration challenge-response with the parent Authority, and pre-funding the cert-fee balance. Fetched live from docs/how-to-add-authority.md in the dpyc-community repo.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • service_status unknown never probed

    Diagnostic: report this service's software versions and runtime info. Free, unauthenticated. Use to verify deployment versions across the DPYC ecosystem.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • report_relay_failure unknown never probed

    Report that a relay in the DPYC set was unreachable, and re-rank it. A report does not set a relay's rank. It asks the Oracle to measure that relay *now*, and the Oracle's own probe decides. A false or mistaken report therefore costs one probe and changes nothing — no caller can demote a healthy relay by asserting that it is down. Report only failures. Successes are far too frequent to be worth carrying, and a relay that works needs no announcement.

    mcp-tool

    {
      "type": "object",
      "required": [
        "relay",
        "reporter_npub",
        "signed_event"
      ],
      "properties": {
        "mode": {
          "type": "string",
          "default": "unknown",
          "description": "What was being attempted — ``\"send\"``, ``\"read\"``, or\n``\"unknown\"``. Recorded for the human reading the logs."
        },
        "relay": {
          "type": "string",
          "description": "The relay that failed. Must already be in the DPYC set —\nthis tool re-measures the curated set, it is not a probe-anything\nprimitive that can be aimed at arbitrary hosts."
        },
        "signed_event": {
          "type": "string",
          "description": "A Nostr event signed by ``reporter_npub`` whose content\ncontains the relay URL, created within the last few minutes.\nStateless by design: no challenge is issued first, because a\nchallenge store would not survive this service's recycles — and\na relay report is most needed exactly when relays are broken."
        },
        "reporter_npub": {
          "type": "string",
          "description": "The reporting operator's npub."
        }
      },
      "additionalProperties": false
    }
    arguments 28 lines
  • register_authority unknown never probed

    Register a new Authority in the DPYC community registry. Called by an Authority service at the end of the onboarding protocol (after the candidate proves npub ownership and the Prime Authority approves). Commits a new ``members/authorities/{npub}.json`` file to dpyc-community on GitHub. The full Authority onboarding protocol is a 3-step Nostr DM challenge-response flow: 1. ``register_authority_npub(npub)`` — Authority sends DM challenge 2. ``confirm_authority_claim(npub)`` — verifies candidate DM, escalates to Prime 3. ``check_authority_approval(npub)`` — Prime approves, this tool is called

    mcp-tool

    {
      "type": "object",
      "required": [
        "authority_npub",
        "display_name",
        "service_url",
        "upstream_authority_npub"
      ],
      "properties": {
        "service_url": {
          "type": "string",
          "description": "Public MCP endpoint URL of the Authority service."
        },
        "display_name": {
          "type": "string",
          "description": "Human-readable name for the Authority."
        },
        "authority_npub": {
          "type": "string",
          "description": "Nostr npub of the new Authority curator."
        },
        "upstream_authority_npub": {
          "type": "string",
          "description": "npub of the sponsoring Authority (must\nalready exist as a prime_authority or authority in the registry)."
        }
      },
      "additionalProperties": false
    }
    arguments 28 lines
  • register_operator unknown never probed

    Register a new Operator in the DPYC community registry. Called by an Authority service after the operator requests registration. The Authority validates the operator's identity and sponsors the registration by calling this tool via MCP-to-MCP.

    mcp-tool

    {
      "type": "object",
      "required": [
        "operator_npub",
        "display_name",
        "service_url",
        "authority_npub"
      ],
      "properties": {
        "service_url": {
          "type": "string",
          "description": "Public MCP endpoint URL of the Operator service."
        },
        "display_name": {
          "type": "string",
          "description": "Human-readable name for the Operator service."
        },
        "operator_npub": {
          "type": "string",
          "description": "Nostr npub of the new Operator."
        },
        "authority_npub": {
          "type": "string",
          "description": "npub of the sponsoring Authority (must already\nexist as an authority or prime_authority in the registry)."
        }
      },
      "additionalProperties": false
    }
    arguments 28 lines
  • update_operator unknown never probed

    Update an existing Operator's registry entry. Used when an Operator moves to a new MCP endpoint, changes its display name, or needs to correct a registration. Must be called by the sponsoring Authority (or any Authority).

    mcp-tool

    {
      "type": "object",
      "required": [
        "operator_npub"
      ],
      "properties": {
        "service_url": {
          "type": "string",
          "default": "",
          "description": "New MCP endpoint URL (leave empty to keep current)."
        },
        "display_name": {
          "type": "string",
          "default": "",
          "description": "New display name (leave empty to keep current)."
        },
        "operator_npub": {
          "type": "string",
          "description": "Nostr npub of the Operator to update."
        },
        "authority_npub": {
          "type": "string",
          "default": "",
          "description": "npub of the requesting Authority (must be a\nregistered authority or prime_authority)."
        }
      },
      "additionalProperties": false
    }
    arguments 28 lines
  • deregister_operator unknown never probed

    Remove an Operator from the DPYC community registry. Called when an Authority disowns an Operator. An Operator cannot exist without a sponsoring Authority, so deregistration removes the member file entirely, returning the Operator to initial state.

    mcp-tool

    {
      "type": "object",
      "required": [
        "operator_npub",
        "authority_npub"
      ],
      "properties": {
        "operator_npub": {
          "type": "string",
          "description": "Nostr npub of the Operator to remove."
        },
        "authority_npub": {
          "type": "string",
          "description": "npub of the Authority requesting deregistration\n(must be a registered authority or prime_authority)."
        }
      },
      "additionalProperties": false
    }
    arguments 18 lines
  • register_advocate unknown never probed

    Register a new Advocate in the DPYC community registry. Advocates are community utility services that provide shared infrastructure (e.g., OAuth2 callback collectors) but aren't monetized Operators or certification Authorities. This is an Oracle-mediated registration — no Nostr DM challenge-response needed. The Oracle operator (Prime Authority) trusts the commit via GitHub token.

    mcp-tool

    {
      "type": "object",
      "required": [
        "npub",
        "display_name",
        "service_name",
        "service_url",
        "service_description"
      ],
      "properties": {
        "npub": {
          "type": "string",
          "description": "Nostr npub of the Advocate service."
        },
        "service_url": {
          "type": "string",
          "description": "Public URL of the service."
        },
        "display_name": {
          "type": "string",
          "description": "Human-readable name for the service."
        },
        "service_name": {
          "type": "string",
          "description": "Machine-readable service identifier\n(e.g., \"tollbooth-oauth2-collector\")."
        },
        "service_description": {
          "type": "string",
          "description": "Short description of what the service does."
        }
      },
      "additionalProperties": false
    }
    arguments 33 lines
  • check_ban_status unknown never probed

    Check whether an npub is banned from the DPYC Social Contract. Looks up the member in the community registry and checks whether their status is "banned". Unknown npubs are not considered banned (they simply aren't members). Free, unauthenticated. Used by operators during the cold path (credit purchases) to enforce community bans.

    mcp-tool

    {
      "type": "object",
      "required": [
        "npub"
      ],
      "properties": {
        "npub": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 12 lines
  • renounce_membership unknown never probed

    Citizen self-removal from the DPYC Social Contract via automated PR. Not yet implemented — will create a GitHub PR to remove the member from the registry.

    mcp-tool

    {
      "type": "object",
      "required": [
        "npub"
      ],
      "properties": {
        "npub": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 12 lines
  • initiate_ban_election unknown never probed

    Initiate a community ban election against a member. Not yet implemented — will create a GitHub Issue with a 72-hour discussion period and Lightning-funded economic voting.

    mcp-tool

    {
      "type": "object",
      "required": [
        "target_npub",
        "reason"
      ],
      "properties": {
        "reason": {
          "type": "string"
        },
        "target_npub": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 16 lines
  • cast_ban_vote unknown never probed

    Cast a Lightning-funded vote in an active ban election. Not yet implemented — will verify npub membership, validate the election is active, and record the vote with a Lightning payment proof.

    mcp-tool

    {
      "type": "object",
      "required": [
        "election_id",
        "vote",
        "npub"
      ],
      "properties": {
        "npub": {
          "type": "string"
        },
        "vote": {
          "type": "string"
        },
        "election_id": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 20 lines
  • publish_campaign unknown never probed

    Publish a pricing campaign to the DPYC community. Commits both a machine-importable JSON file and a human-readable Markdown summary to the dpyc-community campaigns directory.

    mcp-tool

    {
      "type": "object",
      "required": [
        "author_npub",
        "operator_npub",
        "campaign_json"
      ],
      "properties": {
        "author_npub": {
          "type": "string",
          "description": "The npub of the person who designed the campaign."
        },
        "campaign_json": {
          "type": "string",
          "description": "The full campaign export as a JSON string."
        },
        "campaign_name": {
          "type": "string",
          "default": "",
          "description": "Optional display name. Derived from JSON if omitted."
        },
        "operator_npub": {
          "type": "string",
          "description": "The npub of the operator the campaign is for."
        },
        "campaign_markdown": {
          "type": "string",
          "default": "",
          "description": "Optional pre-rendered Markdown. If omitted, the\nOracle generates a basic summary from the JSON."
        }
      },
      "additionalProperties": false
    }
    arguments 33 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/437be90dd21866f5/badge.svg)](https://brick.blue/agent/437be90dd21866f5)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Own the domain? Prove it and the listing carries a verified badge here too: passport.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.

_ also on fastmcp.app 20 entries

Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.

12 more sit on this domain. All of them.