Skip to content

Capabilities

What you can build with Kuira, split two ways: what your users get from an app built on it, and what you get as the developer building it.

Built on a native Rust core — not a WASM sandbox

The cryptographic core — wallet, ledger, Dust, and zero-knowledge proving — is a native Rust library compiled straight to an Android .so and called over JNI. It runs as native ARM64 machine code, not the Midnight stack's WebAssembly modules inside an embedded runtime. That's the foundation that makes on-device proving viable.

(Compact contract logic itself executes in a QuickJS runtime; the claim here is about the crypto/proving core, not contract execution.)


For your users

Benefit-first — the capabilities your app can offer the people using it.

  • Your data never leaves the phone


    Zero-knowledge proofs are generated on-device, offline — there is no proof server in the loop. Nothing private is sent anywhere to be proven.

  • A wallet with no custodian


    The wallet lives inside your app, not behind a separate wallet app or a hosted service. Full shielded + unshielded balances and Dust, with nobody holding the keys but the user.

  • Sign up with one tap, no seed phrase


    A single biometric mints the user's identity and wallet. No 24-word phrase to write down at onboarding (passkey-derived under the hood).

  • Move to a new phone without losing the wallet


    Recovery rides the user's synced passkey + biometric — reinstall or switch devices and the wallet comes back (encrypted device-transfer backup under the hood).

  • A sovereign 24-word backup, if they want one


    Beyond the automatic passkey recovery, the user can reveal a standard 24-word recovery phrase and restore the exact wallet on any device — no passkey, account, or cloud in the loop. Opt-in and one-way; shown once behind a biometric on a screenshot-blocked screen, with a clipboard that auto-clears.

  • Wallet data follows you across devices


    The wallet's sync state is backed up encrypted to the user's own cloud storage and restored on a new device, so it's ready in seconds instead of re-scanning the whole chain (opt-in; the data is encrypted on-device before upload — the cloud only ever holds ciphertext).

  • Testnet to mainnet, same code


    Point the app at undeployed, preview, preprod, or mainnet by configuration — no code change to move between networks.


For you, the developer

The DevX side — wired so you write app logic, not plumbing.

  • One Gradle line, whole SDK


    implementation("io.github.kuiralabs:dapp-ui:0.1.0-alpha03") api-exposes the full module graph. Need headless? Drop to midnight-sdk.

  • Agent-paired recipes


    Every recipe is a stable-URL markdown file with a one-tap prompt for your coding agent, indexed by a site-root /llms.txt.

  • kuiraDoctor preflight


    Environment misconfig — unreachable assetlinks.json, runtime-pin mismatch, missing debug-cleartext — fails at build time with a clear cause, instead of surfacing as a runtime crash.

  • Contract Gradle plugin


    io.github.kuiralabs.contract syncs compiled .compact artifacts into assets, validates the source, and enforces the runtime-version pin.

  • Progress callbacks


    Balance + submit report through six discrete stages, so the otherwise-opaque proving/submission wait becomes real UX.

  • Lossless typed ledger reads


    MidnightContract.ledger() returns typed, validated accessors with loud failures — no silent misdecode of zero-valued vector cells.

  • Auditable & modern-Android ready


    Source jars ship beside every AAR on Maven Central; native libraries are 16 KB-page aligned for Android 15+ / Play readiness.


See the integration guide to wire it up, the cookbook for task-by-task recipes, and the roadmap for where the SDK is headed.