D◆DarkOddsCLASSIFIED · INTERNALFILE NO. DK-0426 / Δ
iEXEC NOX · ARBITRUM
CLASSIFIED // PRIVACY PERMISSIONLESS

Public market.
Private wager.
Permissionless creation.

Outcomes public. Wagers redacted. Markets created by anyone. Built on iExec Nox + Arbitrum. Selective-disclosure attestations you can show your accountant — or seal forever.

10
Deployed contracts
178/180
Tests passing
Open-create · Markets
FIG.01 — DARKODDS PROTOCOLISO 30° / MONO / 1.5PXv1.0
01 / 09
iEXEC NOXARBITRUM?MARKET$cUSDCATTESTATIONBET
EXHIBIT B // SIDE-BY-SIDE COMPARISON

Same market.
Seen two ways.

The same question. The same odds. The same outcome. The only difference is who can see your wager.

PUBLIC LEDGER // POLYMARKET
CURATED CREATION

Bet size: visible to anyone.

Will Bitcoin close above $100,000 by December 31, 2026?

YES  67%
NO  33%
0xa7f3…4d21YES$48,500.00
0xb44e…9c11NO$12,750.00
0xc081…ee93YES$7,820.00
0xd5d2…0a55NO$34,000.00

Source: gamma-api.polymarket.com — public, real-time.

CLASSIFIED // DARKODDS
OPEN-CREATE

Bet size: visible only to you.

Will Bitcoin close above $100,000 by December 31, 2026?

YES  67%
NO  33%
0xa7f3…4d21YES
0xb44e…9c11NO
0xc081…ee93YES
0xd5d2…0a55NO

Source: encrypted on iExec Nox — visible only to the bettor.

THE DIFFERENCE
your wager AND who can create.
BOTH MATTER
02 / 09
PROCEDURE // FILE NO. DK-0426 §3

Three steps.
Nothing more.

A bettor's path through DarkOdds in plain English. What's public stays public. What's private stays private. Math runs in a TEE.

Anyone can create the market. Anyone can bet. The math runs in the enclave. The privacy is mathematical.

STEP 01

Wrap.

Deposit TestUSDC into the cUSDC contract. Your balance becomes an encrypted handle, ACL'd to your wallet only.

TestUSDCcUSDC
PUBLIC: cUSDC contract address, transaction hash
PRIVATE: balance amount
STEP 02

Bet.

Encrypt your stake off-chain via the Nox SDK, bound to a specific market. Submit to Market.placeBet. Your handle commits to the on-chain ACL — the bet is locked, the size stays sealed.

cUSDCMARKETBETENCRYPTED ON NOX
PUBLIC: market address, side (YES/NO), batch publication
PRIVATE: bet size
STEP 03

Claim.

When the market resolves, call claimWinnings. The TEE computes your proportional payout in plaintext inside the enclave, re-encrypts the result, and transfers cUSDC back to your wallet. Optionally generate an audit attestation — signed, recipient-bound, downloadable.

MARKETRESOLVEDPAYOUTATTESTATION // SELECTIVE-DISCLOSUREOPTIONAL — RECIPIENT-BOUND OR BEARER MODE
PUBLIC: claim transaction, market outcome
PRIVATE: payout amount
INVARIANT
the enclave keeps the wagers.
EVERY TIME.
03 / 09
APPENDIX A // STACK & STANDARDS

Built on substrate.
Not vibes.

The thesis of the iExec Vibe Coding Challenge applied to prediction markets — privacy-preserving financial primitives where compliance and confidentiality coexist. Below, the substrate this is built on, and the standards stance.

APPENDIX A.1 — TECHNOLOGY STACK
Confidential Compute
iExec Nox
Intel TDX TEE on Arbitrum, ERC-7984 substrate, on-chain handle ACL.
Settlement Layer
Arbitrum Sepolia
L2 with Chainlink integration path for production oracle resolution.
Smart Contract Tooling
ChainGPT Auditor
LLM-pattern audit pass on all 10 contracts. Findings filed in KNOWN_LIMITATIONS.
Wallet
Privy
Email + social login, embedded wallet, no seed-phrase friction at onboarding.

Static analysis: Slither 0.11.5 (clean). Audited contracts: 10. Multisig governance: 2-of-3 Safe. Tests: 178/180.

APPENDIX A.2 — STANDARDS STANCE

A deliberate scope call.

DarkOdds applies the iExec Vibe Coding Challenge thesis — privacy-preserving financial primitives with compliance and confidentiality — to permissionless prediction markets.

ERC-7984 is implemented in full, function-shape compliant via a Nox-native ConfidentialUSDC. ERC-3643 (permissioned RWA tokens) and ERC-7540 (async vaults) don't fit a prediction-market primitive natively; forcing them in would be checkbox-cargo, not engineering.

Selective-disclosure attestations provide the compliance surface the track calls for, in the shape that matches our domain. Confidentiality without opacity. Compliance without surveillance.

ERC-7984
IMPLEMENTED
Confidential ERC-20 wire-shape via Nox-native cUSDC.
OPEN-CREATE
IMPLEMENTED
Anyone can deploy markets via /create. ChainGPT structures the prompt; the protocol settles.
ERC-3643
OUT OF SCOPE
Permissioned RWA tokens. Doesn't fit prediction-market primitive.
ERC-7540
OUT OF SCOPE
Async tokenized vaults. Different domain.
POSITION
we built what fits.
NOT WHAT CHECKS BOXES.
04 / 09
EXHIBIT C // ACTIVE CASE FILES

Live markets.
Real bets. Right now.

Three operational case files. Real markets, real cUSDC, real Arbitrum Sepolia. Bet sizes are encrypted on Nox. Outcomes resolve via on-chain oracle adapters. Anyone can create more.

CASE FILE 14·OPEN·iEXEC NOX

Will BTC close above $100,000 by end of 2026?

YES  50%
NO  50%
Pool Total cUSDC
Bettors1
Resolves ByDec 31, 2026
VIEW & BET  →
CASE FILE 15·OPEN·iEXEC NOX

Will the next iExec mainnet announcement happen before June 15, 2026?

YES  58%
NO  42%
Pool Total cUSDC
Bettors4
Resolves ByJun 15, 2026
VIEW & BET  →
CASE FILE 19·OPEN·iEXEC NOX
OPEN-CREATE · SPONSORED

Will F10b verification ship clean by April 28?

YES  100%
NO  0%
Pool Total cUSDC
Bettors1
Resolves ByApr 29, 2026
VIEW & BET  →
STATUS
the contracts are live. so are the markets.
VIEW ALL  →
05 / 09
EXHIBIT D // SELECTIVE-DISCLOSURE

Show your accountant.
Or don't.

After you claim, generate a TEE-signed attestation. Recipient-bound by default — only the address you specify can verify it. Bearer mode is explicit opt-in. Markets stay permissionless; disclosure stays selective.

STEP 01

Sign.

After your claim, the TEE handler signs an attestation containing: your address, market ID, outcome, payout amount, optional recipient, nonce, and TDX measurement. All inside the enclave, signed by the measurement-bound key.

STEP 02

Download.

Click “Generate audit attestation” on /portfolio. JSON file downloads — recipient-bound to whomever you specify. Recipient is permanent in the signed payload — re-sharing breaks the signature.

STEP 03

Verify.

Recipient pastes the JSON into /audit. ClaimVerifier on chain checks the TDX measurement matches our pinned anchor and the signer matches the deployed attestation key. Returns VALID or INVALID. Read-only.

ATTESTATION // SAMPLE
// signed inside enclave
{
  "version":         "1.0",
  "user":            "0xF979…1ab5",
  "marketId":        14,
  "marketQuestion":  "Will BTC close
                     above $100,000 by
                     end of 2026?",
  "outcome":         "NO",
  "payoutAmount":    " cUSDC",
  "recipient":       "0xACCOUNTANT…",
  "nonce":           "0x…",
  "tdxMeasurement":  "0x…",
  "signature":       "0x…"
}

Display note: the JSON contains plaintext. The redaction bar reinforces that the payout was confidential before disclosure — not after.

COMPLIANCE
without surveillance.
TRY VERIFY  →
06 / 09
EXHIBIT E // FREQUENTLY ASKED

Questions worth asking.

From people who didn't read the contracts.

Q / 01

What's hidden? What's public?

Public: outcomes, odds, market addresses, transaction hashes, bettor counts, and pool totals (after each 60-second batch publish). Hidden:your individual bet size, your wallet's encrypted balance, and your payout amount — until you choose to disclose it.

Q / 02

Who can create a market on DarkOdds?

Anyone, during the open-create window. Connect a wallet, click /create, describe your market in plain English, ChainGPT structures the parameters, deploy on-chain. Permissionless by design — the governance state badge in the topbar shows the current mode (open-create vs governance-curated). Both are legitimate protocol modes.

Q / 03

How does the privacy actually work?

Bets are encrypted handles on iExec Nox (Intel TDX TEE on Arbitrum). The TEE decrypts inside the enclave to compute proportional payouts, then re-encrypts the result. FHE-equivalent privacy guarantee, TEE attestation trust model, proportional pari-mutuel actually works (FHE division is brutal — TEE plaintext compute is the wedge).

Q / 04

Is this just Polymarket with a redaction bar?

Polymarket is fully public AND curated. DarkOdds is private AND permissionless. Two axes, opposite stances. Same odds and outcomes, your wager hidden, anyone can deploy a new market.

Q / 05

What about resolution? Can the admin cheat?

Three oracle adapters: AdminOracle (commit-reveal multisig), ChainlinkPriceOracle (with mandatory L2 sequencer uptime check), and PreResolvedOracle (markets resolved before deployment). Resolution flows through whichever adapter the market is wired to. Two independent audits — ChainGPT (LLM pattern-matched) and Slither (dataflow). All HIGH findings remediated. Reports in KNOWN_LIMITATIONS.md.

Q / 06

Permissionless markets sound risky. What about duplicates?

Yes — anyone can deploy “Will Arsenal win the Premier League?” multiple times. Markets self-correct: liquidity flows to the most-trusted one. Centralized platforms avoid duplicates by fiat but miss the experimentation. Permissionless-with-emergent-coordination beats permissioned-by-fiat over time.

Q / 07

Is this audited?

Yes — by two independent sources. 178/180 Foundry tests pass. ChainGPT Smart Contract Auditor on all 10 contracts (refresh dated April 28, 2026). Slither static analysis clean. All HIGH findings remediated. Multisig governance via 2-of-3 Safe (architecturally preserved through operational delegation for the open-create window). Reports in KNOWN_LIMITATIONS.md and contracts/audits/.

ANSWERS
honestly given.
READ THE CODE  →
07 / 09
DARKODDS // CASE FILE CLOSED
PROTOCOL
GOVERNANCE
  • Safe (2-of-3): 0x042a…A332 (multisig hardening preserved)
  • Threshold: 2 of 3
  • Current state: see topbar badge

“Privacy permissionless prediction markets. Built for the iExec Vibe Coding Challenge × ChainGPT. Live on Arbitrum Sepolia.”

END OF DOSSIER·09 / 09