Solana Social Wallet logoSolana Social Wallet

Non-custodial · End-to-end encrypted · Mainnet-beta

A Solana wallet where the keys never leave your machine.

Hold SOL and SPL tokens, send mainnet transactions with an explicit confirmation, and message other addresses with end-to-end encryption. The recovery phrase and private key are encrypted on your device and never sent anywhere.

Buy on Pump.fun
CA 3D1wqK4j1eQrwGcN2hLHT7UUWR1QCEerZVpB8HJZpump
/wallet.html live

What it does

Everyday wallet, with private messaging built in.

Six things it handles, without sending anything sensitive off your device.

Non-custodial vault

Create or import a wallet. The secret key is encrypted locally with AES-256-GCM and PBKDF2 (600k iterations), and auto-locks after idle.

Send SOL & track SPL

Transfer SOL on mainnet with the network fee reserved automatically, plus SPL token balances and recent transaction history.

Encrypted chat

Messages are encrypted with ECDH P-256 + AES-GCM. The relay only stores signed ciphertext — it never sees the plaintext.

Signed identity

Chat profiles and message envelopes are signed with your Solana key, binding each address to its public chat key.

dApp connect

The extension exposes a Phantom-style provider with an approval window for every connect and signature. Nothing is signed automatically.

Persistent relay

The relay runs on SQLite with rate limiting, a CORS allowlist, signature verification, and replay protection.

Under the hood

How an encrypted message travels.

Nothing readable ever reaches the relay — it only ever holds signed ciphertext.

Youcompose a message
EncryptECDH P-256 + AES-GCM
SignEd25519 (your wallet)
Relaystores ciphertext only
Peerdecrypts locally
bit AES-GCM vault
PBKDF2 iterations
keys sent to a server
client-side crypto

Security model

Three rules it never breaks.

Keys stay local

The recovery phrase and private key are never sent to any server. They live encrypted on your device, decrypted only in memory after you unlock.

No auto-sign

Every mainnet transaction and every dApp request is confirmed by hand in a separate approval step.

Relay sees ciphertext only

The relay handles metadata and ciphertext. It cannot read the contents of a message.

Encryption and code

Heads up: this is an educational MVP and has not been audited. Don't use it for large balances. Sender and recipient addresses are still visible to the relay as metadata.

Get started

Two ways to run it.

Use the web wallet instantly, or install the extension for dApp signing and chat.

01
Web wallet: open the web wallet and create or import — runs entirely in your browser.
02
Extension: download the .zip and unzip it.
03
Open chrome://extensions, turn on Developer mode, and click Load unpacked on the unzipped folder.
04
Relay (optional, for chat): npm run relay:install then npm run relay.

Building from source? npm installnpm run build → load the dist/ folder.