v1.4.0|MIT

Solana-Native

Modular. Drop-in. Mobile-first. No paid assumptions.

Unified SDK replacing solana-kmp, mobile-wallet-adapter, and seedvault-sdk. Versioned transactions, Token-2022, cNFTs, MPL Core, MWA 2.0. Coroutine-first design.

SolanaBuilt on Solana

Unified. Modern. Coroutine-First.

One SDK replacing solana-kmp, mobile-wallet-adapter, and seedvault-sdk. Full API parity with innovative coroutine design.

Unified Kotlin SDK

Replaces solana-kmp + mobile-wallet-adapter + seedvault-sdk with one modern dependency. Drop-in API compatibility.

MWA 2.0 & Seed Vault

Native Mobile Wallet Adapter with P-256 ECDH and 100% Kotlin Seed Vault. No wrappers needed.

Token-2022 & cNFTs

Full Token-2022 with TLV decoding and compressed NFT utilities with DAS proof parsing.

Versioned Transactions

Native v0 transaction support with Address Lookup Tables. Built for modern Solana.

React Native Bridge

Cross-platform mobile support with React Native bridge for Seed Vault and MWA.

Gaming & DePIN

Priority fee oracle, session management, ArcanaFlow batching, and replay debugging tools.

Need Helius Integration?

Check out LunaSDK for Helius-specific features. Artemis stays pure Solana.

Explore LunaSDK
FOR SOLANA MOBILE DEVELOPERS

Drop-In Replacement for Solana Mobile Stack

Artemis provides 100% API parity with solana-kmp and mobile-wallet-adapter-clientlib-ktx, plus innovative enhancements. Fewer dependencies, more features.

Feature
Current Stack
Artemis
Dependencies
3+ separate packages
mobile-wallet-adapter-clientlib-ktx, seedvault-wallet-sdk, solana-kmp
2 unified packages
artemis-core, artemis-wallet-mwa-android
API Design
Callback-based
Java-heavy callback APIs
Coroutine-first
Pure Kotlin with suspend functions and Flow
WebSocket
Not available
No WebSocket subscriptions
Built-in
artemis-ws with reconnect and deduplication
Token-2022
Limited
Partial Token-2022 features
Full support
Complete TLV decoding and all extensions
Gaming Utils
None
No gaming-specific features
Exclusive
Priority fee oracle, session keys, replay debugging

Before: Current Stack

// Current Solana Mobile approach (3+ dependencies)
implementation("com.solanamobile:mobile-wallet-adapter-clientlib-ktx:2.0.7")
implementation("com.solanamobile:seedvault-wallet-sdk:0.4.0")
implementation("foundation.metaplex:solana-kmp:0.3.0")

// Imports scattered across packages
import com.solana.publickey.SolanaPublicKey
import com.solana.rpc.SolanaRpcClient
import com.solana.networking.KtorNetworkDriver
import com.solanamobile.mobilewalletadapter.*

After: Artemis

// Artemis unified SDK (2 dependencies, more features)
implementation("xyz.selenus:artemis-core:1.4.0")
implementation("xyz.selenus:artemis-wallet-mwa-android:1.4.0")

// Clean, unified imports
import xyz.selenus.artemis.core.Pubkey
import xyz.selenus.artemis.rpc.RpcClient
import xyz.selenus.artemis.wallet.mwa.*
// No network driver needed - built-in!

Import Mapping (Zero Code Changes)

com.solana.publickey.SolanaPublicKey
xyz.selenus.artemis.core.Pubkey
com.solana.rpc.SolanaRpcClient
xyz.selenus.artemis.rpc.RpcClient
com.solana.networking.KtorNetworkDriver
Not needed (built-in)
com.solana.mobilewalletadapter.clientlib.*
xyz.selenus.artemis.wallet.mwa.*

Modular by Design

Pick only what you need. Every module is independently versioned and tested.

// Add to build.gradle.kts

implementation("xyz.selenus:artemis-core:1.4.0")

Core

artemis-core1.4.0

Core utilities, pubkeys, base58, hashing, address derivation

artemis-rpc1.4.0

RpcApi (Suspend functions) and JsonRpcClient

artemis-tx1.4.0

Instructions, transaction building

artemis-vtx1.4.0

Versioned transactions and Address Lookup Tables (ALT)

artemis-programs1.4.0

System, Token, and Token2022 program instruction builders

artemis-compute1.4.0

Compute budget presets and utilities

artemis-ws1.4.0

WebSocket subscriptions with reconnect and Flow events

artemis-tx-presets1.4.0

Pre-built transaction patterns

artemis-presets1.4.0

High-level SDK presets and configuration

Features

artemis-token20221.4.0

Token-2022 builders and TLV decoding

artemis-cnft1.4.0

Compressed NFTs (Bubblegum), DAS helpers, marketplace toolkit

artemis-metaplex1.4.0

Token Metadata Program utilities

artemis-mplcore1.4.0

MPL Core v2 create flows, plugins, marketplace utilities

artemis-candy-machine1.4.0

Candy Machine v3 and Candy Guard instruction builders

artemis-candy-machine-presets1.4.0

Pre-built Candy Machine configurations

artemis-nft-compat1.4.0

Cross-standard NFT compatibility helpers

Mobile

artemis-seed-vault1.4.0

100% Kotlin Seed Vault SDK with com.solanamobile compatibility

artemis-wallet-mwa-android1.4.0

Native MWA 2.0 with SignInWithSolana (SIWS)

artemis-wallet1.4.0

Abstract wallet interface and signing utilities

artemis-solana-pay1.4.0

Solana Pay request parsing and QR generation

artemis-react-native1.4.0

React Native bridge for Seed Vault and MWA

Utilities

artemis-discriminators1.4.0

Anchor program discriminator utilities

artemis-errors1.4.0

Standardized error types and handling

artemis-logging1.4.0

SDK logging utilities

artemis-privacy1.4.0

Privacy-preserving utilities

Gaming

artemis-gaming1.4.0

Priority fee oracle, session management, ArcanaFlow batching

artemis-depin1.4.0

Location proof and device identity utilities

artemis-replay1.4.0

Session recording and playback for debugging

Code That Makes Sense

Clean APIs built for Kotlin. No callbacks, no pain, just coroutines.

migration_example.kt
// BEFORE (solana-kmp)
import com.solana.publickey.SolanaPublicKey
import com.solana.rpc.SolanaRpcClient
import com.solana.networking.KtorNetworkDriver

val rpc = SolanaRpcClient(url, KtorNetworkDriver())
val pk = SolanaPublicKey.from("base58string")

// AFTER (Artemis - simpler!)
import xyz.selenus.artemis.core.Pubkey
import xyz.selenus.artemis.rpc.RpcClient

val rpc = RpcClient(url)  // No driver needed
val pk = Pubkey.fromBase58("base58string")