⚠️ Proof of Concept — an experimental project, not a production product. Built to explore passkey-based (WebAuthn) smart wallets on the Stellar/Soroban network. Not audited, not recommended for use with real assets.
This is a POC demonstrating how to build a non-custodial smart wallet on Stellar using:
- Passkey (WebAuthn) instead of a traditional seed phrase to sign transactions.
- A Soroban smart contract acting as the account contract, verifying passkey signatures on-chain.
- Next.js App Router for the web/miniapp interface.
- tRPC + Prisma for the backend API and wallet/signer-related data storage.
- Create a new passkey and deploy the corresponding smart wallet contract.
- Sign and send Stellar transactions with a passkey (no manual private key handling).
- View/manage signers attached to the smart wallet.
- Send and receive assets through a simple web interface.
- Standalone transaction confirmation (
sign) flow, embeddable as a miniapp.
src/
app/ # Next.js App Router (pages, layouts, api routes)
components/ # Shared UI components
hooks/ # Business logic hooks: passkey, signer, contract, fund
server/ # tRPC routers, DB connection
trpc/ # tRPC client setup
providers/ # React context providers
lib/ # Helper functions
prisma/ # Prisma schema
soroban-contracts/ # Smart contract (Soroban/Rust)
-
Clone the repo:
git clone git@github.com:pkx64/smart-wallet-stellar.git cd smart-wallet-stellar -
Install dependencies:
npm install
-
Create a
.envfile (seesrc/env.jsfor the required variables), e.g.:DATABASE_URL=postgresql://user:password@localhost:5432/smart_wallet
-
Initialize the database (if using Postgres via Docker):
./start-database.sh npm run db:push
-
Start the dev server:
npm run dev
The app runs at
http://localhost:3000.
The contract lives in soroban-contracts/contracts/, built/tested with the Soroban CLI:
cd soroban-contracts
cargo build --target wasm32-unknown-unknown --releaseThis repo is for personal learning/experimentation purposes. The code has not undergone a security audit and should not be used to manage real assets.