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