Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Using the VPN Service

This flow explains how customers receive and use VPN access after purchase.

What customers can do

  • Get personal subscription links
  • Import configs into supported proxy clients
  • Use nodes allowed by their active package
  • Queue future packages for automatic activation
  • Monitor usage and package consumption status

Access flow

flowchart TD
    paidOrder[OrderPaid] --> queue[PackageAddedToQueue]
    queue --> activate{HasActivePackage}
    activate -->|No| firstActive[ActivateFirstPackage]
    activate -->|Yes| stayQueued[RemainInQueue]
    firstActive --> nodeAccess[NodeAccessEnabled]
    stayQueued --> laterActivate[AutoActivateWhenCurrentConsumed]
    nodeAccess --> subscribe[GenerateSubscribeConfig]

Each user has a unique subscription token used to fetch client configuration from a subscribe URL.

  • URL can be opened directly in compatible clients
  • Client type can be auto-detected or user-selected
  • Generated config is filtered by user package permissions

Supported client families

  • Clash ecosystem
  • V2Ray-compatible clients
  • Sing-box ecosystem
  • iOS-focused clients such as QuantumultX, Loon, Surfboard, and Surge

Package lifecycle

  • InQueue: purchased, waiting
  • Active: currently providing service
  • Consumed: completed by time or traffic usage
  • Cancelled: removed due to cancellation/refund action

Only one package is active per user at a time. Additional packages wait and activate automatically in order.

Node access rules

Active package policy decides which nodes are visible to the customer.
If no package is active, node list and effective service access are empty.

What customers cannot do

  • Use nodes outside their active package group permissions
  • Activate multiple packages at the same time on one account
  • Use subscription token from another account
  • Keep access after package is fully consumed without another queued package