Arcantis. Private transfers in a few calls.
Our TypeScript SDK for confidential transfers on Solana. It handles the keys, the zero-knowledge proofs and the transactions, in Node and in the browser.
The whole lifecycle, one call at a time.
Press the calls in order and watch Alice's balance move from public to encrypted and back. The code is the SDK's real API; the run is simulated in your browser.
Built for real use.
One prompt, five transactions
A transfer's proofs and transactions are signed together, so a wallet asks once. If a step fails halfway, the proof accounts are closed and the rent returned.
Keys from the wallet
One signature over a fixed message derives the encryption keys, the same way Solana's own tools do. Nothing to store, recoverable from the wallet.
Works with rules
On mints with a transfer hook, such as Vigilantis, the SDK adds the accounts the hook needs. No extra code.
An auditor view
An auditor key reads every amount on a mint without being able to spend, and exports the activity as a CSV.
Node and the browser
Bundlers pick the browser build by themselves. A complete Vite app runs in CI with a test wallet on every push.
Typed errors
Every case the SDK checks throws an error with a code, such as insufficient funds or an expired transaction.
Start in a minute.
Self-audited, not independently audited yet. Confidential transfers need Solana's ZK ElGamal Proof Program, which is enabled on devnet and on mainnet.
$ npm install @softseco/confidential-transfers @solana/kitArcantis is the SDK's new name. Until the audited release it is published as @softseco/confidential-transfers; a Rust crate with the core helpers is on crates.io. The audited release, Arcantis 1.0.0, comes under the Business Source License 1.1; the versions released so far stay Apache-2.0.
Add rules to your token.
Arcantis moves the money privately. Vigilantis decides who may receive it.