Skip to content

How It Works ​

Pridge achieves privacy through a simple but effective mechanism: disposable intermediate addresses.

The Flow ​

┌─────────────────────────────────────────────────────────────┐
│                         STEP 1: GENERATE                     │
│  Browser generates fresh Solana keypair                      │
│  Private key stored only in memory                           │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│                         STEP 2: BRIDGE                       │
│  Connect MetaMask → Select chain → Enter amount              │
│  deBridge transfers assets to disposable address             │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│                         STEP 3: SAVE LINK                    │
│  Claim URL contains private key in fragment                  │
│  Example: pridge.io/#<base58_encoded_private_key>           │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│                         STEP 4: CLAIM                        │
│  Open claim link → Enter destination → Claim                 │
│  Funds transfer to any Solana wallet                         │
└─────────────────────────────────────────────────────────────┘

Why URL Fragments? ​

The private key is stored in the URL fragment (the part after #):

https://pridge.io/#3bkJCGFKYvkogDh3fjv8VLsCVmFn9tt...
                   ↑
                   Fragment (never sent to server)

Per HTTP specification, URL fragments are never transmitted to servers. They exist only in your browser.

The Privacy Guarantee ​

On-chain, the only visible transactions are:

  1. Source → Disposable: Your EVM wallet sends to a random Solana address
  2. Disposable → Destination: The disposable address sends to your final wallet

There is no transaction linking these two. The disposable address is:

  • Generated randomly
  • Used once
  • Discarded after claiming

Technical Components ​

Keypair Generation ​

typescript
// Uses Solana's Keypair.generate() with browser's crypto.getRandomValues()
const disposable = Keypair.generate();
typescript
// Private key encoded as base58
const fragment = bs58.encode(keypair.secretKey);
const claimUrl = `${origin}/#${fragment}`;

Asset Transfer ​

On claim, Pridge:

  1. Checks for SPL tokens (including wSOL)
  2. Automatically unwraps wSOL to native SOL
  3. Transfers all assets to the destination
  4. Closes token accounts (recovers rent)

What deBridge Sees ​

deBridge processes the cross-chain transfer but only knows:

  • Source: Your EVM wallet address
  • Destination: The disposable Solana address

They never see your final destination wallet.

Privacy-first cross-chain bridge