Trade
Blue curly braces around a grid of white squares, on black
SDK · 3.3.0 · Apache-2.0

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.

Alicewallet 7xKp…a3Q9
Public balance1,000.00
Visible to anyone
Pending, encrypted0.00
Incoming, not yet spendable
Available, encrypted0.00
Spendable, readable only by Alice
Bob decrypts0.00
example.ts

          
$ node example.ts

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/kit

Arcantis 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.