LND Go Libraries
LND ecosystem provides several Go modules.
GitHub: github.com/lightningnetwork/lnd and github.com/lightninglabs/.
lnrpc (LND gRPC client)
import "github.com/lightningnetwork/lnd/lnrpc"
import "google.golang.org/grpc"
conn, _ := grpc.NewClient("localhost:10009",
grpc.WithTransportCredentials(creds),
grpc.WithPerRPCCredentials(macaroon))
client := lnrpc.NewLightningClient(conn)
info, _ := client.GetInfo(ctx, &lnrpc.GetInfoRequest{})
grpc.Dial/grpc.DialContext are deprecated in favour of grpc.NewClient
(added in grpc-go v1.63.0; the old entry points still compile and are
promised support "throughout 1.x" as of grpc-go v1.83.2, August 2026).
NewClient defaults to the dns resolver instead of passthrough, so a
custom dialer (Tor SOCKS) needs the passthrough resolver named in the
target, which upstream spells passthrough:target. unix:///path
targets are unaffected: grpc-go registers dedicated unix and
unix-abstract resolvers.
Subservers
walletrpc— wallet ops.routerrpc— payments.chainrpc— chain notifications.signrpc— message signing, scripts.invoicesrpc— invoice subscriptions.wtclientrpc— watchtower client.
neutrino
BIP157/158 light client:
import "github.com/lightninglabs/neutrino"
cfg := neutrino.Config{
DataDir: "/path",
Database: db,
ChainParams: chaincfg.MainNetParams,
ConnectPeers: []string{"node1:8333"},
}
chainSvc, _ := neutrino.NewChainService(cfg)
chantools
CLI for LND channel recovery:
chantools recoverloop \
--rootkey <xprv> \
--frominactive
loop / pool clients
For Lightning Loop and Pool:
import "github.com/lightninglabs/loop/looprpc"
Use cases
- Backend services that integrate with LND.
- Custom monitoring / analytics tooling.
- Light-client-based apps (Neutrino).