Identity and payments for Bitcoin-native applications.
No accounts. No KYC. No payment processor.
Portal lets you add age verification, authentication, and payments to your app — without collecting personal data.
New here? Start with the documentation or create a free instance on PortalHub.
- Age verification — verify users' age for compliance, no personal data stored → Guide
- Authentication — passwordless login via the Portal app → Guide
- Payments — single, recurring, invoice-based; BTC or fiat → Guide
- Digital tickets — issue and verify Cashu tokens → Guide
The fastest way: create an instance on PortalHub — no servers needed.
Or self-host:
docker run -d -p 3000:3000 \
-e PORTAL__AUTH__AUTH_TOKEN=$(openssl rand -hex 32) \
-e PORTAL__NOSTR__PRIVATE_KEY=<your-64-char-hex-key> \
getportal/sdk-daemon:0.4.1| Language | Install |
|---|---|
| TypeScript / JS | npm install portal-sdk |
| Java | JitPack |
| Any language | REST API — no SDK needed |
| Crate | Description |
|---|---|
portal-rest |
REST API daemon |
portal |
Core protocol and conversation logic |
portal-app |
App runtime and wallet integration |
portal-wallet |
Wallet backends (NWC, Breez) |
portal-rates |
Fiat/BTC exchange rates |
clients/ts |
TypeScript SDK |
portal-cli |
Dev/testing CLI tools |
MIT — see LICENSE