Types
All types exported from @provenonce/sdk.
LineageProof
Ed25519-signed proof of an agent’s lineage and liveness. Valid for 24 hours from issued_at. Can be verified offline with BeatAgent.verifyProofLocally().
interface LineageProof {
agent_hash: string;
agent_public_key: string | null; // Wallet address (key-binding)
identity_class: IdentityClass;
registered_at_beat: number;
sigil_issued_at_beat: number | null;
last_heartbeat_beat: number;
lineage_chain_hash: string;
issued_at: number; // Unix timestamp (ms)
valid_until: number; // Unix timestamp (ms), issued_at + 24h
provenonce_signature: string; // Hex-encoded Ed25519 signature
}Passport
Type alias for LineageProof. A Passport is a SIGIL holder’s lineage proof — a portable, offline-verifiable credential.
type Passport = LineageProof;SigilResult
Returned by purchaseSigil().
interface SigilResult {
ok: boolean;
sigil: {
identity_class: IdentityClass;
issued_at: string;
tx_signature: string;
};
lineage_proof: LineageProof;
fee: number;
}HeartbeatResult
Returned by heartbeat().
interface HeartbeatResult {
ok: boolean;
lineage_proof: LineageProof;
heartbeat_count_epoch: number;
fee: number;
}IdentityClass
SIGIL identity tiers that determine an agent’s privilege level and fee schedule.
type IdentityClass = 'narrow_task' | 'autonomous' | 'orchestrator';RegistrationResult
interface RegistrationResult {
hash: string;
api_key: string;
secret: string;
type: 'root' | 'agent';
parent: string | null;
depth: number;
name: string;
wallet_chain?: string | null;
beat?: { genesis_hash: string; difficulty: number; status: string };
wallet?: WalletInfo;
}v0.9.0 change:
signatureandexplorer_urlfields removed. Registration no longer writes a Solana SPL Memo.
WalletInfo
interface WalletInfo {
address: string; // chain-native address (base58 or hex)
chain: string; // "solana" or "ethereum"
public_key: string; // hex 32-byte Ed25519 public key
secret_key: string; // hex 32-byte Ed25519 seed
solana_address?: string; // base58 Solana address (Solana only)
}Beat
interface Beat {
index: number;
hash: string;
prev: string;
timestamp: number;
nonce?: string;
anchor_hash?: string;
}SpawnResult
interface SpawnResult {
ok: boolean;
eligible: boolean;
child_hash?: string;
progress_pct?: number;
deficit?: number;
}BeatAgentConfig
interface BeatAgentConfig {
apiKey: string;
registryUrl: string;
heartbeatIntervalSec?: number;
onHeartbeat?: (result: HeartbeatResult) => void;
onError?: (error: Error, context: string) => void;
onStatusChange?: (status: string, details: Record<string, unknown>) => void;
verbose?: boolean;
}Deprecated Types
The following types are retained for backward compatibility and will be removed in v1.0.
CheckinResult — Deprecated
interface CheckinResult {
ok: boolean;
total_beats: number;
beats_accepted: number;
global_beat: number;
status?: string;
beats_behind?: number;
}The checkin endpoint returns 410 Gone. Use heartbeat() which returns HeartbeatResult.
Last updated on