Your bags are nobody’s business.
Veyl Layer is a privacy Layer 2 on Solana. Send $VEYL or SOL with the amount, token and recipient hidden.
Solana, with a
Veyl Layer runs next to Solana and settles back to it. Same programs, same tools, plus a pool where transfers stay private.
-
Real Solana VM
Agave’s solana-svm, embedded in the node. Your Solana programs run as is.
-
A private pool
A zero-knowledge pool for $VEYL and SOL. Amount, token and recipient stay hidden.
-
Gas in $VEYL
$VEYL is the native unit on Veyl Layer. Every fee is paid in it.
-
Settles to Solana
State roots and batch data are posted to Solana mainnet.
Nothing minted.
The bridge is the only thing that converts between 6 and 9 decimals, and it always rounds in the protocol’s favor.
-
1Deposit: ×1,000
12.345678 SPL $VEYL arrives as 12.345678000 native $VEYL. Three places added, nothing invented.
12,345,678 × 1,000 = 12,345,678,000 base units
-
2Hold: all nine places
On Veyl Layer every amount carries 9 decimals. Say your balance is now 12.345678912.
12,345,678,912 base units
-
3Exit: ÷1,000, rounded down
Only whole 1,000s of base units cross. 12.345678 goes back to Solana. The last 0.000000912 stays on Veyl Layer, still yours.
⌊ 12,345,678,912 ÷ 1,000 ⌋ = 12,345,678 · 912 stay
Try any amount.
Same integer math as the bridge, done exactly in your browser.
Exits move whole multiples of 1,000 base units. The rest stays yours.
⌊ 12,345,678,912 ÷ 1,000 ⌋ = 12,345,678 SPL base units · remainder 912
Escape hatch. If the operator stops or censors you, withdraw on Solana against the last valid root, under the same whole-unit rule.
SOL moves 1:1 with 9 decimals on both sides, and arrives on Veyl Layer as wrapped SOL.
Calculator only. No funds move here. The live bridge runs under deposit caps. It is custodial and not audited yet.
Try the bridge simulator$VEYL. One token,
Trade it on Solana. Use it on Veyl Layer. Same token, different decimals, converted only by the bridge.
6 decimals
On Solana
The SPL token. Tradeable, pump.fun-compatible, and what you bridge.
1 $VEYL = 1,000,000 base units
9 decimals
On Veyl Layer
Native. Pays every fee, holds your balance, moves in the private pool.
1 $VEYL = 1,000,000,000 base units
Contract address
Announced at launch
Only trust the address posted through the official links on this site.
Buy $VEYLYour Solana code runs
Veyl Layer embeds Agave’s solana-svm and speaks the Solana JSON-RPC. web3.js, wallet-adapter and the solana CLI work unchanged.
Sample session. # sample session: point the standard solana CLI at Veyl Layer $ solana config set --url $VEYL_RPC_URL Config File: ~/.config/solana/cli/config.yml RPC URL: $VEYL_RPC_URL Keypair Path: ~/.config/solana/id.json Commitment: confirmed $ solana balance 12.345678912 SOL # same CLI, so it says SOL. Here that unit is native $VEYL. $ solana program deploy target/deploy/counter.so Program Id: Cnt7r9QvZkW3pXh2MbYsL5aEdF8uGjN4oTqR1cVwKxBe # fees and rent are paid in $VEYL $ npx tsx balance.ts 12345678912 # base units: 12.345678912 $VEYL, 9 decimals
import { Connection, PublicKey } from "@solana/web3.js";
// Same Solana JSON-RPC. Set VEYL_RPC_URL once it is published.
const veyl = new Connection(VEYL_RPC_URL, "confirmed");
// native $VEYL balance, 9 decimals
const owner = new PublicKey(YOUR_ADDRESS);
const balance = await veyl.getBalance(owner);
console.log(balance); // base units
Runs unchanged
- solana CLIPoint it at the Veyl Layer RPC URL.
- Your BPF programsDeploy them with the same command.
- web3.jsSame JSON-RPC over HTTP and WebSocket.
- wallet-adapterYour dapp connects as it does on Solana.
- Preloaded programsSystem, SPL Token, Token-2022, ATA, Memo, Compute Budget.
Program state is public, like on Solana. The public RPC endpoint is published in Stage 9. The session above is a sample.
Try the JSON-RPC playgroundKnow exactly
v1 is a Stage-0 rollup with a single operator. Here is what that means today, and what removes each trust.
What you trust today
- One sequencer
- Orders transactions and can censor or reorder them.
- What fixes it: Escape hatch from day one. A sequencer set in Stage 10.
- Alarm, not veto
- Anyone can recompute the data and raise an alarm. Invalid roots aren’t rejected on-chain yet.
- What fixes it: Enforced fraud proofs in Stage 10.
- Visible fee payer
- The public fee path can link whoever pays the fee to a private transfer.
- What fixes it: The relayer, built in Stage 7.
Each lock removes trust.
- 01Escape hatch tested end to end
- 02Deposit caps in place
- 03Sound proof setup published
- 04External audit of the bridge and the private pool
Checked at the Stage 8 security gate, which is not passed yet. Until then the bridge is custodial, capped and unaudited.
Ten stages.
Live now,
A sequence, not a schedule. Every stage is built to production grade.
- Stage 1
Prove Solana programs run
Show the Solana VM running inside Veyl Layer.
- solana-svm on pinned Agave crates
- A System transfer, proven in a test
- Stage 2
A real chain
Blocks, state and a Solana-compatible RPC.
- Mempool and block production
- Solana JSON-RPC over HTTP and WebSocket
- Standard programs preloaded
- Stage 3
Lock it down
Protect the keys and keep the single sequencer healthy.
- Sequencer key in an HSM
- Rate limits and DDoS protection
- Monitoring and a failover plan
- Stage 4
See every block
Index the chain and make it browsable in an explorer.
- Indexer from slot 0
- Explorer with live updates
- Stage 5
Anchor to Solana
Write Veyl Layer’s record onto Solana mainnet.
- Settlement program on Solana
- State roots and batch data posted
- Rollup status in the explorer
- Stage 6
Bridge and exit door
Move SOL and $VEYL between chains, with a forced exit built in, tested before real value went in.
- Deposits, withdrawals and claims
- 6 to 9 decimal scaling
- Escape hatch, deposit caps kept closed
- Stage 7
Turn on the veyl
The private pool, the client that finds your notes, and the relayer.
- Circuits and the proof system
- Shielded pool inside the node
- Shielded client and relayer
- Stage 8
Prove it’s safe first
Audit, publish the proof setup, test the escape hatch.
- Internal review, then an external audit
- Proof setup published
- Escape hatch tested end to end
Security gate Not passed yet. The bridge runs before it.
- Stage 9
Open the doors, carefully
Real value goes in, slowly and under caps.
- Bridge opens under conservative caps
- Private pool: $VEYL first, then wSOL
- Public RPC and explorer published
- Stage 10
Harden and decentralize
Remove trust from the operator and widen what the bridge carries.
- Relayer for everyone, encrypted mempool
- Enforced fraud proofs, then a sequencer set
- More assets over the bridge
Straight
Something missing? Ask on Telegram
Is Veyl Layer trustless?
Not in v1, and we say so up front. It starts as a Stage-0 rollup: one sequencer that can censor or reorder, and a challenge window where anyone can raise an alarm but bad roots aren’t rejected on-chain yet. The escape hatch lets you exit on Solana if the sequencer fails you.
Do I need SOL for gas?
Not on Veyl Layer. Every fee there is paid in $VEYL, and SOL only exists on the L2 as bridged wrapped SOL. Deposits and withdrawal claims happen on Solana, so those transactions pay Solana’s own fees in SOL.
Does Phantom work?
On Solana, yes: SPL $VEYL is a standard SPL token. On Veyl Layer, the RPC is built so wallet-adapter works unchanged, and a wallet can connect if it lets you set a custom network. Private notes need a shielded client, like the one in the Veyl Layer SDK.
What if the sequencer goes offline or blocks me?
Use the escape hatch: a forced-withdrawal path on Solana that pays out against the last valid posted root, with the same whole-unit rule as a normal exit. It must pass an end-to-end test at the security gate before any real value goes in.
Is it audited?
Not yet. Stage 8 runs an internal review, then an external audit of the bridge and the private pool. Both already run with real value under deposit caps, and the bridge is custodial, so deposit only what you can afford to lose.
When is mainnet?
Veyl Layer already settles to Solana mainnet. The bridge is in a short test phase and opens to everyone at the $VEYL launch, under deposit caps. The contract address will be announced at launch through the official links on this site.
Watch it get built. Stage by stage.
Contract address: announced at launch