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