Last updated 3 weeks ago
Untapped developer community of BEAM developers with experience in building massively concurrent and resilient distributed systems can't build on Cardano due to missing protocol libraries.
Develop an Elixir client library for Ouroboros networking protocols, enabling Cardano development in Elixir and on the Erlang VM (aka BEAM)
Please provide your proposal title
Elixir client for Ouroboros networking protocol
Enter the amount of funding you are requesting in ADA
100000
Please specify how many months you expect your project to last
8
Please indicate if your proposal has been auto-translated
No
Original Language
en
What is the problem you want to solve?
Untapped developer community of BEAM developers with experience in building massively concurrent and resilient distributed systems can't build on Cardano due to missing protocol libraries.
Supporting links
Does your project have any dependencies on other organizations, technical or otherwise?
Yes
Describe any dependencies or write 'No dependencies'
This project relies on Pallas by TxPipe (in particular, pallas-network) and gOuroboros by Blink-Labs, whose source code will be used as a reference - in particular for the CBOR parsing alongside official documentation.
Will your project's outputs be fully open source?
Yes
License and Additional Information
The first version of the project has been publicly available from the start and will continue to be open-source under the Apache License 2.0.
Please choose the most relevant theme and tag related to the outcomes of your proposal
Infrastructure
Mention your open source license and describe your open source license rationale.
Under the Apache 2.0 license anyone can use, modify, and distribute the code without seeking permission. This ensures the library remains accessible regardless of political or corporate pressures. Companies can integrate and build upon the code commercially, preventing vendor lock-in.
How do you make sure your source code is accessible to the public from project start, and people are informed?
The source code for the project has been available on a public Github repository since the beginning. Moving forward, all new work will be done on this existing repository and new releases announced on social platforms for everyone to know.
How will you provide high quality documentation?
High quality documentation will be provided in a number of ways. First, as part of the coding process, code comments provide information on particular functions and design decisions. Some of the code comments are also executable as tests via Elixir's DocTest functionality. Doctests allow us to generate tests from code examples. Then, examples on different ways the library can be used will be included in the repository as runnable scripts. A README will also be updated with the current state of the project, including features that it currently supports and different ways to run the examples.
Please describe your proposed solution and how it addresses the problem
To develop a client for Cardano’s Ouroboros node-to-client (N2C) protocol using the Elixir programming language. This client will communicate with a Cardano node and serve as a robust foundation for developing future Elixir based projects and services.
By leveraging the capabilities of Elixir and the BEAM (Erlang’s VM), this project aims to expand the developer ecosystem, enabling a wide range of technologies that compile to the BEAM to build innovative and efficient applications on Cardano.
The development of this project has been started in the previous Catalyst Funding round with all milestones successfully delivered within budget and timeline. The project is available at https://github.com/wowica/xander
In this round we are aiming to continue development as described in the milestones section below.
Please define the positive impact your project will have on the wider Cardano community
This project aims to deliver significant value to the Cardano community by harnessing the strengths of Elixir, Erlang, and the BEAM—technologies renowned for building highly concurrent, fault-tolerant, and resilient distributed systems. These characteristics are in line with what is expected from a blockchain network, thus making Elixir an ideal language to build systems on Cardano.
Elixir is a functional, dynamic programming language that runs on the Erlang Virtual Machine. In the most recent StackOverflow Developer Survey, Elixir was elected as one of the top 3 most admired programming languages - https://survey.stackoverflow.co/2025/technology#admired-and-desired . The underlying Erlang VM (known as the BEAM) was developed by Ericsson and has been battle tested for over 30 years. A few examples of services and tools built using this technology include WhatsApp, RabbitMQ, Discord and AdRoll just to name a few. These are all services known for their high availability and throughput.
There exists a substantial, yet untapped, ecosystem of Elixir developers who currently do not have the tools to build on Cardano. By providing these developers with familiar and powerful tools integrated directly with Cardano's infrastructure, this project will not only broaden the developer base but also foster innovation and fresh perspectives within the community. This expansion encourages a cross-pollination of ideas and practices from different tech backgrounds, enhancing the innovative capacity of the Cardano ecosystem.
Additionally, this project will significantly diversify the tools and technologies available to Cardano developers. By expanding the technological landscape of the Cardano ecosystem, this project will enable a broader range of developers to contribute to and benefit from the ongoing growth and success of Cardano.
What is your capability to deliver your project with high levels of trust and accountability? How do you intend to validate if your approach is feasible?
The main applicant of this proposal has worked in the software development industry for over 15 years, with the last 7 years dedicated to consulting in Elixir. He's published over 70 video courses published on Pluralsight on various technology topics including the Elixir programming language - https://app.pluralsight.com/profile/author/carlos-souza
The feasibility of this approach can be validated by the first version of this project available at https://github.com/wowica/xander.
The accountability of the applicants can be verified through the contributions to the Cardano ecosystem. A few examples include:
Through our combined experience developing numerous Elixir applications, including Xogmios, the Elixir client for Ogmios, and contributions to other Cardano projects we have gained an understanding of the different Ouroboros n2c mini-protocols. This gives us confidence in the feasibility of this project and in the fact that this team is well suited to deliver its promise.
Milestone Title
Additional Local State Queries
Milestone Outputs
Updates to the existing Xander library with support for 10 additional Local State Queries.
These are new queries part of the Local State Query mini-protocol in addition to the ones already supported by the library. The new queries were selected based on relevance for transaction builders and information related to on-chain governance.
Acceptance Criteria
The following 10 local state queries will be supported:
Evidence of Completion
Running a script part of the Xander repository that connects to a Cardano node, issues a request for each of the aforementioned local state queries and displays a human readable result.
Delivery Month
3
Cost
33000
Progress
30 %
Milestone Title
Conway Partial Transaction Decoding
Milestone Outputs
Updates to the existing Xander library that add support for decoding transaction inputs and partial outputs for the Conway era.
The information made available from the block in this milestone should be enough to be used as a data source for a simple output indexer that provides the balance for a given address.
Acceptance Criteria
Evidence of Completion
Running a script part of the Xander repository that connects to a node and lists blocks via the Chain Synchronization mini-protocol. For each Conway block read from the upstream node, the following is displayed:
Delivery Month
2
Cost
33000
Progress
30 %
Milestone Title
Additional Conway Decoding and Babbage Block headers
Milestone Outputs
Updates to the existing Xander library that add additional decoding of Block information for Conway era and initial support for decoding Babbage Blocks. The additional information for Conway blocks should provide more visibility for block explorer applications with information such as fees, issuer (Stake Pool that minted the block) and withdrawals.
Acceptance Criteria
Display additional transaction information from a Conway block. In addition to the existing information from the previous milestone, for each transaction, information for the following will also be decoded:
Display basic information for Babbage era Blocks, including block number and block size.
Evidence of Completion
Running a script part of the Xander repository that connects to a node and lists blocks via the Chain Synchronization mini-protocol starting from Babbage era.
For each Babbage block read from the upstream node, the following is displayed:
For each Conway block read from the upstream node, the following information is displayed in addition to the ones previously supported:
Delivery Month
3
Cost
33000
Progress
30 %
Milestone Title
Final Project Presentation
Milestone Outputs
This final milestone includes the closeout report describing how the project went and including insights into the KPIs for the project. It will also include a closeout video presenting the project.
Acceptance Criteria
The final clouseout report will be made available as a PDF via a publicly available link and the closeout report video will be a 2 to 5 min video going over the project which will be made available via a public youtube link
Evidence of Completion
A final closeout report as a PDF and a final closeout video made available via a publicly accessible link
Delivery Month
1
Cost
1000
Progress
10 %
Please provide a cost breakdown of the proposed work and resources
For the total cost of this project, the following are included:
Milestone 1: 33,000 ADA / 266 hours
The work for this milestone involves coding the serialization for each one of the 10 proposed local queries part of the Local State Query mini-protocol. This includes CBOR encoding the request messages sent to the node as well as CBOR decoding the responses from the node. Part of this work will be implementing design patterns in the code which will make it easier to add more local queries in the future as well as re-utilizing the CBOR serialization code in other Elixir projects.
Milestone 2: 33,000 ADA / 266 hours
The work for this milestone involves continuing the work on the Chain Synchronization mini-protocol already implemented in Xander by decoding block information. Information for transaction inputs and outputs will be extracted from the CBOR encoded block body. Refactoring of the current code is planned as part of this milestone as well, which will enable easier maintenance and further expansion of new information to be decoded.
Milestone 3: 33,000 / 266 hours
This milestone will decode additional Block information for transactions, as part of the Chain Synchronization mini-protocol. This includes transaction information such as Fee, Datum, Datum Hash, Script (Native, Plutusv1, PlutusV2 or PlutusV3), Withdrawals, Signatories and Issuer. This final technical milestone will also introduce support for decoding Babbage era blocks and reading block header information such as header and block size. This should leave the project in a good state for continuing development after the conclusion of this round.
Milestone 4: 1,000 ADA / 8 hours
The work for this milestone involves completing and publishing the close-out report and close-out video.
How does the cost of the project represent value for the Cardano ecosystem?
The efficiency and robustness of Elixir and BEAM-based applications cannot be overstated, and adding this technology to the currently available libraries for building in Cardano represents tremendous value for the money. This project also has the potential to onboard a new wave of developers to Cardano, bringing knowledge from an ecosystem with over 30 years of success in the telecommunications industry.
Terms and Conditions:
Yes
Carlos Souza - Elixir Developer and Tech lead
https://www.linkedin.com/in/caike/
Dave Miner - Elixir Developer