Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Bitcoin
  3. libwally-core

libwally-core

NOASSERTIONCrelease_1.5.6

A cross-platform library of cryptographic primitives for building cryptocurrency wallets.

GitHubGitHub
307 stars159 forks0 contributors

What is libwally-core?

libwally-core is a cross-platform library that provides cryptographic primitives and utilities essential for building cryptocurrency wallets. It solves the problem of implementing secure, consistent wallet functionality across different programming languages and operating systems. The library includes support for key operations like signing, address derivation, and optional Elements/Liquid features.

Target Audience

Cryptocurrency wallet developers, embedded systems engineers working on hardware wallets, and teams building cross-platform financial applications that require secure cryptographic operations.

Value Proposition

Developers choose libwally-core because it offers a battle-tested, portable foundation that abstracts away platform-specific complexities, reduces implementation errors, and is trusted by major projects like Blockstream Green and BitBox02 hardware wallets.

Overview

Useful primitives for wallets

Use Cases

Best For

  • Building cross-platform cryptocurrency wallets
  • Developing hardware wallet firmware
  • Creating embedded cryptocurrency applications
  • Implementing secure cryptographic operations in multiple languages
  • Adding Bitcoin/Elements support to existing applications
  • Developing WebAssembly-based wallet utilities

Not Ideal For

  • Projects requiring general-purpose cryptographic libraries for non-wallet applications (e.g., SSL/TLS, data encryption)
  • Teams wanting a drop-in, pre-compiled library without build complexities or dependency management
  • Applications that rely heavily on WebAssembly for secure signing operations, due to preview status and constant-time concerns
  • Developers seeking a pure JavaScript/TypeScript solution for browser-based crypto without WebAssembly integration

Pros & Cons

Pros

Cross-Platform Versatility

Builds for Linux, Android, macOS, iOS, Windows, embedded systems like ESP-32, and WebAssembly, as listed in the Platforms section, ensuring broad deployment options.

Multi-Language Accessibility

Provides native interfaces for C, C++, Python, Java, and JavaScript via SWIG bindings, enabling use across diverse tech stacks without rewriting crypto logic.

Battle-Tested Security

Includes extensive testing suites, coverage reporting, fuzzing support, and is trusted by major projects like Blockstream Green and BitBox02, as noted in the Users list.

Embedded-Friendly Design

Offers configurable minimal builds with the --enable-minimal option to reduce library size and memory usage for resource-constrained environments.

Elements/Liquid Integration

Optional support for Elements sidechain features via --disable-elements configure flag, enabling Liquid Network functionality without bloating the core library.

Cons

Complex Build Configuration

Requires running multiple scripts (autogen.sh, configure with numerous options) and managing git submodules, which adds setup overhead and potential for errors.

WebAssembly Security Caveats

WebAssembly support is a preview feature with warnings against using it for signing due to potential loss of constant-time properties, limiting secure browser applications.

ABI Stability Issues

The CHANGES.md file documents ABI changes, meaning upgrades may require code adjustments and can break compatibility in shared library deployments.

Dependency on External Tools

For language bindings like Python and Java, it relies on SWIG and specific installations (e.g., Java JDK, SWIG via brew), increasing setup complexity.

Frequently Asked Questions

Quick Stats

Stars307
Forks159
Contributors0
Open Issues27
Last commit3 days ago
CreatedSince 2017

Tags

#java bindings#embedded-systems#webassembly#javascript-bindings#bitcoin#python-bindings#cross-platform#cryptography#cryptocurrency-wallets

Built With

S
SWIG
A
Android NDK
J
JavaScript
W
WebAssembly
P
Python
J
Java
l
libsecp256k1
C
C++

Included in

Bitcoin1.3k
Auto-fetched 9 hours ago

Related Projects

libsecp256k1libsecp256k1

Optimized C library for EC operations on curve secp256k1

Stars2,482
Forks1,166
Last commit1 day ago
UltrafastSecp256k1UltrafastSecp256k1

Ultra high-performance secp256k1 ECC engine | Python, Node.js, Rust, Go, C#, Swift, Java bindings | CUDA, Metal, OpenCL GPU | ECDSA, Schnorr, FROST, MuSig2, BIP-352 | 15+ platforms

Stars52
Forks22
Last commit11 hours ago
LibbitcoinLibbitcoin

Stars0
Forks0
Last commit
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub