Lantern

Verify Filecoin from your own machine.

A pure-Go Filecoin light client. Zero CGo, no filecoin-ffi, no Rust. Every block header, finality cert, and state read verified locally.

What Lantern is

A light client that doesn't ask you to trust anyone.

πŸͺΆ
~1 GB on disk
Headers, F3 certs, hot state. Not 76 GB. Bootstraps in minutes, not hours.
πŸ”
Verified, not trusted
Every header BLS-verified. F3 finality certificates. DRAND beacons. IPLD state proofs. You don't trust an RPC β€” you verify it.
⚑
Pure Go, one binary
CGO_ENABLED=0. No filecoin-ffi. No Rust. Cross-compile to Linux/macOS/arm64 from anywhere.
πŸ”Œ
Lotus-compatible RPC
71/71 of Curio's FULLNODE_API surface. Drop in as a primary or secondary node β€” your tools won't notice.
🦊
eth_* methods
Full coverage: getBalance, call, estimateGas, sendRawTransaction, feeHistory, newHeads subscriptions. Works with wallets and dapps.
πŸ“¦
Embeddable
pkg/daemon exposes Lantern as a Go library. Curio Core ships with it embedded.
Trust model

Four cryptographic anchors

Lantern doesn't pick a node and hope. Every claim about the chain is checked against an independent root.

BLS
Every block header's aggregate BLS signature verified locally against the active power table.
F3
Finality certificates from Filecoin's F3 layer give cryptographic finality, not just probabilistic.
DRAND
Beacons fetched and verified against DRAND's public key β€” the same randomness Filecoin uses for proofs.
IPLD
State reads return content-addressed proofs from the chain itself, not whatever an RPC says.
Install

One line

macOS Β· Linux Β· arm64 + amd64. Signed binaries hosted on Cloudflare.

# install
$ curl -fsSL https://get.golantern.io | bash
# run mainnet
$ lantern daemon
# run calibration
$ lantern daemon --filecoin-network=calibration
Prefer to build from source? github.com/Reiers/lantern
Embed

A chain node, in your binary

Since v1.5.0, Lantern ships pkg/daemon β€” an embeddable Daemon API. Pull it in as a Go dependency, mint your own admin JWT, and call it like any local server.

// go.mod
require github.com/Reiers/lantern v1.7.22

// main.go
import "github.com/Reiers/lantern/pkg/daemon"

d, _ := daemon.New(daemon.Config{
    Network: "mainnet",
    DataDir: "/var/lib/lantern",
})
// Lotus-compatible /rpc/v1 served in-process
go d.Run(ctx)
token := d.AdminToken()
See it in production: Curio Core β†’
Releases

Shipping fast

  1. v1.7.22 Β· current
    Background-service install hardening: keystore passphrase wired into the generated unit/plist (encrypted via --passphrase-file, unencrypted read-only nodes start clean on a non-TTY).
  2. v1.7.19
    Operational resilience: stale-restart auto-heal (re-anchors near live head past deep lag) and on-disk secrets/ isolation with rolling auto-backups β€” recovery ops structurally can't delete keys.
  3. v1.7.16
    Block path off Glif: libp2p Bitswap mounted as a high-priority source over Filecoin's /chain/ipfs/bitswap protocol. Balance, nonce, and send all served locally, zero gateway block-fetch.
  4. v1.7.7
    Local write path, end to end: eth_sendRawTransaction β†’ MpoolPush and receipt β†’ StateSearchMsg, all resolved locally and byte-identical to the gateway. Pure-Go ETH↔Filecoin tx codec.
  5. v1.7.0
    The zero-Glif keystone. Pure-Go FEVM eth_call + on-head contract prefetch + state-block availability. Read path served 100% locally, no third-party RPC.
  6. v1.5.0
    Embeddable pkg/daemon. Inline JSON-RPC. AdminToken minting. The release that made Curio Core possible.
Full history: CHANGELOG.md