123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- syntax = "proto3";
- package signatory;
- service Signatory {
- rpc BlindSign(BlindedMessages) returns (BlindSignResponse);
- rpc VerifyProofs(Proofs) returns (BooleanResponse);
- // returns all the keysets for the mint
- rpc Keysets(EmptyRequest) returns (KeysResponse);
- // rotates the keysets
- rpc RotateKeyset(RotationRequest) returns (KeyRotationResponse);
- }
- enum Operation {
- OPERATION_UNSPECIFIED = 0;
- OPERATION_MINT = 1;
- OPERATION_MELT = 2;
- OPERATION_SWAP = 3;
- }
- message BlindSignResponse {
- Error error = 1;
- BlindSignatures sigs = 2;
- }
- message BlindedMessages {
- repeated BlindedMessage blinded_messages = 1;
- Operation operation = 2;
- string correlation_id = 3;
- }
- // Represents a blinded message
- message BlindedMessage {
- uint64 amount = 1;
- string keyset_id = 2;
- bytes blinded_secret = 3;
- }
- message BooleanResponse {
- Error error = 1;
- bool success = 2;
- }
- message KeyRotationResponse {
- Error error = 1;
- KeySet keyset = 2;
- }
- message KeysResponse {
- Error error = 1;
- SignatoryKeysets keysets = 2;
- }
- message SignatoryKeysets {
- bytes pubkey = 1;
- repeated KeySet keysets = 2;
- }
- message KeySet {
- string id = 1;
- CurrencyUnit unit = 2;
- bool active = 3;
- uint64 input_fee_ppk = 4;
- Keys keys = 5;
- }
- message Keys {
- map<uint64, bytes> keys = 1;
- }
- message RotationRequest {
- CurrencyUnit unit = 1;
- uint64 input_fee_ppk = 2;
- uint32 max_order = 3;
- }
- enum CurrencyUnitType {
- CURRENCY_UNIT_TYPE_UNSPECIFIED = 0;
- CURRENCY_UNIT_TYPE_SAT = 1;
- CURRENCY_UNIT_TYPE_MSAT = 2;
- CURRENCY_UNIT_TYPE_USD = 3;
- CURRENCY_UNIT_TYPE_EUR = 4;
- CURRENCY_UNIT_TYPE_AUTH = 5;
- }
- message CurrencyUnit {
- oneof currency_unit {
- CurrencyUnitType unit = 1;
- string custom_unit = 2;
- }
- }
- message Proofs {
- repeated Proof proof = 1;
- Operation operation = 3;
- string correlation_id = 4;
- }
- message Proof {
- uint64 amount = 1;
- string keyset_id = 2;
- bytes secret = 3;
- bytes c = 4;
- }
- message ProofDLEQ {
- bytes e = 1;
- bytes s = 2;
- bytes r = 3;
- }
- message SigningResponse {
- Error error = 1;
- BlindSignatures blind_signatures = 2;
- }
- message BlindSignatures {
- repeated BlindSignature blind_signatures = 1;
- }
- message BlindSignature {
- uint64 amount = 1;
- string keyset_id = 2;
- bytes blinded_secret = 3;
- optional BlindSignatureDLEQ dleq = 4;
- }
- message BlindSignatureDLEQ {
- bytes e = 1;
- bytes s = 2;
- }
- // Witness type
- message Witness {
- oneof witness_type {
- P2PKWitness p2pk_witness = 1;
- HTLCWitness htlc_witness = 2;
- }
- }
- // P2PKWitness type
- message P2PKWitness {
- // List of signatures
- repeated string signatures = 1;
- }
- // HTLCWitness type
- message HTLCWitness {
- // Preimage
- string preimage = 1;
- // List of signatures
- repeated string signatures = 2;
- }
- enum ErrorCode {
- ERROR_CODE_UNSPECIFIED = 0;
- ERROR_CODE_AMOUNT_OUTSIDE_LIMIT = 1;
- ERROR_CODE_DUPLICATE_INPUTS_PROVIDED = 2;
- ERROR_CODE_DUPLICATE_OUTPUTS_PROVIDED = 3;
- ERROR_CODE_KEYSET_NOT_KNOWN = 4;
- ERROR_CODE_KEYSET_INACTIVE = 5;
- ERROR_CODE_MINTING_DISABLED = 6;
- ERROR_CODE_COULD_NOT_ROTATE_KEYSET = 7;
- ERROR_CODE_INVALID_PROOF = 8;
- ERROR_CODE_INVALID_BLIND_MESSAGE = 9;
- ERROR_CODE_UNIT_NOT_SUPPORTED = 10;
- }
- message Error {
- ErrorCode code = 1;
- string detail = 2;
- }
- message EmptyRequest {}
|