Git Product home page Git Product logo

solana-mobile-stack-sdk's Introduction

Solana Mobile Stack SDK

Introduction

Welcome to the Solana Mobile Stack SDK. The Solana Mobile Stack provides key technologies for building Android applications that can interact with the Solana network.

Development community

Come and discuss the Solana Mobile Stack on our Discord: Solana Mobile Discord

Follow us on Twitter: @Solanamobile

Building for the Solana Mobile Stack

Building for the Solana Mobile Stack is, at its core, building for Android. The SDK provides enabling libraries for wallets and apps, allowing developers to create rich mobile experiences for the Solana network. Whether you are developing a mobile-friendly web app, a React Native Android app, or a native mobile wallet app, these libraries, samples, and reference implementations will help you to use the Solana network on Android devices.

What’s in the Solana Mobile Stack?

Mobile Wallet Adapter

https://github.com/solana-mobile/mobile-wallet-adapter

Mobile Wallet Adapter is a protocol specification for connecting apps to Wallets on mobile devices. It allows Wallet apps to provide transaction signing services for different types of apps on mobile devices: both mobile-friendly web apps running in the browser, as well as native apps, whether built using React Native, or traditional Kotlin or Java apps. The protocol is not limited to Android devices either; it envisions similar support for iOS devices, as well as the capability of Wallet apps to provide signing services to applications running remotely, such as on other mobile devices, and on desktop or laptop computers.

This SDK includes a draft version of the Mobile Wallet Adapter protocol specification, which will be completed in the coming weeks in collaboration with the open-source Solana community. It includes a reference implementation of the protocol for both wallets and apps, for local use cases.

While this protocol is first announced with the Saga, it is designed to be implemented on any mobile device. With community support, this is intended to be the mobile analogue of wallet-adapter.

Seed Vault

https://github.com/solana-mobile/seed-vault-sdk

The Seed Vault is a system service providing secure key custody to Wallet apps. By integrating with secure execution environments available on mobile devices (such as secure operating modes of the processor and/or secure auxiliary coprocessors), Seed Vault helps to keep your secrets safe, by moving them to the highest privileged environment available on the device. Your keys, seeds, and secrets never leave the secure execution environment, while UI components built into Android handle interaction with the user to provide a secure transaction signing experience to users.

For Wallet apps, this SDK provides an API contract and support library for accessing the Seed Vault. It also includes a Seed Vault simulator, which can be installed on devices running Android 12.

Important note: this Seed Vault simulator does not provide secure transaction signing, and should not be used for any purposes other than development and testing of Wallet apps.

Solana dApp Store

Planned

The Solana dApp Store is an alternate app distribution system, well suited to distributing apps developed by the Solana ecosystem. It will provide a distribution channel for apps that want to establish direct relationships with their customers, without other app stores’ rules restricting the relationship or seeking a large revenue share. The goal of the Solana dApp Store is to empower the Solana community to eventually play a key role in managing the contents of this app store.

For app developers, we will be updating this SDK to include publishing tools and instructions for preparing and submitting your apps for inclusion in the Solana dApp Store catalog. Watch this space for future developments!

Solana Pay for Android

https://github.com/solana-mobile/solana-pay-android-sample

The Solana Pay protocol was developed independently of the Solana Mobile Stack, but combining payments with a mobile device is a natural fit for Solana Pay. To assist developers in integrating Solana Pay, we’ve developed a reference implementation demonstrating how Wallet apps can use the system features of Android devices to capture Solana Pay URLs via QR codes, NFC taps, messages, and web browser interactions to launch Solana Pay requests.

Current status

The Solana Mobile Stack SDK is continuously evolving, with both the support of Solana Mobile Inc., as well as the wider Solana community. Here is a snapshot of the development status of the SDK.

Mobile Wallet Adapter:

  • Specification: v0.1 (draft)
  • Android reference implementation: aligned with specification v0.1
  • JS reference implementation: aligned with specification v0.1
  • wallet-adapter plugin for Mobile Wallet Adapter: In development
  • React Native bindings to Mobile Wallet Adapter clientlib for Android apps: Planned

Seed Vault:

  • Wallet API: v1.0
  • Seed Vault API simulator: aligned with Wallet API v1.0

Solana dApp Store:

  • App publishing tools & guidelines: Planned

Solana Pay:

  • Sample Android integration: v1.0

Future direction

Note: plans are subject to change. Our goal is to share a quality SDK for mobile development with the Solana network, and the following represents only a part of our plans for the Solana Mobile Stack SDK.

  • Create sample apps demonstrating usage of the Solana Mobile Stack with Kotlin/Java native apps, React Native apps, and mobile web apps
  • Continue to add features to the Seed Vault and Mobile Wallet Adapter
  • Add iOS-specific protocol details to the Mobile Wallet Adapter specification

solana-mobile-stack-sdk's People

Contributors

oliveeyay avatar sdlaver avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.