Inspiration

LinkedIn owns your professional identity. You can't export it, encrypt it, or delete it permanently. I wanted a professional network where the user holds the keys, literally.

What it does

Decentralized professional profiles on Solana. Profile data is AES-256-GCM encrypted client-side, stored on IPFS, with the encryption key anchored on-chain. Only the wallet owner can decrypt or destroy it. Visitors can view public profiles without a wallet. Cryptographic deletion: destroy the on-chain key and the IPFS blob becomes permanent gibberish.

How I built it

Solana/Anchor programs for on-chain profile and connections state (PDAs seeded by wallet pubkey). Web Crypto API for client-side AES-256-GCM encryption where the key never leaves the browser. IPFS/Pinata for encrypted blob storage. React + Vite frontend with Phantom wallet integration. The on-chain field stores key.iv.CID, a compact format packing the encryption key, initialization vector, and IPFS hash into one 200-char field.

Challenges I ran into

Solana works nothing like Ethereum. There are no flexible storage mappings or dynamic fields. Every piece of data needs a fixed-size account declared upfront, so I had to carefully design how profile data fits within those constraints. Client-side encryption also meant I couldn't search profiles by name since the data is encrypted before it ever leaves the browser, so search is wallet-address only.

Accomplishments that I'm proud of

I shipped a working product solo, no team. Cryptographic deletion actually works. Wiping the on-chain key makes the IPFS data permanently unrecoverable. No admin panel, no backdoor. The visitor flow works too: anyone can view a profile without a wallet installed.

What I learned

Solana programs are really expensive to deploy compared to Ethereum smart contracts, so all rigorous testing was done through devnet. I learned how Solana's PDA (Program Derived Address) system, account allocation, and realloc work in practice. How to bridge the Web Crypto AES-256-GCM API with on-chain key storage. That you can build a read-only Anchor provider with a dummy keypair to read chain data without any browser extension.

What's next for unlinked.biz

There are still several bugs involving caching and cookies on the frontend that need to be addressed for a smoother user experience. Wire up the connections program (deployed, not yet in the UI). On-chain messaging between connected wallets. There's no profit motive here. I believe privacy is a fundamental human right, and this project exists to prove that professional networking doesn't have to come at the cost of your data.

Built With

Share this project:

Updates