Skip to main content

Reputation Registry

The Reputation Registry allows clients to submit feedback about agents and query aggregated reputation scores.

Submit Feedback

use alloy::primitives::U256;

let reputation = client.reputation()?;

// Submit positive feedback for agent #1
reputation.submit_feedback(
U256::from(1), // agent ID
5, // score (1-5)
"Excellent weather forecasts, highly accurate.",
).await?;

Revoke Feedback

// Revoke previously submitted feedback
reputation.revoke_feedback(U256::from(1)).await?;

Query Reputation

Aggregated Summary

let summary = reputation.get_summary(U256::from(1)).await?;

println!("Average score: {}", summary.average_score);
println!("Total reviews: {}", summary.total_reviews);

List Feedback Entries

let entries = reputation.list_feedback(U256::from(1)).await?;

for entry in entries {
println!("{}: {} — {}", entry.client, entry.score, entry.comment);
}

List Clients Who Reviewed

let clients = reputation.list_clients(U256::from(1)).await?;

Off-chain Feedback Type

The SDK includes an off-chain Feedback type for building and serializing feedback:

use erc8004::types::Feedback;

let feedback = Feedback {
agent_id: 1,
score: 5,
comment: "Excellent service".to_owned(),
timestamp: chrono::Utc::now(),
};
  • Identity — register agents on-chain
  • Networks — deployed contract addresses