Skip to main content

Prover Service

service ProverService {
// Prove creates the proof for the transaction and returns the transaction
// with the proof attached. The transaction is *not* submitted to the network.
//
// The transaction is validated against the mempool and will return an error
// if it is an otherwise invalid transaction.
rpc Prove(ProveRequest) returns (ProveResponse) {}

// ProveAndSubmit creates the proof for the transaction and then submits it to
// the network. And error is returned if it fails mempool submission.
rpc ProveAndSubmit(ProveAndSubmitRequest) returns (ProveAndSubmitResponse) {}
}

RPC Messages

message ProveRequest {
// The full transaction with the proof set to nil
Transaction transaction = 1;
// The private (hidden) data for each input
repeated PrivateInput inputs = 2;
// The private (hidden) data for each output
repeated PrivateOutput outputs = 3;
}
message ProveResponse {
// The returned transaction with the proof attached
Transaction transaction = 1;
}

message ProveAndSubmitRequest {
// The full transaction with the proof set to nil
Transaction transaction = 1;
// The private (hidden) data for each input
repeated PrivateInput inputs = 2;
// The private (hidden) data for each output
repeated PrivateOutput outputs = 3;
}
message ProveAndSubmitResponse {
// The transaction ID of the transaction.
//
// If submission was unsuccessful and error will be returned.
bytes transaction_ID = 1;
}