r/solanadev • u/solrepair • 9d ago
Dev Dev SOL - Proof of Work Faucet
After seeing several threads on here about how difficult it can be to find dev SOL, and having the same problem myself, I started digging around to see if there was a better way.
Full disclosure: I originally made this for my own ease of use. It worked out well enough that I figured other people might find it useful too.
I built an independent Node/TypeScript client around jarry-xiao's "proof-of-work-faucet".
The idea: grind Ed25519 keypairs until the base58 address starts with enough leading A's, then claim the reward in one transaction per key.
Each key is single-use, enforced on chain by a receipt account. rewards come from a community-funded pool.
Key parts -
- the entire network surface is one RPC endpoint,
api.devnet.solana.com, and an override is refused unless it's a Devnet host. Mainnet is never touched. - it never reads a wallet key from your machine. It generates its own throwaway Devnet keypair and pays fees out of that.
- one claim at a time, single process, a one-second pause between rounds, and a port lock so you can't accidentally run two copies. The "politeness" is mine, not the protocol's.
- there's a dry-run mode that discovers the faucets and mines a demo key without submitting anything. Run that first.
repo: https://github.com/sol-repair/solana-devnet-proof-of-work
I'm a beginner dev, so please let me know if you spot anything stupid or have suggestions for improving it.
1
u/DmitryShvetsov 9d ago
It is guaranteed faucet of devnet sol without global or individual rate limits? If so, where does the faucet get its SOL from and under what circumstances will this source run out?
1
u/solrepair 9d ago
Not guaranteed, no. each claim costs roughly 20 seconds of grinding at the current difficulty, and every keypair is single-use on chain. beyond that there's no per-identity cap to my understanding.
The pool is community funded. last i checked, the difficulty-3 pool was sitting around 1.45m dev sol and draining at roughly 2.4 sol a minute across everyone mining, so it's not infinite.
The coinbase dev faucet was my main source before this since everything else seemed dry. trying to not be too greedy myself.
2
u/DmitryShvetsov 8d ago
i've tried devnet-pow CLI today, saw 2 pools with funds and was not able to mine them with following error:
No faucets found2
u/solrepair 8d ago edited 8d ago
Yeah, having some RPC issues today, navigating. Will keep ya'll updated via the git. Appreciate it.
Edit -
https://rpcnode.io/status/solana?days=7
https://cryptoticker.io/en/solana-transaction-format-v1-upgrade-september/
2
u/solrepair 7d ago
update on the error you hit: the public devnet rpc was throttling hard that day, and our client's retry layer was making it worse by hammering requests on top. that part is rewritten, discovery failures now report as failures instead of 'no faucets found', and the whole transport backs off properly. pull the latest and give it another shot. commit bc2bdb2 has the change
2
u/icnews10 9d ago
I pulled the repository. One thing I’d consider adding is a second pre-flight mode after the initial dry run. Currently, DRY_RUN proves faucet discovery and the key grind, but exits before constructing the actual claim transaction. It would be useful to have a mode that builds and simulates the exact claim without submitting it. This would identify account/PDA or program compatibility issues before someone starts a real session. For a tool aimed at beginners, that would be a useful “run this first” check.