Skip to main content

Crate self_agent_sdk

Crate self_agent_sdk 

Source
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 userDefinedData strings 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.