Okay, grab Phantom wallet, snag some SOL, and hit Shadow Drive's interface. Boom-your cat pic lives on Solana forever at like 0.002 SOL. Why? Shadow Drive crams files into Solana accounts super efficiently, way cheaper than IPFS or Arweave for small stuff. In my experience, it's perfect if you're tired of AWS bills eating your lunch money.
But hold up-don't just dive in blind. Solana storage isn't like Dropbox. Files get bundled into "storage accounts" you pay rent on, but it's dirt cheap. A 1MB account? Pennies. And access? Lightning fast, no gateways needed. URLs like shdw drive.genesysgo.net/[your account]/[filename]. Pretty much instant worldwide.
Look, you can't store squat without a wallet and some SOL. I usually go Phantom-it's dead simple.
Now fund it. Why devnet first? Free SOL to test. Head to Solana Playground or faucet.solana.com. Paste your address, airdrop 5 SOL on devnet. Switch Phantom to devnet in settings.
For real money? Buy SOL on Binance, Coinbase, whatever. Send to your address. Fees? ~0.000005 SOL per tx. Nada.
Test small. Send 0.1 SOL first. Check balance in Phantom. Sound familiar? I've fat fingered addresses before. Copy paste only.
So Shadow Drive from GenesysGo. That's your ticket. Stores files on Solana proper-not some sidechain hack. Create a "storage account," upload files, pay once ish for space. Rent? Auto handled, like 0.3% yearly or whatever, but tiny.
The thing is, you pre buy space. 1GB? Costs maybe 0.05 SOL now, depending on lamports. Files pin to that account. Public by default. Want private? Nah, it's decentralized storage-open access via URL.
Why pennies? Solana's accounts hold data cheap. No gas wars like Ethereum. A 1MB upload? 0.00244 SHDW or equivalent SOL. I checked my wallet after-barely blinked.
Don't wanna CLI? Shadow Drive has a dashboard. Head to shdw drive.genesysgo.net.
Honestly, this is how I store NFT metadata. Fast. One issue? No folders in basic view. Everything flat. But for quickies? Gold.
What's next? Test it. Upload a txt file: "Hello Solana." URL works instantly. Delete? Button in dashboard. Free up space.
Okay, now level up. Install Solana CLI and Shadow Drive tools. Why? Upload directories, automate. Cheaper for tons of files.
First, Solana CLI. On Mac/Linux: curl -sSfL https://release.solana.com/stable/install | sh. Windows? WSL or their docs. Verify: solana --version.
Now Shadow CLI. npm install -g @shadow drive/cli. Or shdw drive from their GitHub.
Create drive:
shdw drive create storage account --keypair ~/my keypair.json --space 1000000000
That's 1GB. Grabs ~0.03 SOL or so. Spits out account address. Copy it-your drive ID.
Upload single file:
shdw drive upload file ~/Desktop/test.txt --keypair ~/my keypair.json --storage account [your drive id] Multiple? shdw drive upload multiple files ~/my folder --keypair ~/my keypair.json --storage account [id]
Access: https://shdw drive.genesysgo.net/[id]/test.txt. Live.
Keypair wrong? Check path. No SOL? Airdrop more. Rate limited? Wait 30s. Windows woes? WSL ftw. In my experience, permissions kill it-chmod 600 your keypair.json.
You code? @shadow drive/sdk. NPM install it plus anchor.
Setup:
upload.ts:
import * as anchor from '@project serum/anchor';
import { ShadowDrive } from '@shadow drive/sdk';
import * as fs from 'fs';
import * as web3 from '@solana/web3.js'; async function main() { const connection = new web3.Connection('https://api.mainnet beta.solana.com'); const wallet = anchor.Wallet.local(); // Loads your wallet.json const drive = await ShadowDrive.init(connection, wallet.payer); // Create 1MB account const newAccount = await drive.createStorageAccount('myDrive', '1MB', 'v2'); console.log('Drive ID:', newAccount.account.publicKey.toString()); // Upload file const fileBuff = fs.readFileSync('./test.txt'); const acctPubKey = new web3.PublicKey(newAccount.account.publicKey); const file = { name: 'test.txt', file: fileBuff }; const upload = await drive.uploadFile(acctPubKey, file); console.log('URL:', upload.finalized_location);
} main(); ts node upload.ts. Boom. Costs? 0.002 SOL upload + account rent. Scale to gigs cheap.
Why code? Integrate in apps. Metaplex Candy Machine? Add "shdw" upload method with your account ID.
| Action | Cost (SOL) | Notes |
|---|---|---|
| Create 1GB Storage Account | ~0.03-0.05 | One time + rent |
| Upload 1MB File | 0.002-0.005 | Per file, scales down bulk |
| Tx Fee | 0.000005 | Every action |
| 1GB Upload (1000 files) | ~0.1 total | Including account |
| Delete Account | Free (recover rent) | shdw drive delete storage account |
See? Pennies. Compare to Arweave: $0.01/MB permanent. Shadow? Temporary rent, but forever practical. Rent accrues-top up or lose data? Nah, it warns.
Files too big? Max per account 10TB or whatever, but chunk if nuts. No subdirs in CLI easy-use prefixes like folder/file.txt.
URL down? Solana's up 99.9%. Shadow nodes replicate. I've had zero downtime.
Security? Public reads. For private, encrypt client side. Or use access controls if they add 'em.
Switch wallets? Export keypair, import anywhere. Phantom to CLI.
Devnet vs Mainnet. Test everything devnet. Switch: solana config set --url https://api.devnet.solana.com
Folder of 100 images? CLI upload multiple files. Parallel? Script it with Promise.all. I do NFT drops-hours of work, minutes upload, $0.50 total.
Automate rent? Check balance script: shdw drive storage account info [id]. Low? Top up via tx.
Migrate from IPFS? Download, upload script. URLs update easy.
Centralized storage? Hacks, bans. IPFS? Gateways flake. Solana? On chain, fast, cheap. Perfect for web3 sites, NFTs, DAOs. Your files, your rules. No middleman.
One more: Multi wallet? Create keypairs galore. Dedicated storage per project. Keeps it tidy.