shadcn.io is not affiliated with official shadcn/ui
Testnet Faucet Web3 Block for React
A developer faucet for three invented test networks: an address field with a shape check, the drip and the faucet balance per network, a cooldown, and a result that shows a sent drip, a rate limit on a second press or an empty faucet.
Installation
Overview
Get test tokens without asking twice, with this faucet panel for React with Base UI. It's the faucet of Dripwell, a faucet for developers, serving three invented test networks: Marshnet, Reedtest and Dunetest. A Native Select picks the network and a Field takes an address, checks its shape and offers Use the demo account. Beside the drip for the network it shows the faucet's balance as a Progress bar and the cooldown with the time the next request opens. The one Shine Button, Request tokens, answers in place: the first press for an address and network sends a sample drip and lowers the balance, a second press answers with the rate limit and the time to ask again, and Dunetest's faucet is empty and says so. For developer portals, SDK docs and test tooling.
FAQ
How is the rate limit decided?
By the pair of network and address. The first request for a pair is served; asking again with the same pair, in any letter case, is refused with the time it opens, which is the sample clock (18 Oct 2026, 14:20 UTC) plus the network's cooldown (24, 12 or 48 hours). A different address or network is a new pair. The page keeps the pairs in memory only.
Why does one network refuse everything?
So the empty state is reachable: Dunetest's typed balance is zero, so a request there answers that the faucet is empty and suggests another network. When a faucet's balance is lower than its drip the same answer applies.
How are the amounts stored?
As whole millionths of a token. A drip subtracts exactly its amount from the balance, and the Progress bar shows the balance as a share of what the faucet started with. The tokens are for test networks only and have no value.
What stays local, and how do I wire it?
All of it. Nothing is sent: the networks, balances, clock and hashes are typed samples and the result only changes this page. In your app send the request to your faucet service, limit by address and by network on the server (not in the page), and show the real transaction hash when the drip is submitted.
Is it accessible from the keyboard?
Yes. Every field has a visible label, the address problem shows in a line that is always there so nothing moves, and focus goes to the address when it is invalid. One polite status line in the foot reports the problem or the result, and the result area holds its height.