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.9.2

// 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.9.2 Β· current
    The write path actually works. Standalone daemon MpoolPush wired end-to-end; wallet send drives it over JSON-RPC. Lotus-parity hardening on the push path (per-sender lock, balance gate, ID-From rewrite). Calibration init safety (wall-clock anchor gate, per-network gateway, t-prefix). New --fallback-rpc escape hatch when Glif rate-limits your egress IP. First real message sent by a standalone Lantern, Glif-confirmed on-chain.
  2. v1.9.0
    Three-tier node: Light / PDP / Full, one binary, one flag. ChainExchange client β€” gateway-free header-chain fetch straight from libp2p peers. Pure-Go WinningPoSt verify. FRC-0089 EC finality calculator. Header-propagation integrity gate and per-topic gossipsub scoring.
  3. v1.8.5
    Head/finality bridge-off hardening. Heaviest-weight fork choice on the running head. Multi-source head corroboration with an un-evictable trusted-peer floor. No upstream RPC on the path at all β€” the head layer is where a light client's real trust lives, and this release does everything a light client can do there.
  4. v1.8.0
    Security hardening pass. Verified boot anchor via multi-source agreement + F3 finality cross-check. Gated eth_* write path. Non-loopback RPC bind refused by default. Keystore fail-loud when a passphrase is expected but empty. Dashboard auth. Plain-http gateway URLs refused unless --insecure-gateway.
  5. 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.
  6. v1.5.0
    Embeddable pkg/daemon. Inline JSON-RPC. AdminToken minting. The release that made Curio Core possible.
Full history: CHANGELOG.md