EDENDocs
Investors Fees & revenue Open app
Trust

Security

The latest audit and what it found, what you have to trust, what the admin can and cannot do, and the limitations that remain at launch.

1. Latest audit

The most recent independent audit was completed on 5 October 2026. It covered the final mainnet configuration of the ROOT price oracle and every contract that reads it: the launch burn, scorer registration and per-score burns, and the ROOT buyback. The oracle is the keeper-free design: the time-weighted price from ROOT's own pool multiplied by Chainlink's ETH/USD price.

The audit was read-only. Every finding is backed by a source read or a proof-of-concept test against the real pool code.

SeverityFoundStatus
Critical0—
High1Fixed in the code; a residual risk is accepted (section 6)
Medium32 fixed; 1 fix scheduled before mainnet (section 6)
Low74 fixed; 1 fix scheduled before mainnet; 2 accepted (section 6)
Informational7Confirmations of correct behaviour, and documentation fixes

What it confirmed. The price accumulator is correct, including when its history buffer wraps around. Permissions, units, both token orderings, Chainlink handling and every fail-closed path are sound. A quiet pool with a single trade cannot be used to move the price.

1.1 Findings and fixes

SeverityFindingFix
HighROOT trades in one pool, so nobody arbitrages a skewed price back. Holding the 30-minute average at twice its value cost only the pool's round-trip fee, which made every dollar-priced burn cheap to underpayBurns are charged at the lower of the 30-minute and 4-hour averages, so a short pump cannot cut the price; the documented cost model was corrected
MediumA large buyback at a known time could be sandwiched slowly: pump, hold one window, let the buyback buy at the inflated price, dumpThe buyback now runs every 3 hours and spreads each batch in small equal slices across the next 3 hours, so there is never one large, predictable buy to front-run. Each slice is floored by the same protective price read, the buyback holds while the 30-minute and 4-hour averages diverge, and each call is capped
MediumStarting the oracle from the live spot price let anyone skew its first reading at deployThe starting price is set explicitly and must be within 5 % of the live price, or the deploy stops
MediumA pushed-down price combined with an unlimited ROOT approval could over-charge a creatorScheduled before mainnet: the app will approve only the exact ROOT each burn needs. Until then each burn is bounded by an on-chain maximum, and the protective price read makes pushing the price down expensive to hold
Low32-bit timestamps would have stopped every ROOT trade in the year 210664-bit timestamps and wrap-safe arithmetic
LowA small price spike at the scheduled time could defer the buybackA held slice simply moves to the next slot; with slices every few minutes and a new batch every 3 hours, a spike delays at most one slice
LowThe launch burn's oracle pointer can be changed instantly by the Safe, unlike the other oracle pointersScheduled before mainnet: the same 48-hour timelock as the others
LowThe first swaps after launch paid extra gas to open price-history slotsThe history buffer is pre-filled at genesis
LowMonitoring compared the average with the live price only, so a sustained skew went unnoticedAlerts also fire when the 30-minute and 4-hour averages diverge

The scoring and scorer-reward contracts were audited the same day; every high and medium finding there was fixed, except the conservative scorer cap, which is kept by design (section 6).

2. Trust assumptions

You trustForBound
The Eden Safe (2-of-3, hardware wallets)Parameters, pointers, keeper roles, opening launches48 h public timelock on loosening; cannot touch curve/pool funds, locked liquidity, vesting or claims
The attestation signer (one key in v1)Publishing each epoch's scores72 h challenge window; adjudicators can dispute; human scores are on-chain
The scoring oracleFetching and normalising private business data honestlyInputs archived per epoch; scores are Eden's assessment, not a trustless measurement
Adjudicators (Eden reviewers)Disputes and the manual "Verified" flagVerification changes only the creator floor and score cap; never automatic
KeepersRunning sweeps, buybacks, proofs and snapshots on timeEvery amount bounded on-chain; missed runs delay payouts, never lose funds
ChainlinkETH/USD and stock pricesMax-age bounds; burns and buybacks fail closed when stale
The ROOT/ETH poolROOT price via TWAPProtocol-favourable 30 min / 4 h read; see section 6
Robinhood Chain sequencer and token issuersOrdering, liveness; stock token transfersStock issuers can block addresses or pause transfers; Eden cannot override

3. Admin powers

The Safe can, immediately:

  • stop new launches (existing curves and pools keep trading; sweeps and claims continue);
  • tighten any bounded parameter;
  • grant and revoke keeper, poster, publisher and attester roles.

The Safe can, after a 48-hour public timelock:

  • re-point fee routing, scorer rewards, buyback, oracle, feed, holder, index and creator-routing contracts;
  • loosen parameters within their hard-coded bounds (for example the scorer cap 0.01–100 %, the ROOT pool fee 1–3 %, oracle max ages within their bounds);
  • wire price feeds, scorer reward assets and buyback settings for pair assets.

The Safe cannot:

  • mint ROOT or any launch token;
  • move tokens out of a bonding curve or a graduated pool, or unlock locked liquidity;
  • unlock creator or team vesting;
  • change a live launch's supply or curve;
  • redirect anyone's holder payout, scorer reward or creator fee (claims pay only the owning wallet);
  • add a creator tax above 0 for existing launches (the ceiling is 0 and Eden's policy keeps it there).

There are no upgradeable proxies. A new contract version is deployed next to the old one and switched in through the timelock.

4. Keys

  • Every role (fee keeper, quality keeper, holder poster, attestation signer, index publisher, identity attester, ops admin, adjudicator, deployer) is a separate, fresh EOA with no EIP-7702 delegation. A preflight script checks this on-chain before ownership hand-off and before launches open.
  • Role keys live in a secret store, never in git, chat or terminal history. A leaked key is rotated with a Safe transaction (rehearsed on the demo).
  • The deployer holds nothing after the ceremony and is drained.
  • Safe owners sign on hardware wallets.

5. Pause and recovery

SituationResponse
Something wrong after launchSafe stops new launches in one transaction
Wrong parameterQueue the fix; it applies after 48 h (tightening applies at once)
Keeper key leakedStop ops, rotate the role via the Safe
Ops primary downHot standby takes the lease automatically
Chainlink staleBurns and buybacks fail closed until it updates; trading is unaffected
Indexer downUI falls back to receipts and RPC
RPC provider downAutomatic failover to the next provider

6. Known limitations at launch

LimitationEffectMitigation / plan
ROOT trades in one poolMoving the TWAP costs only the round-trip pool fee; a held pump can lower USD-pegged burns after the 4 h anchor catches upProtocol-favourable read; buybacks in small slices every few minutes rather than one large buy; divergence hold; monitors; deepen liquidity or add a venue
One attestation signerScores are Eden's signed assessment72 h challenge window; more signers and published adapter specs planned
No sequencer-uptime feed on the chainAfter an outage a Chainlink answer up to 25 h old could price burnsAge bound and ops alerts at 50 % / 90 % of max age; wire the feed via the timelock if one appears
Conservative scorer capWith few scorers, lighter scorers earn less than an exact capped share; the rest is burnedDocumented; the cap can be raised through the timelock if early pools are thin
No narrow emergency pauseThe only instant brake stops new launches, not trading or buybacksA guardian that can only tighten is proposed as a post-launch upgrade
Timelocks block hotfixesA loosening fix takes 48 hKnown changes are pre-queued before launches open
Stock pair buyback routesStock assets without a route to ETH accumulate in the buyback vaultMulti-hop routing proposed as an upgrade
Scheduled audit fixesThe ROOT approval for the launch burn is unlimited; the launch burn's oracle pointer is not timelockedBoth land before mainnet launches open
Stock and ETH price freshnessEach feed is checked against its own maximum age; consumers' shorter age limits do not apply on topPer-asset age bounds; burns and buybacks fail closed when a feed is stale
Oracle-priced writesGas at inclusion can exceed the estimateThe UI and keepers pad gas for these calls
Immutable on-chain textA launch description cannot be erasedThe UI masks personal identifiers
SlashingOff at launchEnabled only after the full dispute flow is live

7. Reporting a vulnerability

Security reports: [security contact — to be published].

Eden · Robinhood ChainFigures are the mainnet launch configuration. Nothing here is investment advice.