pub struct AttestRequest {
pub program_id: String,
pub input_bytes: Vec<u8>,
pub stdin_items: Vec<Vec<u8>>,
pub claimed_output: Option<Value>,
pub verify_locally: bool,
pub external_id: Option<String>,
pub intent_commitment: Option<String>,
pub verified_fields: Option<Vec<String>>,
pub field_values: Option<HashMap<String, String>>,
pub intent_type: Option<String>,
}Expand description
Request to the attester service to generate a ZK proof
Fields§
§program_id: String§input_bytes: Vec<u8>Input data as raw bytes (bincode-serialized)
Will be passed to the zkVM program via stdin as a single buffer entry.
For programs that call io::read() multiple times, use stdin_items instead.
stdin_items: Vec<Vec<u8>>Multiple stdin buffer entries (each pushed separately).
When present, each entry maps to one sp1_zkvm::io::read() call.
Takes precedence over input_bytes when non-empty.
claimed_output: Option<Value>Expected output for verification (optional, format defined by agent)
verify_locally: boolWhether to verify the proof locally before returning
external_id: Option<String>Optional external transaction ID (payment processor binding). When present, the attester auto-saves the proof keyed by this ID so the payment processor can pull it directly — bypassing the LLM.
intent_commitment: Option<String>Intent commitment: SHA-256(proof_hash || “||” || external_id). Stored alongside the proof for retrieval by the payment processor.
verified_fields: Option<Vec<String>>Fields verified in the proof (e.g. [“amount”, “quantity”, “product_id”]).
field_values: Option<HashMap<String, String>>Actual field values proven (e.g. {“recipient_address”: “0x…”, “token”: “ETH”}). Stored alongside the proof so the payment processor can validate values without re-running the ZKP — the commitment scheme ensures correctness.
intent_type: Option<String>Intent type detected by the ZPI tool (e.g. “send_intent”, “spend_intent”, “exchange_intent”). Stored as workflow_stage on the attester side.
Trait Implementations§
Source§impl Clone for AttestRequest
impl Clone for AttestRequest
Source§fn clone(&self) -> AttestRequest
fn clone(&self) -> AttestRequest
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more