Sigma Auth
Reference

Overview

Sigma Auth uses NFT-based subscriptions where purchasing a tier gives you an NFT that proves ownership. The NFT is a transferable subscription receipt that can be resold on the open market, transferring the subscription with it.

Flow: Stripe payment -> mint subscription NFT -> deliver to wallet -> Gorilla Pool verifies ownership -> tier granted.

Create Checkout Session

POST /api/subscription/checkout

Creates a Stripe Checkout Session for purchasing a subscription tier NFT. Requires authentication.

Request Body:

FieldTypeRequiredDescription
tierIdstringYesSubscription tier: plus or pro
intervalstringYesmonthly or annual

Response:

{
  "url": "https://checkout.stripe.com/c/pay/cs_..."
}

Redirect the user to the returned URL to complete payment. On success, they are redirected to /account?subscription=success. On cancel, to /account?subscription=cancelled.

Error Responses:

  • 400 - Missing fields, unknown tier, invalid interval, or no Stripe price configured
  • 401 - Not authenticated

Check Subscription Status

GET /api/subscription/status

Returns the user's current subscription tier based on NFT ownership. Requires authentication.

Response:

{
  "tier": "pro",
  "isActive": true,
  "nftOrigin": "txid_vout",
  "walletAddress": "1Address...",
  "lastVerified": "2026-03-23T20:00:00.000Z"
}

If no subscription NFT is found, returns the free tier:

{
  "tier": "free",
  "isActive": true
}

Webhook (Internal)

POST /api/subscription/webhook

Stripe webhook endpoint for payment events. Not called by clients directly. Configured in the Stripe Dashboard to point to https://auth.sigmaidentity.com/api/subscription/webhook.

Handled events:

EventAction
checkout.session.completedRecords payment, queues NFT minting to buyer's wallet
charge.refundedLogged for manual handling
charge.dispute.createdLogged for manual handling

Subscription Tiers

TierMonthlyAnnualKey Features
Free$0$0Basic authentication, 1 OAuth client
Plus$10$10010 OAuth clients, custom branding, email support
Pro$50$500Unlimited clients, analytics, priority support, white-label

How NFT Subscriptions Work

  1. Purchase - User selects a tier and pays via Stripe Checkout
  2. Mint - On payment confirmation, a subscription NFT is minted to the user's connected BSV wallet
  3. Verify - Sigma Auth checks NFT ownership via Gorilla Pool to determine the user's tier
  4. Transfer - The NFT can be listed and sold to another user, transferring the subscription with it
  5. Revoke - If a Stripe refund or chargeback occurs, the subscription record is flagged

On this page