DEV Community

Cover image for Stellar AppKit: Building a Complete Application Layer for Stellar
Zak R.
Zak R.

Posted on

Stellar AppKit: Building a Complete Application Layer for Stellar

Building a Stellar application shouldn't require developers to assemble a dozen different pieces before they can get to the product itself.

Wallet connectivity is only the beginning.

A production-grade Stellar application needs to handle wallet integration, responsive wallet UX, authentication, session management, Soroban transactions, transaction simulation, error handling, localization, and increasingly, compliance and user onboarding.

That is the problem we're trying to solve with Stellar AppKit.

Stellar AppKit is an application SDK designed to provide a unified layer between your application, your users, wallets, and the Stellar network.

The easiest way to think about it is:

Wallet connectivity gets a user into your application. AppKit is focused on everything that happens around that connection.

What is Stellar AppKit?

Stellar AppKit started as a wallet connectivity library, but the project has evolved into something broader.

The goal is to provide developers with reusable infrastructure for the application layer of Stellar:

Your Application
       │
       ▼
┌──────────────────────┐
│    Stellar AppKit    │
├──────────────────────┤
│ Wallet Connectivity  │
│ Authentication       │
│ Session Management   │
│ Transaction UX       │
│ Soroban Infrastructure│
│ Risk Detection       │
│ Localization         │
│ Compliance           │
└──────────┬───────────┘
           │
           ▼
   Stellar Ecosystem
Enter fullscreen mode Exit fullscreen mode

Instead of every application independently implementing these primitives, AppKit aims to provide them through one consistent developer experience.


Wallet connectivity is only the starting point

There are already good wallet connectivity solutions in the Stellar ecosystem.

Stellar Wallets Kit, for example, solves an important problem: connecting applications to multiple Stellar wallets through a common interface.

We don't see that problem as the entire application stack.

A developer building a real application eventually has to answer questions like:

  • How should the wallet selector behave on mobile?
  • How do I support multiple frontend frameworks?
  • How do I localize the wallet experience?
  • How do I authenticate a user with their wallet?
  • How do I maintain their session?
  • How do I validate that authentication on the server?
  • How do I simulate a Soroban transaction before signing?
  • How do I show the user what they're actually signing?
  • How do I detect potentially dangerous transactions?
  • How do I onboard users who don't already have a wallet?
  • How do I handle compliance requirements?

AppKit is intended to address that larger set of problems.


A better wallet UX

Wallet connectivity APIs are useful, but the user experience surrounding a wallet connection matters just as much.

A desktop application and a mobile application shouldn't necessarily present wallet selection in the same way.

AppKit supports different UI presentation patterns, including:

  • Desktop modal
  • Mobile bottom sheet
  • Inline and UI-agnostic flows

This allows applications to use AppKit's ready-made experience or build their own interface around the underlying SDK.

The objective isn't to force a specific design.

It is to give developers a good default experience while keeping the underlying functionality flexible.


25 languages out of the box

Stellar is a global ecosystem, so localization shouldn't become another project developers have to maintain themselves.

AppKit currently supports 25 languages, including Chinese and other major languages.

That means wallet-related interfaces, authentication flows, and other AppKit components can be presented to users in their preferred language without every application having to implement the translation infrastructure independently.

Localization is treated as part of the application experience rather than an afterthought.


Multi-framework support

Another important design decision is keeping AppKit independent from a single frontend framework.

The core SDK is framework-agnostic, while UI integrations are available for:

  • React
  • Vue
  • Svelte

We're also working toward support for:

  • React Native
  • LynxJS
  • Flutter

The objective is to make AppKit useful across both web and mobile applications while maintaining the same underlying concepts and developer experience.

A developer shouldn't have to completely rethink wallet and authentication infrastructure just because their frontend stack changed.


Transaction UX: don't make users sign blind XDR

One of the areas we're particularly interested in is transaction understanding.

Traditionally, an application builds a transaction, produces XDR, and asks a wallet to sign it.

From the user's perspective, that can be extremely opaque.

The user may be asked to approve a transaction without having a clear understanding of:

  • Which operations are being executed
  • Which assets are moving
  • How balances will change
  • What fees are involved
  • Which contracts are being called
  • Whether there are potential risks

AppKit is designed to put an interpretation layer around transactions.

The vision is:

Transaction
     │
     ▼
Decode
     │
     ▼
Simulate
     │
     ▼
Explain
     │
     ▼
Assess Risk
     │
     ▼
User Approval
Enter fullscreen mode Exit fullscreen mode

This includes capabilities around transaction previews, operation decoding, simulation, balance and fee information, contract information, and risk detection.

The goal is simple:

Users should have a much better understanding of what they are signing.


Soroban application infrastructure

Soroban introduces another layer of complexity.

A typical transaction flow isn't simply:

Create → Sign → Submit
Enter fullscreen mode Exit fullscreen mode

Applications often need to:

Build
  ↓
Simulate
  ↓
Prepare
  ↓
Sign
  ↓
Submit
  ↓
Track
Enter fullscreen mode Exit fullscreen mode

AppKit provides abstractions around this lifecycle so developers can work with higher-level APIs instead of rebuilding the same workflow in every project.

We're also working on capabilities such as:

  • Typed contract clients
  • Transaction helpers
  • RPC failover
  • Simulation-aware execution

The goal is to make interacting with Soroban feel more like using an application SDK and less like manually orchestrating every transaction step.


Authentication shouldn't stop at "Connect Wallet"

A wallet connection does not necessarily mean the user is authenticated in your application.

Modern applications usually need a proper authentication lifecycle.

AppKit is building Stellar authentication and session management inspired by Sign In with Ethereum (SIWE).

The system is designed around concepts such as:

Connect Wallet
      ↓
Request Nonce
      ↓
Sign Authentication Message
      ↓
Server Validation
      ↓
Create Session
      ↓
Authenticated Application
Enter fullscreen mode Exit fullscreen mode

This includes:

  • Nonce-based authentication
  • Signed authentication messages
  • Session creation
  • Session persistence
  • Re-authentication
  • Sign-out
  • Server-side signature and session validation

The goal is to make a Stellar wallet usable as an application identity rather than treating wallet connection as the authentication mechanism itself.


Walletless onboarding

One of the bigger areas on our roadmap is walletless connectivity.

Crypto onboarding can be a significant barrier for users who have never interacted with a wallet before.

We're working toward allowing applications to onboard users through more familiar authentication methods.

Social login

Applications will be able to offer familiar social authentication flows so users can get started without first installing and configuring a traditional crypto wallet.

Passkeys

We're also working toward passkey-based authentication, allowing users to authenticate using device-native credentials and biometrics.

The broader goal is to make Stellar applications accessible to users who don't already identify themselves as "crypto users."

Instead of:

Install wallet
↓
Create account
↓
Find recovery phrase
↓
Connect wallet
↓
Start application
Enter fullscreen mode Exit fullscreen mode

the experience can move closer to:

Authenticate
↓
Start using the application
Enter fullscreen mode Exit fullscreen mode

while still allowing applications to interact with Stellar underneath.


Compliance and KYC

Another area we're exploring is making compliance infrastructure available directly at the application layer.

For many Stellar applications, particularly those involving regulated assets, real-world assets, financial services, or restricted jurisdictions, compliance can't simply be an external concern.

Developers may need to know whether a user:

  • Has completed KYC
  • Is eligible to use a particular application
  • Is from an allowed jurisdiction
  • Meets an age requirement
  • Satisfies another compliance policy

Today, developers often have to assemble separate identity and compliance systems to handle these requirements.

We're working toward allowing developers to request and manage KYC directly through AppKit.

A zero-knowledge compliance layer

The longer-term vision is to combine compliance verification with zero-knowledge technology.

Instead of putting sensitive personal information on-chain, applications could verify specific properties about a user.

For example:

KYC completed      → ✓
Allowed jurisdiction → ✓
Age requirement    → ✓
Restricted status   → ✗
Enter fullscreen mode Exit fullscreen mode

without exposing the underlying personal information directly on-chain.

The objective is to make compliance:

Verifiable + Privacy-preserving + Reusable

This is still an area we're actively developing, but we believe it could become increasingly important as Stellar applications move into regulated and real-world use cases.


Why not just use a wallet SDK?

This is probably the most important distinction.

If your application only needs to connect to a Stellar wallet, a wallet-focused SDK may be exactly what you need.

AppKit is intended for applications that need more.

The difference can be summarized like this:

Wallet Connectivity Application Layer
Connect wallet Connect wallet
Sign transaction Sign transaction
Wallet selection Wallet UX
Wallet abstraction Authentication
Session management
Server-side validation
Transaction preview
Simulation
Risk detection
Soroban lifecycle
Localization
Cross-framework UI
Walletless onboarding
Compliance infrastructure

We don't think developers need yet another abstraction simply for the sake of having one.

The goal is to reduce the amount of application infrastructure they have to build repeatedly.


The bigger vision

The long-term vision for AppKit is a single application layer that helps developers move through the entire user and transaction lifecycle:

                    ┌───────────────┐
                    │     User      │
                    └───────┬───────┘
                            │
                            ▼
                  ┌──────────────────┐
                  │   Authentication │
                  └────────┬─────────┘
                           │
                           ▼
                  ┌──────────────────┐
                  │     Session      │
                  └────────┬─────────┘
                           │
                           ▼
                  ┌──────────────────┐
                  │ Wallet / Identity│
                  └────────┬─────────┘
                           │
                           ▼
                  ┌──────────────────┐
                  │    Transaction   │
                  │ Preview / Risk   │
                  └────────┬─────────┘
                           │
                           ▼
                  ┌──────────────────┐
                  │      Soroban     │
                  │    Execution     │
                  └────────┬─────────┘
                           │
                           ▼
                  ┌──────────────────┐
                  │     Stellar      │
                  └──────────────────┘
Enter fullscreen mode Exit fullscreen mode

And eventually, developers should be able to choose between traditional wallets, smart wallets, social authentication, passkeys, and compliant identity flows without having to completely rewrite their application.


What's next?

We're continuing to build AppKit around the needs of Stellar developers.

Some of the areas we're working on include:

Walletless authentication

  • Social login
  • Passkeys

Cross-platform

  • React Native
  • LynxJS
  • Flutter

Compliance

  • Integrated KYC flows
  • Zero-knowledge-based compliance verification

Application infrastructure

  • More transaction intelligence
  • More Soroban abstractions
  • More wallet integrations
  • Improved developer tooling

The goal isn't to build the biggest SDK possible.

It's to make building a Stellar application significantly easier.


Conclusion

Stellar already has strong infrastructure for wallets, assets, payments, and smart contracts.

What we're building with Stellar AppKit is the layer around those primitives.

A developer shouldn't have to independently solve wallet UX, authentication, session management, transaction interpretation, Soroban execution, localization, and eventually compliance every time they start a new Stellar application.

The vision is straightforward:

Connect → Authenticate → Understand → Sign → Execute → Verify

That's what we're building with Stellar AppKit.

The project is open source, and we're actively looking for feedback from developers building on Stellar.

GitHub: https://github.com/SagantaHQ/stellar-appkit

Top comments (0)