- site/build.html and site/grants.html rendered by site/build.mjs from docs/build/build.md and docs/build/grants.md (the gate's site-only copy keeps the committed pages, as for /bench); site-relative links in the markdown renderer - the nav's fourth group, Build (/build, /faucet, /grants), in the partial, the sheet, the footer, the sitemap and tools/ci/site-nav-check.mjs; the faucet leaves the Mine panel - site/faucet.html is the Devnet 3 faucet: 10 IGN per address per day, 500 a day, chain id 4463, no value, resets without notice; the page posts to https://faucet.igneum.network/api/faucet and shows the balance - infra/build-server/faucet: faucet.mjs (zero dependencies, signs with site/lib/eth.mjs, limiter self-test known-failed first, 100 IGN cap on the amount), the unit, faucet.sh install/status; live on build-1 behind Caddy since 10:16Z, funded 2,000 IGN by the fleet's funder at 10:01Z; first drip 0x8620e9d8 at 10:17Z - docs/build: README, first-contract.md with its test script and the PASS line (24 s end to end through the public RPC and faucet, Foundry 1.8.5, Counter deployed at block 27055), rpc.md read from the node (75 methods probed, served and not served), faucet.md, verify-a-block.md, grants.md - .forgejo/issue_template/grant.md: the grant application template on git.igneum.network Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2 KiB
2 KiB
The Devnet 3 faucet
igneum.network/faucet sends 10 IGN of Devnet 3 coin to an address. Once per address per day, once per connection per day. No account.
What it is
- A small Node service on a build box,
infra/build-server/faucet/faucet.mjs, behind Caddy atfaucet.igneum.network. The page on igneum.network posts to it. - It signs a plain transfer with its own key and sends it to the Devnet 3 node on the same box by address (
FAUCET_RPC), never chosen by chain id: Devnet 3 answers the same chain id as the shared devnet. - The key lives only in the service's environment file on that box. It is not in the repository and not on the site.
The rules, as the code enforces them
| Rule | Value |
|---|---|
| Amount | 10 IGN per send; the code refuses to start with an amount over the 100 IGN cap |
| Per address | one send per 24 hours |
| Per connection | one send per 24 hours |
| Per day, in total | 500 sends, then "come back tomorrow" |
| What is stored | the address, the connection's IP, the transaction hash and the time, in a file on the box, for the 24-hour window |
The faucet's balance is refilled from the devnet's funder as it runs down. When it is empty the page says so and sends nothing.
Devnet 3 coin
No value. Not for sale, not redeemable, not a claim on anything. The chain resets without notice and balances do not carry over. Mainnet starts from an empty genesis.
Running it
infra/build-server/faucet/faucet.sh install # dry run: what would be copied and started
infra/build-server/faucet/faucet.sh install --go # copy the service, the unit and the Caddy block; start it
infra/build-server/faucet/faucet.sh status # the unit, the balance, the sends in the last 24 hours
node infra/build-server/faucet/faucet.mjs --self-test # the limiter: known-failed cases first
The public testnet faucet is a separate thing: site/api/faucet.mjs is prepared for it and answers "not open yet" until the testnet starts.