All Projects → ACINQ → bitcoin-kmp

ACINQ / bitcoin-kmp

Licence: Apache-2.0 license
Kotlin Multiplatform Bitcoin Library

Programming Languages

kotlin
9241 projects
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to bitcoin-kmp

moko-graphics
Graphics primitives for mobile (android & ios) Kotlin Multiplatform development
Stars: ✭ 11 (-62.07%)
Mutual labels:  kotlin-multiplatform
kmm
Rick & Morty Kotlin Multiplatform Mobile: Ktor, Sqldelight, Koin, Flow, MVI, SwiftUI, Compose
Stars: ✭ 52 (+79.31%)
Mutual labels:  kotlin-multiplatform
ToDometer Multiplatform
WIP Kotlin Multiplatform project: A meter to-do list built with Android Jetpack, Compose UI Multiplatform, Wear Compose, SQLDelight, Koin Multiplatform, SwiftUI, Ktor Server / Client, Exposed...
Stars: ✭ 145 (+400%)
Mutual labels:  kotlin-multiplatform
mpp-example
This project is a minimum example of Kotlin Multiplatform Project.
Stars: ✭ 32 (+10.34%)
Mutual labels:  kotlin-multiplatform
kotlin-multiplatform-example
A Kotlin multiplatform example app that targets Android, ReactJS, iOS, JavaFx, and Spring Boot
Stars: ✭ 115 (+296.55%)
Mutual labels:  kotlin-multiplatform
thelema-engine
Thelema - 3D graphics engine, written in Kotlin. Based on sources of libGDX.
Stars: ✭ 51 (+75.86%)
Mutual labels:  kotlin-multiplatform
PopKorn
DI can be simple. Forget about modules and components. Just use it!
Stars: ✭ 139 (+379.31%)
Mutual labels:  kotlin-multiplatform
SevenFacette
7Facette is an open-source multiplatform test automation library supporting JVM and JS.
Stars: ✭ 28 (-3.45%)
Mutual labels:  kotlin-multiplatform
SQLiter
Minimal multiplatform sqlite library
Stars: ✭ 120 (+313.79%)
Mutual labels:  kotlin-multiplatform
2p-kt
A Kotlin Multi-Platform ecosystem for symbolic AI
Stars: ✭ 52 (+79.31%)
Mutual labels:  kotlin-multiplatform
Penicillin
Modern powerful Twitter API wrapper for Kotlin Multiplatform. #PureKotlin
Stars: ✭ 91 (+213.79%)
Mutual labels:  kotlin-multiplatform
kotlin-everywhere
Kotlin/Everywhere Beijing 2019
Stars: ✭ 31 (+6.9%)
Mutual labels:  kotlin-multiplatform
kotlin-multiplatform-example
A barebones Kotlin multiplatform project with JVM and JS targets
Stars: ✭ 15 (-48.28%)
Mutual labels:  kotlin-multiplatform
trikot.http
HTTP networking abstraction for Kotlin Multiplatform
Stars: ✭ 15 (-48.28%)
Mutual labels:  kotlin-multiplatform
storyblok-mp-SDK
Storyblok Kotlin Multiplatform SDK (Android, JVM, JS, iOS, ...)
Stars: ✭ 16 (-44.83%)
Mutual labels:  kotlin-multiplatform
kotlin-multiplatform-libsodium
A kotlin multiplatform wrapper for libsodium, using directly built libsodium for jvm and native, and libsodium.js for js targets.
Stars: ✭ 38 (+31.03%)
Mutual labels:  kotlin-multiplatform
hello-kotlin-multiplatform
Multiplatform Kotlin Hello World (Android/Java/JavaScript)
Stars: ✭ 64 (+120.69%)
Mutual labels:  kotlin-multiplatform
GitHubKotlinMPPSample
No description or website provided.
Stars: ✭ 15 (-48.28%)
Mutual labels:  kotlin-multiplatform
inject
A simple Kotlin multi-platform abstraction around the javax.inject annotations.
Stars: ✭ 42 (+44.83%)
Mutual labels:  kotlin-multiplatform
trikot
🧶 Trikot is a framework that helps building Kotlin Multiplatform apps. iOS, Android and Web are the primary targets.
Stars: ✭ 44 (+51.72%)
Mutual labels:  kotlin-multiplatform

Kotlin Maven Central Github Actions License

Kotlin Multiplatform Bitcoin Library

Overview

This is a simple Kotlin Multiplatform library which implements most of the bitcoin protocol:

  • base58 encoding/decoding
  • block headers, block and tx parsing
  • tx creation, signature and verification
  • script parsing and execution (including OP_CLTV and OP_CSV)
  • pay to public key tx
  • pay to script tx / multisig tx
  • BIP 32 (deterministic wallets)
  • BIP 39 (mnemonic code for generating deterministic keys)
  • BIP 173 (Base32 address format for native v0-16 witness outputs)
  • BIP 174 (Partially Signed Bitcoin Transaction Format v0)
  • BIP 350 (Bech32m format)

Objectives

Our goal is not to re-implement a full Bitcoin node but to build a library that implements all the primitives that you need to create bitcoin applications: building and signing transactions, verifying transactions, working with custom bitcoin scripts, parsing blocks, headers, transactions, building BIP39 wallets...

And of course we use this library in our new multiplaform lightning engine https://github.com/ACINQ/lightning-kmp.

Our runtime targets are:

  • JVM
  • Android
  • iOS
  • Linux 64 bits (for testing/prototyping only, you should use the JVM for production applications)

Status

  • Message parsing (blocks, transactions, inv, ...)
  • Building transactions (P2PK, P2PKH, P2SH, P2WPK, P2WSH)
  • Signing transactions
  • Verifying signatures
  • Passing core reference tests (scripts & transactions)
  • Passing core reference segwit tests
  • Passing core reference psbt v0 tests

Install

bitcoin-kmp is available on maven central

  • Multiplatform: Add the fr.acinq.bitcoin:bitcoin-kmp dependency to your common source set dependencies (you need Gradle 5.0 minimum).
  • JVM: Add the fr.acinq.bitcoin:bitcoin-kmp-jvm dependency to your project.

libscp256k1 support

You need to add a JVM implementation of Secp256k1 to your project in order to use bitcoin-kmp with JVM.

Please refer the Secp256k1 installation section.

Usage

Please have a look at unit tests, more samples will be added soon.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].