Expand description
Rust SDK for Self Agent ID — on-chain AI agent identity with proof-of-human.
§Quick Start
§Agent side (signing requests)
use self_agent_sdk::{SelfAgent, SelfAgentConfig, NetworkName};
let agent = SelfAgent::new(SelfAgentConfig {
private_key: "0x...".to_string(),
network: Some(NetworkName::Testnet),
registry_address: None,
rpc_url: None,
})?;
// Check on-chain status
let registered = agent.is_registered().await?;
// Auto-signed HTTP request
let response = agent.fetch("https://api.example.com/data", None, None).await?;§Service side (verifying requests)
use self_agent_sdk::{SelfAgentVerifier, VerifierConfig};
let mut verifier = SelfAgentVerifier::new(VerifierConfig::default());
let signature = "0x...";
let timestamp = "1700000000000";
let body = r#"{"test":true}"#;
let result = verifier.verify(signature, timestamp, "POST", "/api/data", Some(body)).await;
if result.valid {
println!("Verified agent: {:?}", result.agent_address);
}Re-exports§
pub use agent::AgentInfo;pub use agent::SelfAgent;pub use agent::SelfAgentConfig;pub use agent_card::AgentSkill;pub use agent_card::CardCredentials;pub use agent_card::SelfProtocolExtension;pub use agent_card::TrustModel;pub use agent_card::AgentInterface;pub use agent_card::A2ACapabilities;pub use agent_card::A2AProvider;pub use agent_card::SecurityScheme;pub use agent_card::JwsSignature;pub use agent_card::AgentExtension;pub use agent_card::Erc8004Service;pub use agent_card::Erc8004Registration;pub use agent_card::Erc8004AgentDocument;pub use agent_card::A2AOptions;pub use agent_card::GenerateRegistrationJsonOptions;pub use agent_card::get_provider_label;pub use agent_card::get_strength_color;pub use agent_card::generate_registration_json;pub use constants::headers;pub use constants::NetworkName;pub use ed25519_agent::Ed25519Agent;pub use ed25519_agent::Ed25519AgentConfig;pub use registration::RegistrationDisclosures;pub use registration::SignatureParts;pub use registration::SignedRegistrationChallenge;pub use registration::build_advanced_deregister_user_data_ascii;pub use registration::build_advanced_register_user_data_ascii;pub use registration::build_simple_deregister_user_data_ascii;pub use registration::build_simple_register_user_data_ascii;pub use registration::build_wallet_free_register_user_data_ascii;pub use registration::compute_registration_challenge_hash;pub use registration::get_registration_config_index;pub use registration::sign_registration_challenge;pub use registration_flow::DeregistrationRequest;pub use registration_flow::DeregistrationSession;pub use registration_flow::ProofRefreshRequest;pub use registration_flow::ProofRefreshResult;pub use registration_flow::RefreshSession;pub use registration_flow::RegistrationError;pub use registration_flow::RegistrationRequest;pub use registration_flow::RegistrationResult;pub use registration_flow::RegistrationSession;pub use registration_flow::request_proof_refresh;pub use verifier::AgentCredentials;pub use verifier::RateLimitConfig;pub use verifier::SelfAgentVerifier;pub use verifier::VerificationResult;pub use verifier::VerifierBuilder;pub use verifier::VerifierConfig;pub use verifier::VerifierFromConfig;
Modules§
- agent
- agent_
card - constants
- ed25519_
agent - Agent-side SDK for Self Agent ID using Ed25519 key pairs.
- registration
- Registration helpers for building
userDefinedDatastrings and signing registration challenges. - registration_
flow - REST-based registration and deregistration flow for AI agents.
- verifier
Enums§
- Error
- Errors that can occur in the SDK.