Skip to main content

Bitsocial and Lapis Net

Lapis Net is a peer-to-peer social network protocol written in Kotlin for the JVM. It arrived independently at foundations close to Bitsocial's: keypair identities, IPFS-style content storage and libp2p gossipsub. The two differ in where they put spam filtering and curation. Lapis gives each viewer a personal trust graph and lets Bitcoin and Lightning payments raise visibility; Bitsocial lets each community decide what may be published.

Lapis is a working prototype. In October 2026 it had no public network yet, and connecting two nodes was a manual step, according to its repository.

How Lapis works​

  • Identities. Each identity is a secp256k1 keypair, compatible with Bitcoin keys, with an Ed25519 key bound to it for the libp2p peer ID.
  • Storage and propagation. Content is stored with Nabu, an IPFS implementation on libp2p (DHT and Bitswap), and spread with libp2p gossipsub.
  • Scoring. Four optional scores sit on top of a core that stays neutral about curation:
    • Veritas, a web of trust computed from each viewer's own trust graph
    • Virtus, visibility backed by on-chain or Lightning payment proofs that decay over time
    • Karma, free likes weighted by Veritas
    • Madli, a reputation score that nodes keep about each other's behaviour
  • Messaging. End-to-end encrypted direct messages, one-to-one voice calls and an e-mail-like asynchronous message system are part of the project.
  • Clients. Each user runs a JVM node. The reference client is a web interface served by that local node.

Where they differ​

Who filters spam​

Lapis filters at the viewer. Content propagates, then each viewer's trust graph and the payment rules of the app they use decide what surfaces. Bitsocial filters at the community: a post has to pass the community's challenge before the community node accepts it, so rejected spam never becomes part of the community. See Custom Anti-Spam Challenges.

Who holds power​

In Lapis, each viewer decides whom they trust, and the operator of each app decides how paid visibility works there. In Bitsocial, a community owner sets the rules for that one community, and apps choose what they show. Neither has a protocol-level administrator.

Economics​

Lapis builds Bitcoin and Lightning payment proofs into its visibility score. Bitsocial has no payment layer in the protocol; a community can require a payment or a token through its challenge.

Browser​

Bitsocial apps can run a peer-to-peer node inside a normal browser tab. See Browser Peer-to-Peer. Lapis's browser interface is a local page served by the user's JVM node.

Scope​

Lapis bundles direct messages, voice calls and mail. Bitsocial focuses on public communities and has no native direct messages yet.

Comparison​

QuestionLapis NetBitsocial
CategoryPeer-to-peer social protocol (prototype)Peer-to-peer community network
Identitysecp256k1 keypair with a bound Ed25519 peer IDEd25519 keypairs for users and communities
Where posts liveNabu (IPFS on libp2p) storage on participating nodesThe community owner's node and the peers that read and seed it
CommunitiesNo community object; curation happens per viewer and per appFirst-class objects whose node accepts or rejects posts
Spam controlViewer trust graph, paid visibility, Lightning deposits for first messagesEach community's challenge before a post is accepted
ModerationEach viewer's trust graph; app operators set paid-visibility rulesCommunity owners moderate their community; apps choose what they show
EconomicsBitcoin and Lightning payment proofs in scoringNone in the protocol; a challenge can require a payment or token
BrowserLocal web interface served by a JVM nodePeer-to-peer node inside a normal browser tab
NetworkPrototype without a public networkLive network with apps such as 5chan and Seedit
Main tradeoffRich built-in reputation and messaging, but no public network yetSmaller core that runs in browsers, but no built-in reputation or DMs

Could they work together?​

Bitsocial challenges are arbitrary code, so a Lapis-style trust score could become one. The built-in whitelist challenge can already read lists of allowed addresses from URLs. A service that published the Bitsocial addresses a Veritas graph trusts could let those authors skip a CAPTCHA in a community. That would need a way to link a Lapis identity to a Bitsocial address, and nothing like it exists today.