Bitcoin and Lightning development
Software for Bitcoin and Lightning from developers who have worked with the protocol for many years — from trading platforms and payments to wallets, mining, and hardware.

Tools and frameworks we use
- Bitcoin Core
- BDK (Bitcoin Dev Kit)
- Descriptors and miniscript
- Electrum
- Lightning (lnd)
- BTCPay Server
- Stratum V2
- Nostr
- Rust
- Go
- C#
- Flutter
- ESP32
Bitcoin development with protocol experience
Bitcoin places different demands on software than ordinary payment systems. Transactions cannot be reversed, keys must be handled with great care, and many users expect to run the software on their own hardware. We have worked with Bitcoin for many years and know the protocol, the libraries, and the surrounding ecosystem.
For Bitmynt, Norway’s oldest bitcoin exchange service, we contributed to a new platform with automated trading. We have also reconstructed historical BTC/NOK prices for 2010–2014, and we maintain Canary, a self-hostable service that monitors wallets with xpubs and descriptors through BDK and Electrum, without ever having access to the funds.
Architecture choices in Bitcoin projects: keys, nodes, and regtest
In Bitcoin, the most important decisions are often made before the first line of code. These are the choices we make in most projects:
- Watch-only wherever possible. Services that monitor, report, or create invoices get only descriptors or xpubs. Signing happens with the user, ideally on a hardware wallet via PSBT.
- A deliberate choice of data source. Your own Bitcoin Core node gives the best privacy and the least trust in others, while an Electrum server is quicker to get started with. We make the choice explicit, and let users of self-hosted software point to their own node.
- Amounts as integer satoshis. Never floating point, and conversion to NOK or other currencies only where the amount is displayed.
- Reorgs taken seriously. The logic must cope with a transaction disappearing from a block, and the number of confirmations is matched to the amount.
- Regtest in the tests. Integration tests run against real nodes on a local regtest network, where we can mine blocks and provoke failures in seconds, before anything is tried on testnet or signet.
Lightning, BTCPay Server, and hardware
We have built a BTCPay Server plugin in C# that receives Lightning payments directly into Bare Bitcoin, and an integration that records donations in WordPress and WooCommerce. We have worked on Lightning wallets based on lnd and Flutter, on Stratum V2 solo mining in Canary Mining, and on Nostr identities derived from passkeys. On the hardware side, we have written a Go library for Satscard and other NFC cards, and an offline, dice-based seed generator for ESP32.
Typical engagements
Trading and payment platforms
Secure, automated trading and payments in bitcoin, with integrations to external services and in-house systems.
Wallets and monitoring
Wallet monitoring with xpubs and descriptors, without access to private keys, and Lightning wallets for mobile.
BTCPay Server and Lightning payments
Plugins and integrations that let shops and organisations accept bitcoin and Lightning, including in WordPress and WooCommerce.
Self-hosting, mining, and hardware
Software for StartOS, myNode, and Umbrel, Stratum V2 solo mining, and hardware projects with NFC and ESP32.
Relevant experience
Projects and open-source work where the technology has been used in practice.

Canary: alerts when bitcoin in cold storage moves
We built Canary, a self-hostable and hosted bitcoin monitoring service with a Rust backend and a Next.js frontend, sending alerts via ntfy, Nostr, email, and SMS.

Enogtjue: bitcoin trading volume in Norway, collected every day
We built the platform behind enogtjue.no: Go services that collect and aggregate trading data from Norwegian bitcoin exchanges, a Fiber API, PostgreSQL, and a bilingual Next.js website.
Open source
- canary
Self-hostable Bitcoin wallet monitoring with xpubs and descriptors, with email and Nostr alerts. Built in Rust with BDK and Electrum.
- btcpayserver-plugin-barebitcoin
A BTCPay Server plugin in C# that lets shops receive Lightning payments directly into a Bare Bitcoin account.
- tapcards
A Go library for communicating with Satscard and other Coinkite NFC cards.
- lilygo-tdisplay-bitcoin-dice-seed-generator
An offline, dice-based BIP39 seed generator for the LilyGO T-Display ESP32 board.
- canary-mining
A self-hosted Stratum V2 server for solo mining against Bitcoin Core over IPC, written in Rust.
Frequently asked questions
Do you have experience with Bitcoin in production?
Yes. Among other things, we contributed to the new trading platform for Bitmynt, Norway’s oldest bitcoin exchange service, and we maintain several open-source projects for Bitcoin and Lightning.
Do you work with other cryptocurrencies?
No. We work with Bitcoin and Lightning, and with adjacent protocols such as Nostr.
Can you add bitcoin payments to an online shop?
Yes. We often use BTCPay Server, which connects to WooCommerce and other platforms, and we can build custom plugins where needed.
How do you handle key security?
We design solutions so private keys live in as few places as possible, ideally only with the user. Services that monitor or report are built with public keys and descriptors.
Can you build software for self-hosted nodes?
Yes. Canary is packaged for StartOS and myNode, and we have experience with how apps are distributed on platforms such as Umbrel.
Related technologies
Part of the service: Backend development and integrations
TypeScript and Node.js
Backend services, integrations, and internal tools in TypeScript and Node.js, from REST APIs to build and release automation.
Read more.NET and C#
APIs, microservices, and integrations in C# and .NET, from new services to modernising older codebases to .NET 10.
Read moreRust development
Rust backends with Axum and Tokio for long-running, security-sensitive services, with tests, Docker, and packaging for self-hosting.
Read moreNeed help with Bitcoin and Lightning?
Tell us briefly about the product, the team, or the system. We will respond with a practical suggestion for the next step — a complete delivery, senior capacity in your team, or technical advice.
- Phone
- +47 920 50 946
- Location
- Oslo, Norway