You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After four weeks of closed hardening and 4 bounty-validated fixes,
mainnet opens to permissionless validator participation. The 5 Fly
nodes are peers, not gatekeepers — ranking is stake-weighted.
Infrastructure:
- fly-mainnet-[1-5].toml: added [[services]] block exposing port
9333 to the public internet, removed NO_BOOTSTRAP=true. External
nodes can now reach ultradag-mainnet-*.fly.dev:9333 for P2P.
Docs:
- PROGRAM.md: status "Testnet (mainnet closed)" → "Mainnet & Testnet".
Added April 16 public-open date. Replaced Mainnet Access Policy
section with open-access rules.
- README.md: "mainnet is currently closed" → "mainnet is open".
- site/index.astro: "Mainnet — Closed During Hardening Phase"
section replaced with open-access instructions + run-a-node snippet.
Not changed: NETWORK_ID differs between testnet/mainnet builds as
cryptographic replay protection — this stays. `--validators N` still
passed at startup to set the quorum floor (GHSA-rprp-wjrh-hx7g).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,7 @@
22
22
| 🟡 **Medium**| 1,000 – 5,000 UDAG |
23
23
| 🟢 **Low**| 100 – 1,000 UDAG |
24
24
25
-
**All testing happens on [testnet](https://ultradag-node-1.fly.dev/status)** — mainnet is currently closed to external participation while the bounty program hardens the code. See [`PROGRAM.md`](./docs/security/bug-bounty/PROGRAM.md#mainnet-access-policy-current-phase) for the mainnet access policy.
25
+
**Mainnet is open** — anyone can run a validator at `ultradag-mainnet-[1-5].fly.dev:9333`. Please prefer [testnet](https://ultradag-node-1.fly.dev/status) for destructive exploration and reproduction PoCs. See [`PROGRAM.md`](./docs/security/bug-bounty/PROGRAM.md#mainnet-access-policy) for scope and rules.
26
26
27
27
Reports are private via GitHub Security Advisories. Testnet resets **do not** affect any reward commitment — the append-only [`LEDGER.md`](./docs/security/bug-bounty/LEDGER.md) is the binding record, not on-chain balances. See [`LEDGER.md → Testnet Reset Safety`](./docs/security/bug-bounty/LEDGER.md#testnet-reset-safety) for why.
Copy file name to clipboardExpand all lines: docs/security/bug-bounty/PROGRAM.md
+11-12Lines changed: 11 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,27 +1,26 @@
1
1
# UltraDAG Bug Bounty Program
2
2
3
3
**Operator:** JMS Media Group LLC (Wyoming, USA; Filing ID 2026-001951812) — the legal entity behind the UltraDAG project and the payer of record for all bounty rewards.
4
-
**Status:** Active — Testnet (mainnet is closed while the bounty program hardens the code)
4
+
**Status:** Active — Mainnet & Testnet
5
5
**Launch Date:** March 8, 2026
6
-
**Mainnet Genesis:** April 10, 2026 (validators running, closed to external peers)
7
-
**Mainnet Public Open:**TBD (gated on bounty program results)
6
+
**Mainnet Genesis:** April 10, 2026
7
+
**Mainnet Public Open:**April 16, 2026 (anyone can run a validator)
8
8
**Total Pool:** 500,000 UDAG
9
9
10
10
## Overview
11
11
12
-
UltraDAG is offering rewards for security researchers who discover and responsibly disclose vulnerabilities in the UltraDAG codebase. **All testing happens against the public testnet.**Mainnet is currently running but is **closed to external participation** — only the founder-operated Fly.io validators can join the P2P mesh. External users cannot connect as validators, peers, or relays. The public RPC on mainnet is still readable for transparency (you can query `/status`, `/balance`, etc.), but no new state can be introduced by outsiders until the bounty program has had time to harden the code.
12
+
UltraDAG is offering rewards for security researchers who discover and responsibly disclose vulnerabilities in the UltraDAG codebase. **Mainnet is now open** — anyone can run a validator, stake UDAG, and participate in consensus. Testing is welcome on both mainnet and testnet; please prefer testnet for destructive exploration. Mainnet nodes are reachable at `ultradag-mainnet-[1-5].fly.dev:9333` (P2P) and `https://ultradag-mainnet-[1-5].fly.dev` (RPC).
13
13
14
-
Valid reports are rewarded in testnet UDAG, recorded in the append-only [`LEDGER.md`](./LEDGER.md), and convertible 1:1 to mainnet UDAG per the vesting schedule in that file — regardless of how many times testnet is reset in the interim. See [`LEDGER.md` → Testnet Reset Safety](./LEDGER.md#testnet-reset-safety) for why a testnet wipe does not affect your claim.
14
+
Valid reports are rewarded in UDAG, recorded in the append-only [`LEDGER.md`](./LEDGER.md), and convertible 1:1 to mainnet UDAG per the vesting schedule in that file. See [`LEDGER.md` → Testnet Reset Safety](./LEDGER.md#testnet-reset-safety) for why a testnet wipe does not affect your claim.
15
15
16
-
## Mainnet Access Policy (current phase)
16
+
## Mainnet Access Policy
17
17
18
-
Mainnet is in a deliberate **hardening phase**. Key points:
18
+
Mainnet is **fully open**:
19
19
20
-
-**P2P port 9333 is not exposed to the public internet** on any mainnet node. External hosts cannot open TCP connections to the Noise handshake endpoint. The 5 mainnet nodes reach each other over Fly's internal WireGuard mesh (`ultradag-mainnet-[1-5].internal`) only.
21
-
-**RPC port 10333 remains public** at `https://ultradag-mainnet-[1-5].fly.dev` for transparency. Anyone can read chain state; no one can submit transactions that affect it unless they go through the existing RPC (and most state-changing RPC endpoints are testnet-only on mainnet builds).
22
-
-**Pre-launch token distribution happens on Arbitrum** via an ERC-20 representation of UDAG. Buying UDAG in this phase gets you Arbitrum-side tokens, not native mainnet UDAG. This lets the maintainer restart mainnet freely during hardening without invalidating any token holder. See `bridge/README.md`.
23
-
-**Mainnet will open to public participation** only after the bounty program has validated the code against real adversaries over a meaningful window. There is no fixed date; the decision is gated on the findings in this program.
24
-
-**Until mainnet opens, attacking mainnet nodes is out of scope and explicitly illegal.** Test against testnet only. If you can somehow reach a mainnet node (through a misconfiguration or a Fly bug) — report it privately as a finding, do not exploit it.
20
+
-**P2P port 9333 is public** on all mainnet nodes at `ultradag-mainnet-[1-5].fly.dev:9333`. External validators and observers can connect directly.
21
+
-**RPC port 10333 is public** at `https://ultradag-mainnet-[1-5].fly.dev` for both reads and transaction submission.
22
+
-**Validator set is permissionless** — any address with enough UDAG can stake and enter the active set. The 5 founder-operated Fly nodes have no protocol-level privilege; ranking is by effective stake.
23
+
-**Please do not DoS mainnet.** In-scope attacks are those demonstrating a protocol or implementation bug via a minimal PoC — not brute traffic floods. If you can crash or halt a live mainnet node with a single crafted message, that's a valid Critical; sustained DoS traffic is out of scope and may be reported to the hosting provider.
0 commit comments