igneum/docs/build/faucet.md
igneum-labs 683a5afc99 Builder pages and faucet: Devnet 3 chain id 4464 since the class v5 floor (8 October 2026, 13:27 BST reading)
- 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>
2026-10-08 12:38:51 +00:00

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 at faucet.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.