explaingit

input-output-hk/cardano-sl

3,763HaskellAudience · researcherComplexity · 5/5Setup · hard

TLDR

The original Haskell source code for the Cardano cryptocurrency base layer, implementing the Ouroboros proof-of-stake protocol for recording and transferring ADA, now a historical archive as development has moved to successor repositories.

Mindmap

mindmap
  root((cardano-sl))
    What it is
      Cardano base layer
      ADA ledger
      Historical codebase
    Key technology
      Ouroboros protocol
      Proof of stake
      Formal security proof
    Language
      Haskell
      Functional style
      Formal verification
    Status
      Archived
      Succeeded by upgrades
      Academic reference
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Study the original implementation of Ouroboros, the first formally proven proof-of-stake blockchain consensus protocol

USE CASE 2

Use as an academic reference for understanding how energy-efficient block production was first implemented at scale

USE CASE 3

Explore how Haskell and formal verification techniques were applied to build a production cryptocurrency network

Tech stack

Haskell

Getting it running

Difficulty · hard Time to first run · 1day+

This is a historical codebase with sparse setup instructions, active Cardano development has moved to successor repositories.

No license information is provided in this repository's README.

In plain English

Cardano SL (Settlement Layer) is the original source code for the Cardano cryptocurrency, developed by IOHK, a blockchain research and engineering company. It represents the first full implementation of the Cardano blockchain, written in Haskell, a programming language known for its emphasis on mathematical correctness and formal verification. The Settlement Layer is the base layer of the Cardano network: it handles recording and transferring ownership of ADA, the native coin of the Cardano blockchain. The name "Settlement Layer" comes from the original Cardano architecture, which separated the currency ledger (settlement) from the computation and smart contract layer (a separate planned component at the time). The key technical feature this codebase implements is the Ouroboros proof-of-stake protocol. In most early blockchains, new blocks were added by computers competing to solve computational puzzles (proof of work), which consumes large amounts of energy. Ouroboros instead selects block producers based on how much of the currency they hold and have staked, which achieves the same network security properties with far less energy use. Ouroboros was notable at the time of release because it came with a formal academic security proof, published in peer-reviewed research. The README for this repository is sparse and points to external documentation for installation instructions, building from source, and contributing guidelines. This codebase is historical in nature: Cardano has since undergone multiple major upgrades (Shelley, Goguen, Basho, Voltaire) and the active development has moved to successor repositories.

Copy-paste prompts

Prompt 1
Explain how the Ouroboros proof-of-stake protocol in cardano-sl selects block producers without using energy-intensive mining.
Prompt 2
What is the Settlement Layer in Cardano SL and how does it differ from the computation layer that was planned separately?
Prompt 3
How does cardano-sl use Haskell to achieve mathematical correctness guarantees that most blockchain codebases lack?
Prompt 4
Walk me through the key modules in the cardano-sl codebase that implement the core ledger and transaction validation logic.
Open on GitHub → Explain another repo

← input-output-hk on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.