Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

89 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Swappy

Self-Hosted Multi-Chain Wallet Platform

CI Beta License: MIT React TypeScript Supabase

Self-host your own wallet infrastructure. Manage multi-chain addresses, detect deposits, and process withdrawals with full control of your keys.

πŸ“– Documentation Β· πŸ› Report Bug


🌐 Live Demo

Try the demo at: https://swappy.tokyo/

πŸ’‘ Use the "Try Demo" button to explore all features without registration!

What You Can Try in Demo Mode

Feature Description
πŸ’° Dashboard Real-time portfolio overview with live market prices
πŸ“₯ Deposit Flow Generate deposit addresses for multiple chains
πŸ“€ Withdrawal Experience withdrawal request workflow
πŸ“Š History View transaction history
βš™οΈ Settings Explore user preferences and profile management

🎯 Who It's For

Target Users

User Type Use Case
Privacy-Conscious Users Full control over your keys and funds without third-party custody
Power Users Manage assets across Many chains from a single, self-hosted dashboard
Self-Hosters Run your own wallet infrastructure with complete data sovereignty
Developers Build on top of a modern, open-source wallet platform

Problems We Solve

  • πŸ” Third-Party Trust: Trusting exchanges with your crypto β†’ Self-custody with your own server
  • πŸ•΅οΈ Privacy Concerns: Exchanges track your transactions β†’ Your data stays on your server
  • πŸ”— Multi-Chain Complexity: Managing wallets across chains is fragmented β†’ Unified interface for Many chains
  • πŸ” Auditability: Closed-source wallets are black boxes β†’ Fully open-source, verify every line of code

⚠️ Beta Software Notice

This project is currently in BETA. Core functionality is working, with some features under development:

βœ… Multi-Chain Wallet Management: Generate and manage addresses across 5 blockchains πŸ”Ά Wallet Setup (BIP39): HD wallet creation with mnemonic phrase generation - UNDER ACTIVE DEVELOPMENT πŸ”Ά Deposit Detection: Real-time blockchain RPC scanning for instant deposit detection - UNDER ACTIVE DEVELOPMENT πŸ”Ά Withdrawal Processing: Automatic transaction signing and broadcasting to blockchain - UNDER ACTIVE DEVELOPMENT βœ… Price Display: Real-time crypto prices via CoinGecko API

πŸ”Ά Webhook Integration: Additional notification methods (email, SMS) in progress

⚠️ Important Notice - Features Under Adjustment

The following features are currently under active development and adjustment:

  • πŸ”Ά Wallet Setup (BIP39 HD Wallets): User-specific HD wallet creation with BIP39 mnemonic phrases

    • Security enhancements are being implemented
    • May undergo significant changes
    • Use with caution in production environments
  • πŸ”Ά Deposit Detection: Blockchain monitoring and automatic deposit processing

    • Currently being refined for better reliability
    • Some edge cases may still exist
    • Report any issues immediately
  • πŸ”Ά Withdrawal Processing: Automatic transaction signing and blockchain broadcasting

    • Currently under active development and testing
    • Security and reliability improvements in progress
    • Use with extreme caution in production environments

This is infrastructure software. We recommend testing with small amounts first. For production use, please conduct your own security audit.

πŸ“‹ See Beta Limitations & Roadmap for full details.

This software is provided "AS IS" without warranty. See LICENSE for details.


βš–οΈ Legal & Regulatory Notice

Personal Use vs. Commercial Service

Self-custody for personal use: Using this software to manage your own cryptocurrency is generally not a regulated activity. You're simply managing your own assets.

Operating a service for others: If you use this software to provide custodial services for other users (holding their funds), this becomes a regulated activity in most jurisdictions.

Usage Type Regulatory Status
Personal wallet (self-custody) Generally unregulated
Multi-user service (custodial) Typically requires licensing

Your Responsibilities

  1. Self-Custody: When using for personal purposes, ensure you understand the risks of managing your own keys
  2. Commercial Use: If operating as a service for others, consult legal professionals regarding licensing requirements
  3. No Legal Advice: This notice does not constitute legal advice

By using this software, you acknowledge that you are responsible for understanding and complying with applicable laws in your jurisdiction.


✨ Features

Feature Availability

Status Feature Description
βœ… Multi-Chain Support Ethereum, Bitcoin, XRP, TRON, Cardano
βœ… HD Wallet Architecture BIP-32/39/44 compliant key derivation
πŸ”Ά Wallet Setup (BIP39) User-specific HD wallet creation with mnemonic phrase - Under Development
πŸ”Ά Real-time Deposit Detection Blockchain RPC scanning for instant deposit detection - Under Refinement
πŸ”Ά Automated Withdrawal Processing Automatic transaction signing and broadcasting - Under Development
βœ… Price Display Real-time crypto prices via CoinGecko API
βœ… Self-Hostable Deploy on your own server with Docker or 1-click deploy
βœ… Personal Dashboard Manage your wallets, transactions, and settings
βœ… i18n Support English & Japanese (extensible)
βœ… Demo Mode Try all features without registration
πŸ”Ά Webhook Integration Additional notification methods (email, SMS) in progress
πŸ”² Advanced Trading Limit orders, charts (planned)
πŸ”² 2FA Authentication Coming in future release

Legend: βœ… Available | πŸ”Ά In Progress | πŸ”² Planned

⚠️ Note: Features marked with πŸ”Ά are under active development. See Beta Software Notice above for details.

Core Capabilities

πŸ”— Multi-Chain Support
  • Ethereum (ETH + ERC-20 tokens like USDT)
  • Bitcoin (BTC)
  • XRP (Ripple)
  • TRON (TRX + TRC-20 tokens)
  • Cardano (ADA)
πŸ” HD Wallet Architecture
  • Hierarchical Deterministic wallets (BIP-32/39/44)
  • Single master key β†’ unlimited addresses
  • Secure key management with wallet roots
πŸ“Š Deposit Detection
  • Tatum API integration for blockchain monitoring
  • Webhook-based instant notifications
  • Multi-asset support per address
🏠 Self-Hostable
  • Deploy anywhere: Docker, VPS, or cloud platforms
  • Environment variable based configuration
  • 1-click deploy options (Cloudflare Pages, Vercel, Netlify)
  • Full control over your data and infrastructure
πŸ›‘οΈ Security Features
  • Role-based access control (Admin/Moderator/User)
  • Supabase Row Level Security (RLS)
  • Comprehensive audit logging
  • API key management

πŸ› οΈ Tech Stack

Category Technologies
Frontend React 18, TypeScript 5, Vite, Tailwind CSS
UI Components shadcn/ui, Radix UI, Lucide Icons
State Management TanStack Query, React Context
Backend Supabase (PostgreSQL, Auth, Edge Functions)
Blockchain APIs Tatum, Alchemy, TronGrid, Blockfrost
Deployment Cloudflare Pages, Supabase Cloud

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • Docker Desktop (for local Supabase)
  • Supabase CLI

1. Clone & Install

git clone https://github.com/Sou0327/swappy.git
cd swappy
npm install

2. Start Local Supabase

npx supabase start
npx supabase db push --local

3. Configure Environment

cp .env.example .env

Edit .env with your API keys:

VITE_SUPABASE_URL=http://127.0.0.1:54321
VITE_SUPABASE_PUBLISHABLE_KEY=your_anon_key

# Blockchain APIs (get from providers)
VITE_ALCHEMY_API_KEY=your_alchemy_key
TATUM_API_KEY=your_tatum_key

# Branding (optional)
VITE_APP_NAME="Your Exchange Name"

4. Run Development Server

npm run dev

Open http://localhost:8080 πŸŽ‰


πŸ“Έ Screenshots

πŸ“· See it in action! Try the Live Demo to explore the full UI.


πŸ“ Project Structure

src/
β”œβ”€β”€ components/          # Reusable UI components
β”‚   └── ui/             # shadcn/ui components
β”œβ”€β”€ config/
β”‚   └── branding.ts     # White-label branding config
β”œβ”€β”€ contexts/           # React Context providers
β”œβ”€β”€ hooks/              # Custom React hooks
β”œβ”€β”€ integrations/       # External service integrations
β”‚   └── supabase/       # Supabase client & types
β”œβ”€β”€ lib/                # Utilities & blockchain detection
β”œβ”€β”€ pages/              # Route components
└── App.tsx             # Main application

supabase/
β”œβ”€β”€ functions/          # Edge Functions (webhooks, allocator)
β”œβ”€β”€ migrations/         # Database migrations
└── config.toml         # Supabase configuration

🎨 Customization

Branding

Edit src/config/branding.ts or use environment variables:

VITE_APP_NAME="My Wallet"
VITE_APP_TAGLINE="Your tagline here"
VITE_APP_DOMAIN="mywallet.example.com"
VITE_APP_TWITTER="your_twitter"

Supported Chains

Configure chains in the settings dashboard at /admin/chain-configs.


πŸ—ΊοΈ Roadmap

Version Status Features
v0.1.0-beta βœ… Current Multi-chain wallet management, deposits, personal dashboard
v0.2.0 πŸ”² Planned Complete deposit detection system
v0.3.0 πŸ”² Planned Automated withdrawal processing
v0.4.0 πŸ”² Planned Portfolio analytics and insights
v1.0.0 πŸ”² Future Production-ready release

πŸ”’ Security

Reporting Vulnerabilities

If you discover a security vulnerability, please do not open a public issue.

Report via GitHub Security Advisories:

We will acknowledge receipt within 48 hours and provide a detailed response within 7 days.

Security Best Practices

When deploying this software:

  • βœ… Use environment variables for all secrets
  • βœ… Enable Supabase Row Level Security (RLS)
  • βœ… Rotate API keys regularly
  • βœ… Conduct security audits before production use
  • βœ… Keep dependencies updated

🀝 Contributing

Contributions are welcome! Please read CONTRIBUTING.md before getting started.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ‘₯ Maintainers

Role Contact
Lead Maintainer @Sou0327
Issues GitHub Issues
Discussions GitHub Discussions

Getting Help

  • πŸ“– Documentation: Check the docs/ directory
  • πŸ’¬ Questions: Open a Discussion
  • πŸ› Bug Reports: File an Issue
  • πŸ”’ Security: See Security section above

πŸ’– Support

If you find this project useful, please consider:

  • ⭐ Starring the repository
  • πŸ› Reporting bugs and issues
  • πŸ’‘ Suggesting new features
  • 🀝 Contributing code

πŸ“š Documentation


Built with ❀️ by the Swappy Team

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages