Skip to main content

DeriveNextKey

DeriveNextKey attempts to derive the next key within the key family (account in BIP43) specified. This method should return the next external child within this branch.

Source: walletrpc/walletkit.proto

gRPC

rpc DeriveNextKey (KeyReq) returns (KeyDescriptor);

REST

HTTP MethodPath
POST /v2/wallet/key/next

Code Samples

const fs = require('fs');
const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');

const GRPC_HOST = 'localhost:10009'
const MACAROON_PATH = 'LND_DIR/data/chain/bitcoin/regtest/admin.macaroon'
const TLS_PATH = 'LND_DIR/tls.cert'

const loaderOptions = {
keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true,
};
const packageDefinition = protoLoader.loadSync(['lightning.proto', 'walletrpc/walletkit.proto'], loaderOptions);
const walletrpc = grpc.loadPackageDefinition(packageDefinition).walletrpc;
process.env.GRPC_SSL_CIPHER_SUITES = 'HIGH+ECDSA';
const tlsCert = fs.readFileSync(TLS_PATH);
const sslCreds = grpc.credentials.createSsl(tlsCert);
const macaroon = fs.readFileSync(MACAROON_PATH).toString('hex');
const macaroonCreds = grpc.credentials.createFromMetadataGenerator(function(args, callback) {
let metadata = new grpc.Metadata();
metadata.add('macaroon', macaroon);
callback(null, metadata);
});
let creds = grpc.credentials.combineChannelCredentials(sslCreds, macaroonCreds);
let client = new walletrpc.WalletKit(GRPC_HOST, creds);
let request = {
key_finger_print: <int32>,
key_family: <int32>,
};
client.deriveNextKey(request, function(err, response) {
console.log(response);
});
// Console output:
// {
// "raw_key_bytes": <bytes>,
// "key_loc": <KeyLocator>,
// }

Messages

walletrpc.KeyReq

Source: walletrpc/walletkit.proto

FieldgRPC TypeREST TypeREST Placement
key_finger_print
int32integerbody
key_family
int32integerbody

signrpc.KeyDescriptor

Source: signrpc/signer.proto

FieldgRPC TypeREST Type
raw_key_bytes
bytesstring
key_loc
KeyLocatorobject

Nested Messages

signrpc.KeyLocator

FieldgRPC TypeREST Type
key_family
int32integer
key_index
int32integer