Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zkCoins API

Private Bitcoin payments via Shielded CSV — no new chain, no token, no consensus change, no trusted operator. Only Bitcoin, zero-knowledge proofs, and the user's own keys.

The public API layer for zkCoins — REST + LNURL on top of the node's internal kernel RPC. This is the multi-tenant, hosted-wallet service surface that wallets, the SDK, and the explorer speak. It is optional and operator-run; the trustless core is the node.

Full system docs: docs.zkcoins.com · Specification: docs.zkcoins.com/specification

What zkCoins is

zkCoins lets you send value on Bitcoin without anyone seeing the amount, the asset, who paid, or who received. Bitcoin stores only opaque markers that a spend happened — not the coin's contents, which travel privately between sender and receiver as a small encrypted bundle. Double-spend protection is the chain's job; your seed derives every key, your wallet is the only thing that can spend, any node can serve you, and you verify everything against Bitcoin yourself. Built on the zkCoins concept (Robin Linus) and the Shielded CSV construction (Jonas Nick, Liam Eagen, Robin Linus).

The system, end to end

Layer What it is Repo
App · Explorer end-user wallet (LNURL receive) · public explorer web-app zk-coins/app · zk-coins/explorer
SDK thin TypeScript client — on-device keys, signing, node/API calls zk-coins/sdk
zkCoins API public REST + LNURL, hosted-wallet service (optional) zk-coins/api ← this repo
zkCoins node trustless kernel — scan · accumulator · verify · prove · store · publisher zk-coins/node
bitcoind · Nostr relay Bitcoin L1 settlement and ordering · off-chain transport and data availability upstream (own or external)

Supporting repos: zk-coins/research, zk-coins/plonky2, zk-coins/docs.

This repository (api)

The API layer sits outward of the node. It consumes the node's internal kernel RPC (gRPC kernel.v1, specification §7.8) and exposes the public REST API (§7.5) plus LNURL/aliasing to wallets, the SDK, the app, and the explorer — REST outward, gRPC inward.

  • It owns its own, non-value-bearing database (LNURL mappings, username/aliasing, rate-limits, push-subscription registrations). The value-bearing data — coins, proofs, bundles, the nullifier accumulator — stays in the node (§4.8); the API layer never touches the node's database directly.
  • It never touches Bitcoin and holds no SPEND key. Capability-gating, rate-limiting, and the LNURL receive flow live here; proving, broadcasting, and chain scanning stay in the node.
  • Running it is optional: a sovereign personal node serves its own wallet directly; the API layer is the "public service node" role that hosts other accounts.

Status: scaffold. The API surface is currently served by zk-coins/node directly; this repo will hold the standalone API layer once the kernel RPC contract stabilises. The full design is specified in §6.1 (kernel and API), §7.5 (REST), and §7.8 (kernel RPC).

License

MIT

About

zkCoins API layer — public REST + LNURL on top of the node kernel RPC (scaffold)

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors