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
ops: pause mainnet, switch surfaces to testnet-only
Mainnet Fly apps (ultradag-mainnet-1..5) destroyed; referral bot scaled
to 0; refbot pg machine stopped. Dashboard, website, and bounty docs
flipped to mainnet-paused framing.
Dashboard:
- MAINNET_NODES emptied; TESTNET_NODES trimmed to the two live nodes
- Default network is now testnet; stored 'mainnet' preference is
overridden at load time
- TopBar mainnet button disabled and labelled "Mainnet (paused)"
Website:
- Homepage "Mainnet — Open to the Public" section replaced with paused
notice + testnet connect snippet
- network.js, explorer.js, client.js MAINNET_NODES emptied; testnet
arrays trimmed to the two live nodes
- testnet page node grid trimmed
- FAQ "Is mainnet live?" answer updated
Bug bounty:
- PROGRAM.md status, mainnet-access section, and conversion-rules block
updated; mainnet-attack-surfaces remain in scope for review
- LEDGER.md gains a top-of-file pause notice; existing entries remain
binding per the testnet-reset-safety policy
- LAUNCH.md status line and PROMOTION.md announcement copy updated
Dashboard rebuilt and rsynced into site/public/dashboard/.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
**Bounty Payment Source:** Genesis allocation holder `0x9aEcb515361af7980eaa16fE40c064f69738EbF9` (to be reimbursed from treasury post-emission)
9
9
10
+
> **Mainnet paused as of 2026-04-22.** Mainnet payouts are deferred until
11
+
> mainnet is re-enabled. Every entry below remains binding — the commitment
12
+
> is the git-tracked entry plus the hunter's key, not the chain state. See
13
+
> [Testnet Reset Safety](#testnet-reset-safety) below; the same policy
14
+
> applies to a mainnet pause. Vesting anchors and the 1:1 UDAG conversion
15
+
> are unchanged.
16
+
10
17
This ledger tracks all bug bounty rewards. Each entry is cryptographically signed and represents a binding commitment to distribute mainnet UDAG tokens.
Copy file name to clipboardExpand all lines: docs/security/bug-bounty/PROGRAM.md
+16-13Lines changed: 16 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,26 +1,24 @@
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 — Mainnet & Testnet
4
+
**Status:** Active — Testnet (Mainnet paused as of 2026-04-22)
5
5
**Launch Date:** March 8, 2026
6
6
**Mainnet Genesis:** April 10, 2026
7
-
**Mainnet Public Open:** April 16, 2026 (anyone can run a validator)
7
+
**Mainnet Paused:** April 22, 2026
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. **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).
12
+
UltraDAG is offering rewards for security researchers who discover and responsibly disclose vulnerabilities in the UltraDAG codebase. **Mainnet is currently paused**; testing runs on testnet only. Testnet nodes are reachable at `ultradag-node-[1-2].fly.dev:9333` (P2P) and `https://ultradag-node-[1-2].fly.dev` (RPC).
13
13
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.
14
+
Valid reports are rewarded in UDAG and recorded in the append-only [`LEDGER.md`](./LEDGER.md). Payout in mainnet UDAG is deferred while mainnet is paused but every ledger entry remains binding per the program's testnet-reset-safety policy — the commitment is the git-tracked entry plus the hunter's key, not the chain state. See [`LEDGER.md` → Testnet Reset Safety](./LEDGER.md#testnet-reset-safety).
15
15
16
-
## Mainnet Access Policy
16
+
## Testnet Access
17
17
18
-
Mainnet is **fully open**:
19
-
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.
18
+
-**P2P port 9333 is public** on both testnet nodes at `ultradag-node-[1-2].fly.dev:9333`.
19
+
-**RPC port 10333 is public** at `https://ultradag-node-[1-2].fly.dev` for reads and transaction submission.
20
+
-**Please do not DoS the testnet.** 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 testnet 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.
21
+
-**Mainnet attack surfaces remain in scope for review** — any bug you find against the current codebase is eligible regardless of whether it's exercisable on a live mainnet today. The vulnerability class is what matters for the reward tier.
24
22
25
23
## Scope
26
24
@@ -155,8 +153,9 @@ Create a GitHub Security Advisory with:
155
153
the severity assessment, reward range, and planned timeline.
156
154
157
155
### Mainnet conversion (applies to all ledger entries)
158
-
Mainnet launched **2026-04-10**. Every entry in the ledger converts 1:1 to
159
-
mainnet UDAG under the following rules:
156
+
Mainnet genesis was **2026-04-10**; mainnet is currently paused as of
157
+
**2026-04-22**. Every entry in the ledger converts 1:1 to mainnet UDAG
158
+
under the following rules:
160
159
161
160
1.**Vesting schedule:** 25% unlocked at the vesting anchor (immediate), 75%
162
161
vested linearly over the 12 months following.
@@ -167,6 +166,10 @@ mainnet UDAG under the following rules:
167
166
the Ed25519 secret key (or passkey) behind their testnet address. This
168
167
proves ownership without needing the testnet address to hold any balance
169
168
or for the testnet to even still be running.
169
+
4.**Pause handling:** while mainnet is paused, claim windows open as soon
170
+
as mainnet is re-enabled. The vesting anchor rule above still applies —
171
+
a paused period does not reset or delay the anchor. Entries already
172
+
accrued continue to accrue the 12-month linear vest.
170
173
171
174
**Testnet reset safety:** testnet `--clean` restarts do not affect any ledger
172
175
entry. The commitments live in git, not on the testnet chain. See the
0 commit comments