π§ Smart Wallets
Smart wallets on Stellar are currently under active development. This page shares updates on smart wallet and passkey work by the Stellar Development Foundation (SDF) and the broader ecosystem. Official documentation is in progress as we collaborate on an audited smart wallet contract interface.
Experiment with smart wallets and passkeys on Stellarβ
If you're building or experimenting with smart wallets and passkeys on Stellar, some essential resources are:
Passkey Kit π¦β
The Passkey Kit is a TypeScript SDK for creating and managing Stellar smart wallets. It's intended to be used in tandem with Launchtube for submitting passkey signed transactions on chain, however this is not a requirement. This is both a client and a server side library. PasskeyKit
on the client and PasskeyServer
on the server.
- Use the app
- View the code
- Watch the discussion
Launchtube transaction submission π§ͺβ
An API service where developers can send their smart contract transactions to get them funded and submitted to the Stellar network without having to worry about fees, sequence numbers, classic G addresses, or other complexities.
Launchtube is an experimental service and while SDF maintains a Mainnet implementation we make no guarantees about its stability, availablility, or longevity. Do not use SDF's Launchtube service for mission-critical production services.
- View the code
- Get an access token by asking in the
#launchtube
channel on Discord - Farm and use the KALE asset to acquire Launchtube tokens here
Smart wallet project examplesβ
Explore some of the current work being done with smart wallets, passkeys, policy signers, and more on Stellar! Play around with the various examples linked below, build your own passkey-powered projects, and share your findings in the #passkeys
channel on Discord.
These examples are not created or maintained officially by the SDF but by dedicated community members both internal and external to the SDF.
Zafegard π¦Ίβ
A smart wallet that demonstrates the use of stateful policy signers.
- View the code
- Watch the demo video
Do Math βββ
A smart wallet that demonstrates the use of multi-sig and policy signers to, surprisingly, do math without needing to input a passkey for every interaction.
- View the code
- Watch the demo video
Soroban by example πβ
An app that uses passkeys to sign Stellar smart contract transactions.
- View the demo
- View the code
- Watch the demo video
- Watch the discussion
- Read the blog
Super Peach πβ
A passkey-powered multi-signer abstract account contract example.
- View the demo
- View the code
- Watch the demo video
Ye Olde Guestbook πβ
A passkey-powered internet guestbook from yesteryear built with smart contracts and frontend code.
Donation smart wallet π¦β
A smart wallet that allows users to donate to a cause using passkeys.
- View the demo
Get involvedβ
Dev Discordβ
Join the discussion, ask questions, and share your own work with smart wallets in the Stellar Developer Discord in the #passkeys
channel.
SEP discussionβ
Join the SEP discussion on the WebAuthn smart wallet contract interface in GitHub.
Brief overview of secp256r1, WebAuthn, passkeys, and smart walletsβ
Secp256r1β
The secp256r1 signature scheme is an elliptic curve that is often used with the Elliptic Curve Digital Signature Algorithm (ECDSA), which is a widely used public key signature scheme.
Secp256r1 is a common signature algorithm used in WebAuthn, which is the standard behind passkeys available on browsers, computers, and phones. Enabling secp256r1 verification allows developers to design contracts that incorporate passkeys to sign smart contract transactions and access accounts instead of using seed phrases or signing keys.
The launch of Protocol 21 enables native support of secp256r1 verification in Stellar smart contracts on Mainnet as outlined in CAP-0051. This integration means that secp256r1 is built directly into the protocol and applications can both sign transactions and submit them to the network using secp256r1 without relying on a third party.
WebAuthnβ
WebAuthn (web authentication) is a web standard for secure, passwordless authentication. It uses public-key cryptography to eliminate the reliance on secret keys and enhances security and usability for dapps.
WebAuthn provides decentralized authentication (no central authority manages passwords), enhanced security (secret keys remain on the userβs device), improved user experience (users donβt have to worry about remembering their secret keys), and broader interoperability (WebAuthn is already supported by major browsers and platforms).
Passkeysβ
Passkeys are an implementation of the WebAuthn standard. The ability to use passkeys to sign transactions and access accounts removes the need for users to remember their secret keys or 12- to 24-word seed phrases, something that has been a massive barrier to entry for end-users entering the blockchain space. Secret keys and seed phrases can be overwhelming, hard to remember, entered incorrectly, and prone to security breaches.
Passkeys offer a faster, more secure method of identity authentication by using encrypted data stored on a device and performing user verification with hardware tokens (like YubiKeys), biometric data (like fingerprints or facial recognition), or other cryptographic methods.
Read more about passkeys in this introduction to passkeys blog.
Smart walletsβ
Smart wallets are digital wallets that leverage smart contract composability to offer enhanced functionality and security for managing digital assets. Unlike traditional cryptocurrency wallets, smart wallets integrate features such as multi-signature support, policy signers, programmable transactions, and enhanced user experience compatibilities with decentralized applications (dapps).
Smart wallets enable users to interact seamlessly with blockchain ecosystems, providing a user-friendly interface for sending, receiving, and storing digital assets. They often incorporate passkeys and WebAuthn standards to ensure secure, passwordless authentication, reducing the risks associated with traditional seed phrases and private keys.
By using smart contracts, smart wallets can automate transactions and implement advanced security protocols, such as time-locked transfers, spending limits, and fraud detection. These features make smart wallets an ideal choice for users seeking a secure, convenient, and versatile solution for managing their digital assets in the evolving landscape of blockchain technology.
How they work togetherβ
Secp256r1 provides the cryptographic foundation for key generation and digital signatures, WebAuthn offers a standardized framework for passwordless authentication using public-key cryptography, and passkeys implement these technologies to provide a seamless and secure user experience. Bundle all of that together into a Stellar smart contract and you have the foundation for the planet's best smart wallet impelementation!