#blockchain #celestia #lumina

celestia-types

Core types, traits and constants for working with the Celestia ecosystem

23 releases (breaking)

Uses new Rust 2024

0.17.0 Nov 21, 2025
0.15.0 Sep 8, 2025
0.13.0 Jul 29, 2025
0.10.1 Feb 24, 2025
0.1.1 Jan 15, 2024

#2 in #celestia

Download history 3618/week @ 2025-08-18 4015/week @ 2025-08-25 3612/week @ 2025-09-01 4258/week @ 2025-09-08 4826/week @ 2025-09-15 4291/week @ 2025-09-22 4049/week @ 2025-09-29 4258/week @ 2025-10-06 4525/week @ 2025-10-13 3594/week @ 2025-10-20 3324/week @ 2025-10-27 3885/week @ 2025-11-03 3709/week @ 2025-11-10 3079/week @ 2025-11-17 2806/week @ 2025-11-24 3109/week @ 2025-12-01

12,878 downloads per month
Used in 10 crates

Apache-2.0

665KB
13K SLoC

Celestia types

Core types, traits and constants you may encounter when working with the Celestia ecosystem.

Most of the types are built on top of the celestia-tendermint-rs and celestia-proto and support the serialization and deserialization using protobuf and serde to the format understood by nodes in celestia network.

use celestia_types::{AppVersion, Blob, nmt::Namespace};

let my_namespace = Namespace::new_v0(&[1, 2, 3, 4, 5]).expect("Invalid namespace");
let blob = Blob::new(my_namespace, b"some data to store on blockchain".to_vec(), None, AppVersion::V2)
    .expect("Failed to create a blob");

assert_eq!(
    &serde_json::to_string_pretty(&blob).unwrap(),
    indoc::indoc! {r#"{
      "namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIDBAU=",
      "data": "c29tZSBkYXRhIHRvIHN0b3JlIG9uIGJsb2NrY2hhaW4=",
      "share_version": 0,
      "commitment": "m0A4feU6Fqd5Zy9td3M7lntG8A3PKqe6YdugmAsWz28=",
      "index": -1,
      "signer": null
    }"#},
);

Dependencies

~15–24MB
~490K SLoC