syntax = "proto3"; package nockchain.public.v1; option go_package = "./;nockchain"; import "types.proto"; service WalletService { rpc Keygen(KeygenRequest) returns (KeygenResponse); rpc ImportKeys(ImportKeysRequest) returns (ImportKeysResponse); rpc DeriveChild(DeriveChildRequest) returns (DeriveChildResponse); rpc CreateTx(CreateTxRequest) returns (CreateTxResponse); rpc SignTx(SignTxRequest) returns (SignTxResponse); rpc Scan(ScanRequest) returns (ScanResponse); } message KeygenRequest {} message KeygenResponse { string public_key = 1; string private_key = 2; string seed = 3; string chain_code = 4; string import_private_key = 5; string import_public_key = 6; } message ImportKeysRequest { string key = 1; ImportType import_type = 2; } message ImportKeysResponse { string public_key = 1; string private_key = 2; string seed = 3; string chain_code = 4; string import_private_key = 5; string import_public_key = 6; } message DeriveChildRequest { string imported_key = 1; uint64 index = 2; bool hardened = 3; } message DeriveChildResponse { string public_key = 1; string private_key = 2; string chain_code = 3; } message CreateTxRequest { string names = 1; string recipients = 2; string gifts = 3; uint64 fee = 4; bool is_master_key = 5; string key = 6; string chain_code = 7; uint64 index = 8; bool hardened = 9; TimelockIntent timelock_intent = 10; } message CreateTxResponse { RawTx rawTx = 1; } message SignTxRequest { string unsigned_tx = 1; uint64 index = 2; bool hardened = 3; } message SignTxResponse { string signed_tx = 1; string error = 2; } message ScanRequest { string master_pubkey = 1; string chain_code = 2; uint64 search_depth = 3; bool include_timelocks = 4; bool include_multisig = 5; } message ScanResponse { repeated ScanData scan_data = 1; }