Skip to content

ELC-20

A proposed fungible asset standard for Sigils.

Draft

ELC-20 is an evolving, Sigil-based fungible asset standard for the Saelis ecosystem. It defines a consistent interpretation for Sigils that represent the deployment, issuance and movement of fungible units.

Scope

ELC-20 describes fungible assets whose state is derived by indexers from Sigils, rather than held in an ERC-20 contract. It covers three operations:

OperationPurpose
deployDeclares a new asset, its ticker and its supply constraints
mintIssues new units of a deployed asset to the minter
transferMoves units from the sender's balance to a recipient

Operation payloads and per-field rules are detailed in Operations.

How ELC-20 fits the envelope

An ELC-20 Sigil is an ordinary Sigil whose std field is elc-20. The operation and its arguments live in the body.

Draft Example — Not Finalized

JSON
{
  "p": "saelis",
  "v": 0,
  "std": "elc-20",
  "body": {
    "op": "deploy",
    "tick": "demo",
    "max": "21000000",
    "lim": "1000",
    "dec": "18"
  }
}

Supply constraints

A deploy fixes two constraints that every later mint must respect:

  • Maximum supply (max): the total number of units that can ever be minted.
  • Mint limit (lim): the maximum number of units a single mint may issue.

Neither can be changed after deployment, because there is no operation that modifies a deploy.

Balance computation

Balances are not stored anywhere. An indexer computes them by replaying every valid ELC-20 operation for a ticker in canonical order:

  • A valid mint adds amt to the minter's balance and to the total minted.
  • A valid transfer subtracts amt from the sender and adds it to the recipient.

The minter and the sender are always the account that signed the publishing transaction. A Sigil cannot move units on behalf of a different account.

Operation ordering

Operations are processed in canonical order: by block number, then transaction index, then intra-transaction index where applicable. Ordering decides every conflict. The first deploy of a ticker wins; when two mints compete for the last remaining supply, the earlier one is applied first.

Validation requirements

Every ELC-20 operation is validated against the state produced by all earlier operations. The proposed rules and their open edge cases are documented in Validation Rules.

Relationship to ERC-20

ELC-20 borrows the vocabulary of fungible tokens but not the mechanism. An ERC-20 balance is enforced by a contract; an ELC-20 balance is computed by indexers from published Sigils. ELC-20 units cannot be used directly by Elysium smart contracts unless a bridge or wrapping mechanism is later specified. No such mechanism exists.