- the faucet reads eth_chainId from its node on every send and in its status (a fixed id signed refused transactions once the floor crossed); FAUCET_CHAIN_ID is gone from the env; the faucet now reads node1-dn3's EVM, the node the public RPC fronts - /build, /faucet, docs/build/first-contract.md, rpc.md and faucet.md: 4464 with the floor note, "read it, never fix it" - a second walkthrough PASS on the 4464 chain from build-2 through the public RPC and faucet: Counter at block 29878, 12 s end to end 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. The chain id it signs with is read from that node on every send: Devnet 3 moved from 4463 to 4464 at its class v5 floor on 8 October 2026. - 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.