The trust layer for ERC-8004 agents on Base

SentinelNet scores every agent's trustworthiness across 5 dimensions, pins evidence to IPFS, and writes composable reputation on-chain. One query. One trust score. Zero human involvement.

Live Dashboard API Docs Integrate
--
Agents Scored
--
Trusted
--
Caution
--
Rejected

Why SentinelNet

5-Dimension Scoring

Longevity, activity, counterparty quality, contract risk, and ERC-8004 identity. Each dimension weighted and combined with sybil detection.

On-Chain Composability

TrustGate contract lets other smart contracts gate execution by trust score. onlyTrusted(agentId) — one modifier, done.

Economic Accountability

ETH staked behind every published score. 72-hour challenge window. On-chain TrustDegraded events when scores drop.

IPFS Evidence

Full analysis JSON pinned to IPFS for every scored agent. Verifiable, immutable, auditable. Nothing hidden.

Trust Decay

Scores decay exponentially over time. A 90 becomes 67 after 30 days. Trust is earned continuously, not once.

Sybil Detection

Post-sweep cluster analysis flags coordinated agent rings. -20 point penalty. Automatic re-scoring of flagged agents.

Integrate in minutes

Query trust from any environment

// Gate any function by agent trust score
import {TrustGate} from "sentinelnet/TrustGate.sol";

contract MyMarketplace is TrustGate {
    function execute(uint256 agentId)
        external onlyTrusted(agentId)
    {
        // Only runs if agent is TRUSTED
    }
}
# Check single agent
curl https://sentinelnet.gudman.xyz/trust/31253

# Batch query
curl -X POST https://sentinelnet.gudman.xyz/trust/batch \
  -H "Content-Type: application/json" \
  -d '{"agent_ids": [1, 2, 3]}'

# Embed trust badge
<img src="https://sentinelnet.gudman.xyz/badge/31253.svg">
import httpx

async def check_trust(agent_id: int) -> dict:
    async with httpx.AsyncClient() as client:
        r = await client.get(
            f"https://sentinelnet.gudman.xyz/trust/{agent_id}"
        )
        return r.json()

# Returns: {trust_score, verdict, explanation, ...}
// MCP tool call — any agent can query
{
    "name": "check_trust",
    "arguments": {
        "agent_id": 31253,
        "fresh": true
    }
}

// Also available:
// list_scored_agents, get_ecosystem_stats,
// get_score_history

On-Chain Contracts

SentinelNetStaking
0xE171554f0c5d71872663eE9f8a773db3Fe65d0B9
Base Mainnet
ERC-8004 Reputation Registry
0x8004BAa17C55a88189AE136b182e5fdA19dE9b63
Base Mainnet
ERC-8004 Identity Registry
0x8004A169FB4a3325136EB29fA0ceB6D2e539a432
Base Mainnet