ArchĒ license control layer

Software License Center

Prepare AI tool sales so every paid customer can receive a controlled license key, activate the tool, and check out/check in floating access without exposing secrets in the browser.

Recommended first route

Stripe payment → Netlify webhook → Keygen license → email delivery → PyArmor-protected tool validation.

This page installs the structure for paid AI tools without claiming live checkout, active license delivery, or final provider pricing. Keygen is the first operational adapter. Cryptlex and LicenseSpring remain documented future adapters until you choose and configure them.

Do not paste secret keys, Stripe signing secrets, Keygen tokens, customer payment details, or private account credentials into ArchĒ chat.

Current status

  • Public licensing page installed
  • Stripe checkout function scaffold installed
  • Stripe webhook license-delivery function installed
  • Keygen license validation function installed
  • Live operation requires Netlify Functions deployment and environment variables

Automation record

The license delivery path.

1. ProductCreate the AI tool product and Stripe price or payment link. Do not hard-code final prices until approved.
2. PaymentStripe Checkout or Payment Link collects payment securely outside the ArchĒ chat bar.
3. WebhookStripe sends checkout.session.completed to a Netlify Function that verifies the Stripe signature.
4. LicenseThe server-side function creates a license through the selected provider, starting with Keygen.
5. DeliveryThe license key is emailed to the customer and validated by the protected AI tool at startup.

Checkout connection test

Use this only after Stripe environment variables are set. Until then, it will return setup instructions instead of pretending checkout is active.

Checkout is installed as a backend test route. Add Stripe keys before live use.

License validation test

This tests the same kind of validation your PyArmor-protected Python tools can run at startup, using a license key and machine fingerprint.

Validation route is installed. Keygen account configuration is required for live validation.

Environment variables

Secrets required for the live version.

Set these in Netlify’s environment variables with Functions/runtime scope. Do not commit real values into the site files.

VariablePurposeRequired for
STRIPE_SECRET_KEYCreates Stripe Checkout Sessions from the server-side function.Checkout
STRIPE_WEBHOOK_SECRETVerifies Stripe webhook signatures before fulfilling orders.Webhook delivery
STRIPE_PRICE_AI_TOOL_LICENSEStripe Price ID for the first AI tool license product.Checkout
SITE_URLCanonical site URL for success/cancel redirects.Checkout
LICENSE_PROVIDERUse keygen first. Other provider adapters remain future work.Webhook
KEYGEN_ACCOUNT_IDKeygen account slug or ID.Keygen
KEYGEN_POLICY_IDPolicy used to create the customer license.Keygen
KEYGEN_API_TOKENServer-side token allowed to create licenses. Keep secret.Keygen
POSTMARK_SERVER_TOKENOptional email delivery token for license emails.Email delivery
LICENSE_FROM_EMAILApproved sender email for license delivery.Email delivery

Protected Python tools

PyArmor protects the code; the license service controls access.

Do not rely on PyArmor alone as the only licensing system. Obfuscate the tool, then make the startup path validate a customer license, machine fingerprint, and access state before the tool runs.

Startup rule: 1. Read user license key. 2. Generate stable machine fingerprint. 3. Validate license through Keygen or the ArchĒ license-check function. 4. If valid, run the AI tool. 5. If invalid, show purchase/support route. 6. Re-check periodically according to heartbeat/floating-license policy.