STRK20 can only pay an address that has already published a viewing key. Xenia locks funds against a link — and the recipient’s very first transaction registers them and pays them at the same time.
Create a claim linkEvery private payment system on Starknet can already pay people who set themselves up first. That is the easy half. Xenia is built for the other half — the person who has never opened a private balance and does not know they need one.
The hard part of private payments is not the cryptography, it is the onboarding step that has to happen before the cryptography is any use. Xenia folds that step into the payment.
Setting a viewing key is phase 0 and an external invoke is phase 7, so both fit in one STRK20 transaction. The recipient never sees a setup step, because there is not one.
The claim opens a note whose amount is measured at execution. The escrow names the figure, so the claimant never has to restate an amount the sender chose.
The link carries a private key. Claiming signs the claimant’s own address, so a claim lifted out of the mempool authorises an address the thief does not control.
Every link has an expiry and a refund path keyed to the sender. Getting your money back is a button, not a support ticket.
A privacy tool that will not tell you its edges is not a privacy tool. These are ours.
Sees a hash of the link key and an escrow that holds a balance. Not who created it, and not who it was meant for.
Sees nothing. The key is in the fragment, which browsers do not transmit, and the claim is signed in your browser.
Can claim it. It is a bearer instrument, and we say so on the page rather than in a footnote.
One STRK20 transaction moves the amount out of your private balance and into escrow.
Seamlessly interoperable with native Cairo contracts, STRK20 tokens, and top Starknet wallets.
See all ecosystem integrations→
A wallet, yes. A configured private balance, no — that is the part Xenia removes. Their first Xenia transaction registers the viewing key and credits the note together.
It is stored in your browser under "my links" so you can re-copy it. If you clear that, wait for the expiry and refund the escrow — the money is on-chain and keyed to your address, not to anything we store.
They can read the transaction, but the signature inside it authorises one specific address. Replaying it pays the person it was already going to pay.
No. It is MIT-licensed and in the repository, the tests are in the repository, and the invariants are written down in the requirements document. Read it before you send an amount that matters.
Network fees, and nothing else. Xenia takes no cut and has no token.
Whether your recipient already uses private balances or installed their first wallet five minutes ago.
Full STRK20 support. Publishes viewing keys directly inside the claim invoke with zero extra prompts.
Supports multi-phase atomic transactions for channel opening and escrow execution in one signature.
Onboard and claim private funds using device biometrics with no seed phrase setup barrier.
Works with any @wallet-standard compliant client across browser extensions and mobile apps.
Open source, no fee, no token. Lock an amount against a link and send it the way you would send anything else.
Create a claim link