ExploreKnow Your AgentHow it worksDevelopersPricingSponsors Sign in

Developers

Build trust into
every agent interaction.

A REST API, one-file SDKs, an MCP server for AI assistants, signed webhooks, a live widget and on-chain attestations. Start free — no card, no sales call.

REST API

JSON over HTTPS at https://neptuv.xyz/api/v1. Send your key as Authorization: Bearer …. Keys never belong in browser code.

  • GET /agents/{chain}/{id} — full profile, score and reasons
  • GET /search — by name, category, protocol, minimum score
  • POST /gate — allow or deny with your policy (Pro)
  • POST /verify — prove a signed request came from that agent (Pro)
  • POST /attest — signed EIP-712 trust attestation (Platform)
  • GET/POST /incidents, /watchlist, /decisions, /flags, /export
Full reference
Request and response
curl -s https://neptuv.xyz/api/v1/agents/base/1203/score \
  -H "Authorization: Bearer $NEPTUV_KEY"

{
  "agent": "eip155:8453:1203",
  "score": 86, "label": "Trusted",
  "reasons": { "up": ["Rated by 41 different reviewers", …], "down": [] },
  "reports": { "confirmed": 0, "under_review": 0 }
}

SDKs

Copy one file into your project. Each SDK signs agent requests (for agents) and wraps the API with a ready-made guard for your server (for platforms).

Python

Needs eth-account and requests. Includes a Flask decorator.

neptuv.py

JavaScript

Node 18+, Deno, Bun and browsers. Works with viem or ethers. Includes Express middleware.

neptuv.js

Solidity

Verify Neptuv's EIP-712 attestations inside your own contracts.

Verifier.sol

MCP server

Give Claude, ChatGPT, Cursor or your own agent native trust lookups. Neptuv speaks the Model Context Protocol over Streamable HTTP at https://neptuv.xyz/mcp (protocol 2025-11-25). It works without a key on the free limits; add a key for gate and verify tools.

ToolWhat it does
check_agentGet an ERC-8004 agent's Neptuv Score (0–100), label, the reasons behind it and any confirmed incident reports. Use before letting an agent act for you or pay you.
search_agentsSearch ERC-8004 agents by name or task, optionally filtered by category, protocol and minimum score. Results are ranked by Neptuv Score.
network_statsLive totals for everything Neptuv indexes: agents per chain, agents with a name, how many have enough history for a score, labels, reviews and validations.
compare_agentsCompare two or three agents side by side: scores, the four signal groups, reviewers and checks.
gate_agentApply your Neptuv policy (or the rules given here) and get allow/deny with reasons. Needs a Pro or Platform API key.
verify_agent_requestCheck that a request carrying Neptuv-Agent/Timestamp/Nonce/Signature headers was really signed by that agent's on-chain wallet (and, with a delegation chain, which agent it acts for), then apply your policy. Needs a Pro or Platform key.
MCP client config
{
  "mcpServers": {
    "neptuv": {
      "url": "https://neptuv.xyz/mcp",
      "headers": { "Authorization": "Bearer YOUR_NEPTUV_KEY" }
    }
  }
}
Try it with curl
curl -s https://neptuv.xyz/mcp -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"check_agent","arguments":{"agent":"base:1203"}}}'

Webhooks

Add an HTTPS endpoint in Dashboard → Alerts. Each POST carries X-Neptuv-Event and X-Neptuv-Signature: sha256=…, an HMAC of the raw body with your signing secret. Reject anything that doesn't match.

Events and payloads
Check the signature
import hashlib, hmac

def is_from_neptuv(raw_body: bytes, header: str, secret: str) -> bool:
    expected = "sha256=" + hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, header or "")

Widget & badge

Agent owners can show a live Neptuv Score on their site or README. It updates by itself and links to the full explanation. Owners on Builder and up get "Verified by Neptuv".

Embed
<iframe src="https://neptuv.xyz/embed/agent/base/1203" width="380" height="120"
        style="border:0;max-width:100%" title="Neptuv trust score" loading="lazy"></iframe>

Attestations

On Platform, POST /api/v1/attest (or "attest": true on verify) returns an EIP-712 TrustAttestation signed by Neptuv's attester key. Anyone can check it: the public key is at /.well-known/neptuv-attester.json, and the verifier contract checks it on-chain.

The attester key only signs attestations. It never holds funds and can't move anything.

Attestation (shortened)
{
  "primaryType": "TrustAttestation",
  "domain": { "name": "Neptuv Attestation", "version": "1" },
  "message": {
    "agentChainId": 8453, "agentId": 1203, "score": 86, "label": 4,
    "enoughData": true, "methodVersion": 11,
    "issuedAt": 1792780000, "expiresAt": 1792783600
  },
  "signature": "0x…"
}

Limits

PlanAPI callsGate & verifyPoliciesDecision logAttestationsSeats
Free 100 / day — Defaults — — 1
Builder $50/mo 10K / month — Defaults — — 1
Pro $100/mo 100K / month Yes 3 30 days — 3
Platform $500/mo 1M / month Yes 50 365 days Yes 10

Every response includes X-RateLimit-Limit and X-RateLimit-Remaining. Need more? Talk to us.