Powered by
Stellar
The settlement network. Confiroll settles every confidential payout on Stellar.
Soroban
Stellar’s smart-contract platform. Runs the confidential token, the vault, the payslip
anchor, and the passkey wallet.
Stellar Wallets Kit
Wallet connection and signing. Connects Freighter, xBull, Albedo, and more.
OpenZeppelin
The Confidential Token that hides amounts on-chain.
Nethermind
The on-chain zero-knowledge verifier for the confidential token’s proofs.
Circle CCTP
Cross-Chain Transfer Protocol. Bridges canonical USDC into the confidential balance.
Stellar Disbursement Platform
Vendored and headless. Channel-account pool, fee-bump, submit, and retry.
Privy
Email sign-in with an embedded Stellar wallet, no seed phrase.
Noir and bb.js
The proving toolchain that builds each payout’s zero-knowledge proof in your browser.
At a glance
Stellar
Stellar is the settlement layer. Every confidential payout, deposit, merge, and withdrawal is a Stellar transaction. Confiroll runs on the Stellar testnet. Two Stellar features are load-bearing:- CAP-15 fee-bumps. One account pays the network fee for another account’s transaction. This is how the fee sponsor makes every user action cost 0 XLM.
- Source-account authorization. Because the employer is the transaction source, the
confidential token’s
from.require_auth()is satisfied by an ordinary envelope signature, not a fragile auth entry. This is the basis of Fork B.
stellar.toml and health surfaces are served from sdp.confiroll.com, and the
BFF from api.confiroll.com.
Soroban
Soroban is Stellar’s smart-contract platform. Confiroll runs four Soroban components:Confidential Token
The OpenZeppelin token that holds encrypted balances and hides transfer amounts.
CctpVault
The employer-owned landing point for bridged USDC that deposits it into the confidential
balance.
PayslipAnchor
Stores one tamper-evidence hash per payroll cycle, never contents or amounts.
PasskeyWallet
A seedless contract account authorized by a WebAuthn passkey.
Stellar Wallets Kit
Confiroll connects wallets with Stellar Wallets Kit v2.5, which supports Freighter, xBull, Albedo, and other Stellar wallets behind one interface. It does two jobs:1
Sign-in (SEP-10)
The wallet signs a one-time SEP-10 challenge. This proves account ownership and issues a
session. It moves no funds and costs nothing.
2
Authorize a payout (Fork B)
The wallet signs the confidential transfer’s envelope with
signTransaction. Confiroll
never uses signAuthEntry, which is unreliable across wallets. The employer is the
transaction source, so a plain signature authorizes the transfer.Because signing is a plain envelope signature, all major Stellar wallets work, and Confiroll
can fee-bump the signed transaction without ever holding a key. See
The non-custodial model.
OpenZeppelin Confidential Token
The privacy primitive is OpenZeppelin’s Confidential Token. It behaves like a USDC-backed token, but balances and transfer amounts are encrypted on-chain. Each account holds a confidential scalarsk, from which the client derives a viewing key vk, a spending key Y,
and a public viewing key PVK. The lifecycle is register, deposit, confidential_transfer,
merge, and withdraw.
A confidential_transfer carries no plaintext amount argument: the value lives inside the
proof and the encrypted event fields, readable only with a viewing key. Deposit and withdraw
amounts are public by design. Full detail, including what is public versus hidden at each step,
is on Confidential token flow.
Nethermind
The confidential token’s zero-knowledge proofs are generated with Noir and bb.js (UltraHonk) and verified on-chain on Soroban by Nethermind’s verifier. The proving
transcript uses keccak Fiat-Shamir because that is what the on-chain verifier expects; a
proof built with any other transcript fails verification.
Circle CCTP
To bring canonical USDC across chains, Confiroll uses Circle’s Cross-Chain Transfer Protocol (CCTP). On testnet the source chain is Base Sepolia.1
Burn
USDC is burned on the source chain.
2
Attest
Circle attests the burn.
3
Mint into the vault
The attested message mints USDC into Confiroll’s
CctpVault contract.4
Deposit
The vault deposits the USDC into the employer’s confidential balance in one call.
Stellar Disbursement Platform
Confiroll vendors the Stellar Disbursement Platform (SDP) v6.6.1 (Apache-2.0) and runs it headless. It is not used as a disbursement platform. It provides reliable submission infrastructure only:Channel-account pool
Pre-provisioned accounts that source outbound transactions.
Fee-bump, submit, retry
Wraps a queued operation, fee-bumps it from the distribution account, submits, and retries.
Also in the stack
Privy
Email sign-in. Privy creates an embedded Stellar wallet and issues an access token that the
BFF exchanges for a session JWT. See API reference.
Noir and bb.js
The Aztec proving toolchain. Noir solves the witness and bb.js generates the UltraHonk
proof, both in your browser, so
sk and amounts never leave your device.