Vellar is a web-first Stellar smart wallet with a companion browser extension. Passkey onboarding (no seed phrases), programmable on-chain account policies, contract verification & trust signals, and account cleanup/merge tooling — plus agentic payments via x402, so an autonomous agent can spend under an on-chain budget without ever holding your keys.
The SDK that powers Vellar is published separately as
vellar-sdk, with full docs at
docs.vellar.xyz.
Monorepo (pnpm + Turborepo): apps/ (web, extension, docs) · packages/ (shared SDKs/UI/types) · services/ (backend) · contracts/ (Soroban) · infra/.
pnpm install
pnpm typecheck-
Start the database (Postgres + Redis) — the backend services load their config from a root
.envand connect to Postgres on boot:cp .env.example .env # then fill in RELAYER_* and SPONSOR_SECRET_KEY docker compose -f infra/docker/docker-compose.yml up -dThe services read
.envautomatically (viatsx --env-file-if-exists). If Postgres is unreachable they fall back to in-memory storage with a warning (data won't survive a restart) rather than crashing — but for a real run you want the database up. -
Run the stack (web + gateway + services). The extension's
devtask launches a browser and needs Chrome installed; exclude it if you don't have Chrome or only want the backend:pnpm dev # everything, incl. the extension (needs Chrome) pnpm dev --filter=!@vellar/extension # web + gateway + services only
Ports: web
:3000, gateway:4000, wallet:4001, lifecycle:4002, policy:4003, Postgres:5433, Redis:6380. -
Verify:
curl localhost:4000/healthand openhttp://localhost:3000.
Integration tests that hit a real database run against a local test DB (seeded
by the compose init script) when TEST_DATABASE_URL is set; otherwise they
skip. See .env.example for the expected connection string shape.
See CONTRIBUTING.md.
Apache-2.0 — see LICENSE.
