use proofgate::{ProofGate, ValidateRequest, VerificationStatus};
#[tokio::main]
async fn main() -> Result<(), proofgate::Error> {
let api_key = std::env::var("PROOFGATE_API_KEY")
.unwrap_or_else(|_| "pg_your_api_key".to_string());
let pg = ProofGate::new(&api_key)?;
let result = pg.validate(ValidateRequest {
from: "0x1234567890123456789012345678901234567890".to_string(),
to: "0xabcdefabcdefabcdefabcdefabcdefabcdefabcd".to_string(),
data: "0xa9059cbb0000000000000000000000001234567890123456789012345678901234567890000000000000000000000000000000000000000000000000000000000000000a".to_string(),
value: Some("0".to_string()),
guardrail_id: None,
chain_id: Some(56), }).await?;
println!("Validation ID: {}", result.validation_id);
println!("Result: {:?}", result.result);
println!("Safe: {}", result.safe);
println!("Reason: {}", result.reason);
if !result.checks.is_empty() {
println!("\nChecks:");
for check in &result.checks {
let status = if check.passed { "✅" } else { "❌" };
println!(" {} {} - {}", status, check.name, check.details);
}
}
let agent = pg.check_agent("0x1234567890123456789012345678901234567890").await?;
println!("\nAgent Trust Score:");
println!(" {} {} ({})", agent.tier_emoji, agent.trust_score, agent.tier_name);
println!(" Status: {:?}", agent.verification_status);
if agent.verification_status == VerificationStatus::Verified {
println!(" ✅ This agent is ProofGate verified");
} else {
println!(" ⚠️ Exercise caution with this agent");
}
Ok(())
}