Skip to content

ignaciogarcia-dev/walty

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

443 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Walty

Walty

Accept and send crypto payments. For businesses and everyday people.

Get Started · Documentation · Contributing


Walty is a self-custodial crypto wallet and payment platform for EVM networks. It is designed so that anyone can pay with crypto, and any business can accept payments without intermediaries.

Choose how you use it: as a person (pay, send, manage assets) or as a business (accept payments, generate QR codes, manage your team).

For businesses

  • Generate payment requests with a USD amount, payable in USDC or USDT on Polygon
  • The customer receives a QR code or link and pays from Walty or any compatible wallet
  • Automatic on-screen confirmation when the payment is detected on-chain
  • Split payments: multiple partial transfers can be combined into a single request
  • Business dashboard with payment history and real-time status
  • Operator team with roles: manager, cashier, waiter
  • Invite links with expiration
  • Refund requests with owner approval flow
  • Full audit log of all team activity

For people

  • Non-custodial crypto wallet: your keys never leave your device
  • Create or recover a wallet with a 24-word seed phrase
  • Pay business payment requests by scanning a QR code or following a link
  • Send native tokens and ERC-20s to contacts or addresses
  • View your portfolio across multiple EVM networks from a single screen
  • Swap tokens with real-time quotes
  • Address book and ENS name resolution

Supported networks

Ethereum, Arbitrum, Base, Optimism, and Polygon.

Business payment requests settle on Polygon (USDC / USDT).

Wallet and security

  • Seed phrase generated locally (BIP-39, 24 words)
  • Browser-side encryption: AES-GCM + PBKDF2 (210k iterations)
  • The server never sees keys or seeds — signing happens client-side only
  • Automatic lock after inactivity
  • PIN-encrypted wallet backup export and import
  • JWT in HttpOnly cookie — inaccessible to JavaScript
  • Strict per-request nonce CSP
  • No tracking or analytics by default

Quick Start

Recommended local setup (full stack with Docker):

git clone https://github.com/ignaciogarcia-dev/walty.git
cd walty

cp .env.example .env

docker compose up --build

xdg-open http://localhost:3000

Database migrations run automatically on container startup.

For detailed setup and troubleshooting, see docs/getting-started.md.

Environment Variables

Environment configuration is documented in .env.example. Most setups only need:

Required

  • DATABASE_URL
  • JWT_SECRET
  • SERVER_PEPPER

Recommended

  • ALCHEMY_API_KEY

Optional

  • ZEROX_API_KEY
  • ANKR_API_KEY
  • ONEINCH_API_KEY
  • COINGECKO_API_KEY
  • COINGECKO_API_BASE_URL
  • COOKIE_SECURE

Documentation

File Purpose
docs/README.md Documentation index
docs/getting-started.md Setup and local run guide
docs/development.md Development workflow and scripts
docs/architecture.md Codebase architecture and data flow
docs/roadmap.md Priorities and contribution directions
CONTRIBUTING.md Rules for opening issues and PRs
CODE_OF_CONDUCT.md Community behavior expectations

Development

Common commands:

pnpm lint
pnpm build
pnpm db:migrate
pnpm db:studio

The recommended workflow for most contributions is documented in docs/development.md.

Self-Hosting

Walty can be self-hosted with Docker. PostgreSQL runs as part of the stack, and database migrations are applied automatically on startup.

cp .env.example .env

docker compose up --build

See .env.example for all available variables.

Contributing

Walty uses an issue-first contribution model to keep work predictable and reviewable.

Core rules:

  • Non-trivial changes start with a GitHub issue before code is written.
  • One issue should map to one pull request whenever possible.
  • Pull requests must include linked issue, scope, and validation notes.
  • Small docs/typo fixes can go directly to PR.

Start here:

Community Workflow (Issue-First)

  1. Open or pick an issue (bug, feature, proposal, good first issue).
  2. Wait for scope confirmation on larger features/refactors.
  3. Comment that you are taking the issue.
  4. Open a PR linked to that issue (Closes #123).
  5. Iterate with review until merge.

License

MIT

About

Open-source self-custodial multichain EVM wallet. Privacy-first, client-side signing, and self-hostable.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages