An AMA for the Newest Kid in Town
This week was a straight-up AMA about Stellar Private Payments (SPP), Nethermind’s privacy-pool implementation for Stellar. We played around with Nethermind’s demo on a stream a couple of months back, and the August 6 confidential-tokens Q&A kept pointing at SPP as the tool you reach for when you need counterparty privacy rather than hidden amounts. So this time we went to the source. A few days before the stream we asked on X and in the developer Discord for your questions; my job was to read them to Antonio Larriba from Nethermind, who joined from Europe at 8 p.m. his time and took the whole hour in stride. Quick introduction, since the Electric Capital developer numbers for Stellar keep climbing and a lot of you are new here: Antonio is a computer scientist with a PhD in cryptography — electronic voting and anonymous identification, specifically — and has been a cryptography engineer at Nethermind for a bit over three years. He has led the Stellar Private Payments work for the whole project. He also blamed Cryptonomicon, read as a teenager, for the privacy obsession. There is clearly a story there; I did not ask, since it is private. The questions came mostly from builders in LATAM and the MENA region, and they were largely conceptual: people understand how SPP differs from confidential tokens, they wanted to know how the design actually holds up.What “Compliance” Means Inside a Pool
The first question came from a developer in Turkey who had read both the Nethermind blog post and ours and kept snagging on one sentence they share: privacy and compliance are not opposing requirements. Fine — but what does compliance mean concretely? What can a regulator, an issuer, or an auditor actually do with an SPP pool? Antonio’s framing: a fully private pool is easy to build, and history shows what happens next — honest users end up sharing a pool with hacked funds, and everyone’s money is tainted by association. Compliance in SPP is the set of rules that keeps bad actors out without making the privacy useless, and it is part of the protocol, not an add-on:- Every interaction is a zero-knowledge proof that you own funds in the pool, that they are really part of the pool, and that they have not been spent.
- On top of that, you prove membership in a whitelist and non-membership in a blocklist. These lists are called association sets, and the parties maintaining them are Association Set Providers (ASPs).
- The rules are configurable per pool. An ASP could implement a blocklist mirroring a government sanctions list, or a whitelist that is ZK-friendly and never asks for personal information. Or a pool operator can run a pool with no whitelist and no blocklist at all — fully private, no admin superpowers, “for the good and the bad,” as Antonio put it.
Where SPP Sits in the Privacy-Pool Family
I asked Antonio where SPP lands in the wider privacy landscape, and he was refreshingly unbothered about being first: SPP is a privacy pool, in the lineage of private notes spent inside circuits. Tornado Cash is the famous one, Railgun uses similar techniques, and a handful of newer teams are working on compliance-aware pools too. The shared goal is severing the public link between an origin account and a destination account. What makes SPP interesting is the feature set layered on top of that, which is where we spent the middle of the call.The Feature List, For the Hackathon Crowd
Antonio led with the packaging, because there is a hackathon on and I personally know more than five teams building on SPP right now:- A TypeScript SDK on npm and a Rust SDK on crates.io, both named
stellar-private-payments. They are new, so feedback and bug reports are genuinely wanted. - Deposit and withdraw to break the origin-destination link. The privacy you get is statistical and scales with the anonymity set — the number of people using the pool.
- Internal transfers: you can pay other people, trade, or move funds between your own accounts without leaving the pool, so none of that activity leaks.
- Selective disclosure: generate a proof that you own, say, ten notes with a given balance, without revealing your secrets or any personal information. Useful when you need to show an honest origin of funds without opening everything up.
- An optional global view key. Some pools are being deployed where users encrypt certain secrets to a pool administrator, who can decrypt them off-chain when legally required and audit the trace. It is view-only — your funds can only ever be spent by you — and whether a pool enables it is, again, configurable. Institutions want this, and institutions are where the volume (and therefore the anonymity set) will come from.
- A CLI, which Antonio rightly pointed out is the natural interface if you want to hand an agent a set of tools and let it operate the pool for you.