OpenViSTAI · Agents · Blockchain · Crypto
Menu
Developer Tools

Secp256K1 Kmp

Secp256K1 Kmp is an Apache-2.0-licensed Kotlin Multiplatform wrapper for Bitcoin Core’s secp256k1 cryptographic library. It provides a common Kotlin interface with native C-interop implementations for iOS and Linux and JNI bindings for JVM and Android.

Independent OpenViST project profile, based on linked sources.

Secp256K1 Kmp — OpenViST project profile in Developer Tools.
OpenViST project illustration. See the linked sources for product details.
Understand the project

Practical overview

When it fits

Use it when a Kotlin Multiplatform application needs access to Bitcoin Core secp256k1 functions and the developer can configure the native or JNI dependency required by each target.

Who it is for

  • Kotlin Multiplatform developers adding secp256k1 cryptographic operations to Bitcoin applications.
  • Teams sharing Kotlin code across Android and iOS while using the library’s common interface.
  • Library contributors implementing additional secp256k1 methods across common, JNI and native code.

Documented uses

  • Declare secp256k1 as a dependency in a Kotlin Multiplatform project.
  • Configure the correct native or JNI artifacts for JVM, Android, iOS or Linux targets.
  • Build and publish the library’s compiled artifacts to Maven Local.
  • Run the documented all-platform or JVM-specific test tasks.
  • Extend the wrapper with methods from the underlying secp256k1 library.
Before you choose

Requirements & limits

The library is available through Maven Central. The repository displays an Apache-2.0 license.

  • JVM and Android require additional JNI artifacts; native iOS and Linux targets use the core dependency through C interop.
  • The README lists supported JNI binaries for 64-bit Linux, Windows and macOS; it notes that unsupported JVM environments can use a custom native library.
  • Building requires a 64-bit Windows, Linux or macOS environment and OpenJDK 11; an Android SDK is optional.
  • Linux x64 builds that cross-build for Linux arm64 require a cross-compiler.
  • The README directs users to unit tests for usage examples.

Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.

Source-based practical guide

Add the library to a Kotlin Multiplatform project

Declare the core and platform-specific dependencies for the project targets shown in the README.

Before you start

  • A Kotlin Multiplatform project using Gradle Kotlin DSL.
  • A version value for the secp256k1-kmp artifacts.
  • Choose targets and add matching dependencies; JVM and Android require JNI dependencies.

Steps

  1. Add the secp256k1-kmp dependency to the commonMain source set.

  2. For JVM targets, add the secp256k1-kmp-jni-jvm dependency or the documented platform-specific JVM JNI artifact.

  3. For Android, add secp256k1-kmp-jni-android.

  4. For native iOS or Linux targets, add the fr.acinq.secp256k1:secp256k1 dependency.

Expected outcome

The project build configuration declares the core library and the target-specific bindings needed by the selected source sets.

Guide limitations

  • The README does not provide a specific artifact version in its example; supply a version appropriate to the project.
  • This setup guide does not demonstrate application-level cryptographic operations.
  • The documented JNI binaries cover listed 64-bit platforms; other JVM environments may require a custom native library.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
14 October 2026
Original website title
ACINQ/secp256k1-kmp · Official homepage title · retained in its source language