ΛΛnemosyne  /  Documentation  /  The Dalos Elliptic Curve

The Dalos Elliptic Curve

A 1600-bit Twisted Edwards Curve. Used for every Ouronet account (Standard Ѻ. and Smart Σ.). The flagship curve of the dalos-crypto family.

At a glance

Curve familyTwisted Edwards Curve (TEC)
Formal nameTEC_S1600_Pr1605p2315_m26
Common nameDalos
Used forOuronet accounts (Standard + Smart)
Safe scalar size1600 bits per account
Possible accounts per Codex21600 ≈ 10481
Address encoding160 glyphs from the Dalos Character Set
Reference impl.DALOS_Crypto/Elliptic/Parameters.go (Go), @stoachain/dalos-crypto (TypeScript)

The curve equation, at a glance

Curve parameters

Prime field P 21605 + 2315 (1606-bit prime defining the finite field the curve lives in)
Subgroup order Q 21603 + 1258387060301909514024042379046449850251725029634697115619073843890705481440046740552204199635883885272944914904655483501916023678206167596650367826811846862157534952990004386839463386963494516862067933899764941962204635259228497801901380413 (1604-bit prime — the order of the generator's subgroup; private-key scalars are reduced mod this)
Trace T −5033548241207638056096169516185799401006900118538788462476295375562821925760186962208816798543535541091779659618621934007664094712824670386601471307247387448630139811960017547357853547853978067448271735599059767848818541036913991207605519336 (curve trace — relates to cofactor via R · Q = P + 1 − T)
Cofactor R Computed via R = (P + 1 − T) / Q (small cofactor required for safe Schnorr)
a coefficient 1
d coefficient −26
Safe scalar S 1600 bits (size of the private-key search space, after cofactor accounting)

Dalos's specific coefficients (a = 1, d = −26) over a 1606-bit prime field give it the strongest security margin of any elliptic curve currently in production use anywhere in cryptocurrency. The frozen parameters above are the canonical reference — any implementation that deviates produces incompatible keys.

Used for every Ouronet account

Every Ouronet account in your Codex — Standard (Ѻ.xxx) and Smart (Σ.xxx) — has a private key that lives on the Dalos curve. The 160-glyph address you see is the Dalos-Character-Set encoding of the account's public key.

Each Ouronet account is independent — its own Dalos private key, its own Payment Key (the StoaChain k:account that backs gas costs), its own address. A Codex can hold thousands of such accounts and the Dalos space (21600 ≈ 10481 possible keys) is wildly larger than anything any user would ever need.

Entropy scale

Dalos vs Apollo — when each is used

Property Apollo Dalos
Safe scalar 1024 bits 1600 bits
Used for Codex Identity (1 per Codex, 2 halves) Ouronet accounts (many per Codex)
Prefix glyph ₱. Standard, Π. Smart Ѻ. Standard, Σ. Smart
Total per Codex 22048 ≈ 10616 21600 ≈ 10481 (per account; unlimited count)
Signature verification Off-chain only (Apollo not Pact-native) Off-chain; on-chain via Pact native verifier for the chain-side ED25519 Payment Key
Design intent Identity (permanent handle) Operational accounts (frequent use)

Note that the Codex Identity space is larger than the per-account Dalos space (10616 vs 10481) — by design. The identity layer needs more cryptographic margin than any individual account because identity is meant to be permanent, while accounts can be rotated. Apollo's 2×1024 architecture also gives the identity layer a Guardian-style cosign model that single-key accounts don't have.

Schnorr signatures on Dalos

Like Apollo, Dalos uses Schnorr signatures. Each signature is a pair (R, s) with verification s·G = R + e·P. The math is the same as Apollo; only the curve parameters differ.

Dalos signatures are also off-chain-verified in user-facing contexts (the Mnemosyne web app, OuronetUI, AncientHoldings, etc.). On StoaChain itself, Dalos signatures don't reach the Pact runtime — chain operations are authorized by the Ouronet account's Payment Key, which is a Stoa-native ED25519 keypair (k: account format). Dalos and the Payment Key are linked at account-creation time and together form what we call an "Ouronet account" in the user-facing sense.

Where Dalos seed words come from

A Dalos account can be created from any of these inputs:

All six are equivalent — they're different encodings of the same 1600 bits of entropy. The dalos-crypto package handles conversion between them; you can supply any format the user provides.

Related

Reference implementation: github.com/StoaChain/DALOS_Crypto