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.
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.
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
Add the secp256k1-kmp dependency to the commonMain source set.
For JVM targets, add the secp256k1-kmp-jni-jvm dependency or the documented platform-specific JVM JNI artifact.
For Android, add secp256k1-kmp-jni-android.
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.
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

