- 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>
36 lines
2 KiB
Markdown
36 lines
2 KiB
Markdown
# The Devnet 3 faucet
|
|
|
|
[igneum.network/faucet](https://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: 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.
|