Skip to content

PortalTechnologiesInc/lib

Repository files navigation

Portal

Identity and payments for Bitcoin-native applications.

No accounts. No KYC. No payment processor.

Docs Docker License: MIT Changelog

About

Portal lets users authenticate and pay using their Nostr identity through the Portal mobile app. You run a single Docker container (sdk-daemon) and call its REST API from any language.

Your backend  ←— REST API —→  sdk-daemon  ←— Nostr —→  Portal app

Features

  • Authentication — passwordless login via Nostr
  • Age verification — browser-based identity verification with cryptographic proof
  • Payments — single, recurring, invoice-based; BTC or fiat
  • JWTs — signed by the user's Nostr key
  • Cashu tokens — mint, burn, and transfer ecash
  • Wallets — NWC or Breez for outbound payments

Quick start

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

Then follow the Quick Start guide or jump to the REST API reference.

SDKs

Language Install
TypeScript / JS npm install portal-sdk
Java JitPack
Any language REST API — no SDK needed

Documentation

Full docs: portaltechnologiesinc.github.io/lib

Guides: Authentication · Age Verification · Payments · Cashu · JWT · Docker

Repository structure

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

License

MIT — see LICENSE

About

Portal protocol implementation in Rust

Resources

License

Stars

Watchers

Forks

Contributors