A TypeScript-first toolkit for building robust Stellar and Soroban applications with deterministic error handling, composable workflows, and extensible plugin architecture.
The foundation of the Colibri ecosystem. Provides pipelines, processes, and utilities for Stellar and Soroban workflows.
deno add jsr:@colibri/core
# or
npm install @colibri/coreA SEP-10 web authentication client for Stellar, with full-flow helpers, challenge validation, JWT handling, and flexible signer support.
deno add jsr:@colibri/sep10
# or
npm install @colibri/sep10A plugin that enables fee sponsorship by wrapping transactions in Fee Bump Transactions.
deno add jsr:@colibri/plugin-fee-bump
# or
npm install @colibri/plugin-fee-bumpA plugin and channel management helper for reusing sponsored Stellar channel accounts across classic and Soroban transaction pipelines.
deno add jsr:@colibri/plugin-channel-accounts
# or
npm install @colibri/plugin-channel-accountsA real-time event streaming client for Stellar/Soroban that supports live streaming, historical ingestion, and automatic mode switching.
deno add jsr:@colibri/rpc-streamer
# or
npm install @colibri/rpc-streamerDocker-backed test infrastructure helpers for Colibri packages, centered on
StellarTestLedger for local Quickstart-based integration tests.
deno add jsr:@colibri/test-toolingColibri is designed around a specific mindset to ensure reliability and debuggability in blockchain applications. It is built on top of the Convee framework, leveraging its patterns for functional, railway-oriented programming.
We do not throw generic errors. Every error in Colibri is a typed ColibriError
containing:
- Domain: The logical area (e.g.,
Pipeline,Process,Account). - Code: A stable, unique identifier (e.g.,
PIPE_INVC_002). - Meta: Structured data relevant to the error context.
- Diagnostic: Human-readable suggestions for resolution.
The architecture separates orchestration from execution, promoting reusability and testability.
-
Processes (The "How"): Atomic functions that do one thing well. They are plain reusable building blocks, independent from orchestration.
- Example:
signAuthEntriestakes Soroban auth entries plus signers and returns signed authorization entries. - Example:
simulateTransactiontakes a transaction, sends it to the RPC, and returns simulation results.
- Example:
-
Steps (The orchestration boundary): Thin
conveewrappers around processes. They attach stable step ids, plugin targets, and runtime context without polluting the process layer. -
Pipelines (The "What"): Orchestrators that chain processes together to achieve a high-level business goal.
- Example:
createInvokeContractPipeline(...)composes build, simulate, sign-auth, assemble, envelope-signing-requirements, sign-envelope, and send steps into one write flow.
- Example:
This composition allows us to swap parts easily. For instance, the FeeBump
plugin targets the SendTransaction step and wraps the outgoing transaction
before submission, without rewriting the rest of the pipeline.
Everything is strictly typed. From network configurations to error metadata, TypeScript is used to enforce correctness at compile time.
The system is built in layers, aiming to provide both high-level tools for specific use cases and highly specialized, bullet-proof building blocks.
- Layer 4: Plugins, Clients & Streamers
- Extensions (Fee Bump), specialized clients (Contract, Signer), and event streaming.
- Layer 3: Pipelines
- High-level workflows (
createInvokeContractPipeline,createReadFromContractPipeline).
- High-level workflows (
- Layer 2: Steps & Processes
- Plain process functions plus
conveestep wrappers with stable ids.
- Plain process functions plus
- Layer 1: Core
- Base types, Error primitives, Network configurations, account wrappers, and shared auth/address utilities.
This workspace is a Deno monorepo. We use specific tasks defined in
deno.json to maintain quality.
Run the test suite. You can run all tests or target specific types.
# Run all tests (Unit + Integration)
deno task test
# Run only unit tests
deno task test:unit
# Run only integration tests (requires network connection)
deno task test:integrationEnsure code style consistency.
deno lintMIT License - see LICENSE for details.
Status: Beta (🪶)