Skip to main content

RequiredReserve

RequiredReserve returns the minimum amount of satoshis that should be kept in the wallet in order to fee bump anchor channels if necessary. The value scales with the number of public anchor channels but is capped at a maximum.

Source: walletrpc/walletkit.proto

gRPC

rpc RequiredReserve (RequiredReserveRequest) returns (RequiredReserveResponse);

REST

HTTP MethodPath
GET /v2/wallet/reserve

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 = {
additional_public_channels: <uint32>,
};
client.requiredReserve(request, function(err, response) {
console.log(response);
});
// Console output:
// {
// "required_reserve": <int64>,
// }

Messages

walletrpc.RequiredReserveRequest

Source: walletrpc/walletkit.proto

FieldgRPC TypeREST TypeREST Placement
additional_public_channels
uint32integerquery

walletrpc.RequiredReserveResponse

Source: walletrpc/walletkit.proto

FieldgRPC TypeREST Type
required_reserve
int64string