The brief#
Our team shipped two additions to Core Registry, Chia Network's open-source software for national carbon credit registries: a dashboard a registry can put on its public website, and an address book of the people it issues credits to.
A registry on Core Registry holds a country's carbon projects and credits. It can tokenize those credits on Chia's blockchain. Its records are published to the Climate Action Data Trust, a shared record of carbon credits, which began as the World Bank's Climate Warehouse. Bhutan, the first nation whose registry linked up with that shared record, runs its registry on Core Registry. Chia built the software with the Climate Warehouse team.
Tests of the system the World Bank had defined showed what countries running it would need next. Those changes were commissioned by the Kingdom of Bhutan and the World Bank, and Chia brought them to us. The two biggest pieces: the whole registry in one view, in the app and on the country's public site, and an end to keying in each recipient's wallet address by hand, a chore that was daunting and invited mistakes.
The hard part: eight repositories and a synced node#
Before changing anything, our team had to get Core Registry running, and it is several apps, not one. The registry had a back end and an interface, and so did the tokenization engine. The token driver, the piece that creates and destroys tokens on the chain, was also what ran the explorer, and the explorer brought an interface of its own. Two further repositories combined everything into a single API and a single app.
A local copy meant eight repositories working together: the JavaScript apps on one version of Node, the token driver on one version of Python, all reading one shared config file. At the bottom sat a Chia node, whose wallet and DataLayer had to sync to Chia's test network for registries before anything above them would start.
Chia's engineers took our team through the setup on calls, and they merged only signed commits. Our first line of new code came after all of that was in place.
What we built: a dashboard a registry can publish#
The dashboard is a new app that sits next to the registry's own. Chia had outlined what it should show. Saif Pasha designed it, in Figma first and then in code.
Page one gives project counts per status, with every status linked to its glossary definition. It breaks issued carbon down by methodology and by project type, and shows the number of projects the registry hosts itself. Page two plots issued carbon across ten years by unit type, with a status filter, and all the registry's credits per status, with a vintage filter.
A registry can host the dashboard on its public website because it also builds as a standalone web app. Chia's engineers then added it to Core Registry, making it the suite's fourth app.
The address book and the gate in front of it#
The address book took our team into the back end. Its hardest piece was the proxy. Credits are issued in the tokenization engine, which had no database. Because the engine always runs alongside the registry, the address book went into the registry's database. The engine's interface still talks only to the engine, which passes each request on.
Two facts shaped the proxy. Who an issuer sends credits to is private, and a registry can also run as a read-only copy open to public queries. So the proxy is a gate. It first looks for the tokenization engine's own key. Only a request carrying the correct one gets the registry's key, which the proxy reads from its config and attaches on the server, out of every browser's reach. Anything else stops at the gate and never reaches the registry.
The issuer sees a list. Each recipient's name and wallet address goes in once, and can be edited or deleted on the same page. From then on, issuing credits starts with a name chosen from a dropdown, though pasting an address still works.
The outcome#
Chia's engineers reviewed and merged every change into Core Registry's open-source code, and Chia handed the work on to the World Bank and Bhutan.


With the dashboard in place as the suite's fourth app, any country on Core Registry could now show the public its registry's numbers on its own website. Its issuers could send credits to a recipient saved and checked once, where every issuance used to begin with a wallet address typed by hand.