{
type: 'identity_attestation',
payload: {
/** Poseidon(provider_id, secret, context) - prevents double-spending; secret enforces cross-context unlinkability */
nullifier_hash: string,
/** Merkle root against which proof is verified */
merkle_root: string,
/** The ZK Proof (Groth16) */
proof: {
pi_a: string[],
pi_b: string[][],
pi_c: string[],
protocol: string
},
/** Public signals: [nullifier, merkle_root, context] */
public_signals: string[],
/** Provider type (for categorization only) */
provider: string
}
}