GalleryFRAYActivityLeaderboardStudio
GalleryArtistsFRAYActivityLeaderboardCode modulesHow it worksMy claimsStudio

Discover, collect and make digital art that lives onchain. Built on KEEL, so every work stays viewable without depending on any one website.

Creative toolsPreserveDocumentationHow we verifyCode modulesLook up a workYour profile
OnKeel Guide
⌕/
Browse documentation
Overview

Start here

One engine. A connected creative world.Your work, your choicesThe Shell & Harness

Create

Revisions, freezes & preservationKEEL collections & mintingThe launchpad: from work to releaseThe marketplace: after the mintYour artist page & creative identityCosts, reads & interrupted uploads

System

The Hold: storing a workThe Crucible: checks & permissionsParts, modules & shared codeInline, Hybrid & direct mediaEthereum, Tezos & AnchorsKEEL on Ethereum / EVMKEEL on Tezos / TEZThe Index & discoveryThe Rites: contract map

Tools

Images, code & worldsThe SDK: KEEL from codeChain data: let the work respondMCP: working with an assistantThe editor: bring it all together

Projects

FRAY: KEEL’s auction systemOnchaininator: preserving existing work

Reference

The design language: one word, one jobKEEL’s words, explainedWhen something does not open
Overview

Start here

One engine. A connected creative world.Your work, your choicesThe Shell & Harness

Create

Revisions, freezes & preservationKEEL collections & mintingThe launchpad: from work to releaseThe marketplace: after the mintYour artist page & creative identityCosts, reads & interrupted uploads

System

The Hold: storing a workThe Crucible: checks & permissionsParts, modules & shared codeInline, Hybrid & direct mediaEthereum, Tezos & AnchorsKEEL on Ethereum / EVMKEEL on Tezos / TEZThe Index & discoveryThe Rites: contract map

Tools

Images, code & worldsThe SDK: KEEL from codeChain data: let the work respondMCP: working with an assistantThe editor: bring it all together

Projects

FRAY: KEEL’s auction systemOnchaininator: preserving existing work

Reference

The design language: one word, one jobKEEL’s words, explainedWhen something does not open

Guide/Reference·2 min read

The design language: one word, one job

Read KEEL’s symbols and ASCII diagrams as a map of how the engine is built.

Select an underlined word to see what it means.

In this guide
Start with the structure underneath.The symbol follows the job.Read the drawing, then follow the method.Familiar standards keep their names.

“Why is there a shipyard inside the code?”

Connect the source’s visual language to the job each contract performs.
THE RITES / ONE JOB PER MODULE FAMILYTRY THE IDEA
⌂Storage

Keep the files

Stores pieces and the instructions for recovering the whole file.

See the contract files

src/modules/keel-hold

  • KeelHold.sol
  • Ingot.sol
  • KeelIndex.sol
  • interfaces/IKeelHold.sol
  • interfaces/IKeelHoldLimits.sol
  • interfaces/IKeelHoldSeal.sol
  • libraries/KeelSealValidation.sol
  • libraries/KeelCastDispatch.sol
  • interfaces/IKeelIndex.sol
  • interfaces/IKeelHoldHarness.sol
NATIVE TEZOS IMPLEMENTATION

src/modules/keel-hold/tezos

  • keel_hold.py
  • keel_hold_onchfs.py
  • keel_index.py
Mapped from the 19 current contract module manifests. Family symbols are navigation cues; this map describes source architecture, not deployment status.

Start with the structure underneath.

A keel is the first structural spine of a ship. KEEL borrows that idea for a creative engine: lay a shared foundation, then give other people something they can build on.

The banner at the top of each contract file brings that thinking into the source itself. The symbol, purpose, and diagram appear before the methods so the reader can understand the job before tracing the machinery.

The symbol follows the job.

⌂ HoldKEEL's native onchain storage for the file bytes and the instructions for joining them back together.For exampleYour sketch and its shared drawing library are stored as separate objects in the Hold.Full glossary entry → is storage. ⬢ IngotOn Ethereum, each Slug is saved inside its own small contract, called an Ingot.For exampleThe EVM Hold reads bytes from Ingots. Tezos stores Slugs in native maps instead.Full glossary entry → is a stored piece. ═╬═ WeldAn ordered join that makes Slugs or smaller objects into a larger object.For exampleA Weld records that the first, second, and third pieces must be read in that order.Full glossary entry → joins pieces. ✶ MarkA file's computed fingerprint, also called a digest or hash. A reader recomputes it to check the bytes.For exampleChanging the sketch's background color changes its Mark. A filename alone would not reveal that change.Full glossary entry → identifies bytes. ▣ HarnessThe composition that runs the work: its selected resources, runtime context, and isolated environment.For exampleThe Harness connects your sketch to its drawing library and runs it inside the Cage.Full glossary entry → assembles the work. ◈ DieThe artist's token contract. It records the Slabs, their owners or balances, supply, and presentation bindings.For exampleA Die can issue a series of 100 individually identified works.Full glossary entry → sets the collection’s rules.

These symbols are navigation aids, not additional token types. Their names carry across the guide, SDK concepts, and contract families.

Read the drawing, then follow the method.

In the HoldKEEL's native onchain storage for the file bytes and the instructions for joining them back together.For exampleYour sketch and its shared drawing library are stored as separate objects in the Hold.Full glossary entry → source, separate IngotOn Ethereum, each Slug is saved inside its own small contract, called an Ingot.For exampleThe EVM Hold reads bytes from Ingots. Tezos stores Slugs in native maps instead.Full glossary entry → meet at WeldAn ordered join that makes Slugs or smaller objects into a larger object.For exampleA Weld records that the first, second, and third pieces must be read in that order.Full glossary entry → and form a tree. That drawing explains why a large file can be split, reused, and recovered in order.

Adapted from the Hold contract’s ASCII diagram
Adapted from the Hold contract’s ASCII diagram
       ⌂ HOLD · bytes below the waterline

    [INGOT]   [INGOT]   [INGOT]   [INGOT]
        └─ WELD ─┘         └─ WELD ─┘
             └────── WELD ──────┘
                       │
                  the whole file

    cut → cast → weld → recover → check

Familiar standards keep their names.

KEEL’s words describe jobs. Existing standards describe how systems talk. ERC-721, ERC-1155, FA2, and OnchFS retain their names and formats so other tools can understand the work.

The goal is one connected web across supported systems. A shared name does not erase differences in deployment, fees, wallet support, or what a viewer can run.

Source of the vocabulary

The canonical vocabulary lives in keel-contracts/docs/KEEL_LEXICON.md and docs/GLYPHS.md. The HoldKEEL's native onchain storage for the file bytes and the instructions for joining them back together.For exampleYour sketch and its shared drawing library are stored as separate objects in the Hold.Full glossary entry → diagram comes from src/modules/keel-hold/KeelHold.sol. Wire-format identifiers such as STR3 retain their existing bytes for compatibility; changing a public name must not silently change a stored format.

KEEP EXPLORING

The Rites: contract map→KEEL’s words, explained→The Hold: storing a work→Ethereum, Tezos & Anchors→
← PreviousOnchaininator: preserving existing workNext →KEEL’s words, explained

ON THIS PAGE

Start with the structure underneath.The symbol follows the job.Read the drawing, then follow the method.Familiar standards keep their names.