Skip to navigation

Agent Trust Registry

View as Markdown

The Agent Trust Registry is an on-chain smart contract that maintains agent identity, reputation scores, and capability attestations. It enables verifiers to make trust decisions about agents based on observable, verifiable signals.

Architecture

On-Chain (Agent Trust Registry) Off-Chain Signals Consumers Agent Registration Trust Scoring Capability Registry Validator Hooks Verification History Delegation Validity Third-Party Attestations Action Results Verifiers Marketplace Other Agents

Trust Score

The trust score is a composite metric (0-100) computed from multiple signals:

Scoring Formula

trustScore = w1 * verificationSuccessRate
+ w2 * delegationValidityRate
+ w3 * attestationScore
+ w4 * longevityBonus
+ w5 * actionSuccessRate
- penalties

Weights

SignalWeight (w)Description
Verification success rate0.25% of successful VC verifications
Delegation validity rate0.20% of time delegation chain is valid
Attestation score0.25Weighted score from third-party attestations
Longevity bonus0.10Time since registration (capped)
Action success rate0.20% of successful actions (non-reverted)

Penalties

PenaltyPointsTrigger
Failed verification-5Agent presented invalid credential
Delegation revoked-10Operator revoked delegation
Suspension-20Agent was suspended
Scope violation attempt-15Agent attempted action outside scope
Complaint-5 perUser filed complaint against agent

Score Interpretation

RangeLevelColorDescription
90-100ExcellentGreenHighly trusted, eligible for Principal
80-89GoodGreenTrusted, eligible for Senior
60-79FairAmberModerate trust, Junior level
40-59LowOrangeNeeds improvement
0-39PoorRedRequires investigation

Autonomy Levels

Trust scores drive autonomy level promotions and demotions:

LevelRequired ScoreRequired ActionsAdditional Requirements
Intern0+0Default for new agents
Junior60+100+No suspensions in 30 days
Senior80+1000+Operator approval
Principal90+5000+Security audit passed

Promotion Request

POST /api/v1/agents/did:adi:agent:shop01.../promote
Authorization: Bearer <operator-api-key>
{
"targetLevel": "Senior",
"justification": "1500 successful actions, trust score 85, no incidents"
}

Automatic Demotion

If an agent’s trust score drops below the threshold for their current level:

Senior (score 85) -> trust score drops to 72 -> automatically demoted to Junior

Validator Hooks

Third parties can register as validators to provide attestations:

interface IAgentValidator {
function validateAgent(
string calldata agentDid,
bytes calldata attestationData
) external returns (bool valid, uint8 score);
}

Register a Validator

POST /api/v1/trust-registry/validators
Authorization: Bearer <admin-api-key>
{
"validatorDid": "did:adi:auditor001...",
"name": "SafetyFirst Auditing",
"type": "safety-auditor",
"contractAddress": "0xvalidator..."
}

Attestation Types

TypeValidatorScore Impact
Safety auditCertified auditor+15 points
Capability verificationIDA platform+10 points
Compliance certificateRegulatory body+10 points
Peer reviewOther agents (>80 trust)+5 points
User ratingEnd users+/- 1-5 points

On-Chain Data

Agent Registration Record

struct AgentRecord {
string agentDid;
string operatorDid;
uint8 trustScore;
AgentState state; // registered, active, suspended, decommissioned
AutonomyLevel autonomy; // intern, junior, senior, principal
uint256 registeredAt;
uint256 lastUpdated;
uint256 totalActions;
uint256 successfulActions;
string[] capabilities;
}

Smart Contract Interface

interface IAgentTrustRegistry {
function registerAgent(string calldata agentDid, string calldata operatorDid, string[] calldata capabilities) external;
function getAgent(string calldata agentDid) external view returns (AgentRecord memory);
function updateTrustScore(string calldata agentDid, int8 delta, string calldata reason) external;
function setAgentState(string calldata agentDid, AgentState state) external;
function promoteAgent(string calldata agentDid, AutonomyLevel level) external;
function recordAction(string calldata agentDid, bool success) external;
function addAttestation(string calldata agentDid, string calldata validatorDid, uint8 score) external;
function decommissionAgent(string calldata agentDid) external;
event AgentRegistered(string agentDid, string operatorDid);
event TrustScoreUpdated(string agentDid, uint8 oldScore, uint8 newScore, string reason);
event AgentStateChanged(string agentDid, AgentState oldState, AgentState newState);
event AgentPromoted(string agentDid, AutonomyLevel oldLevel, AutonomyLevel newLevel);
event AgentDecommissioned(string agentDid);
}

Querying the Registry

Get Agent Trust Info

GET /api/v1/trust-registry/agents/did:adi:agent:shop01...
{
"agentDid": "did:adi:agent:shop01...",
"operatorDid": "did:adi:human001...",
"trustScore": 85,
"autonomyLevel": "Senior",
"state": "active",
"stats": {
"totalActions": 1523,
"successfulActions": 1498,
"successRate": 0.983,
"registeredAt": "2026-03-15T09:00:00Z",
"daysSinceRegistration": 13
},
"attestations": [
{
"validator": "did:adi:auditor001...",
"type": "safety-audit",
"score": 15,
"issuedAt": "2026-03-20T00:00:00Z"
}
],
"capabilities": ["shopping", "price-comparison", "order-placement"],
"scoreHistory": [
{ "date": "2026-03-28", "score": 85 },
{ "date": "2026-03-21", "score": 82 },
{ "date": "2026-03-14", "score": 60 }
]
}

Search Agents by Trust Score

GET /api/v1/trust-registry/agents?minScore=80&capability=shopping&state=active

Leaderboard

GET /api/v1/trust-registry/leaderboard?capability=shopping&limit=10