Controle de acesso para os seus scripts Luau.

Emita keys de licença, prenda cada uma a um dispositivo e revogue no meio da sessão. Seu loader confere com o Surf antes de cada download.

Plano Free: 1 projeto, 100 licenças ativas, 20 builds por mês.

  1. POST/api/v1/products/:id/licenses201SURF-7F3KQ2

Demonstração · key e dispositivo de exemplo

Uma key, conferida em cada requisição.

Uma licença sozinha não abre nada. Toda requisição percorre a mesma corrente, e qualquer elo pode fechá-la.

  1. Emitir

    Crie uma licença e receba uma key SURF, mostrada uma única vez. O Surf guarda apenas o hash.

    POST /api/v1/products/:id/licenses 201 SURF-7F3KQ2-…

  2. Vincular

    A primeira ativação prende a key a um dispositivo, e o limite de dispositivos vale mesmo com requisições simultâneas.

    POST /api/v1/activate 201 DEV-3fa94c1b7e02

  3. Autenticar

    Seu loader troca a key e o dispositivo por um token de runtime de vida curta, 15 minutos por padrão. As renovações têm teto.

    POST /api/v1/runtime/authenticate 201 srt_•••• 900 s

  4. Conferir

    Toda requisição protegida confere de novo a licença, a ativação, o dispositivo e o produto. Suspenda ou revogue a key e a próxima requisição falha.

    GET /api/v1/runtime/session 200 autorizado

  5. Entregar

    O loader baixa o build concluído mais recente e o confere pelo SHA-256.

    GET /api/v1/runtime/artifact 200 sha256 conferido

Proteja o build antes de ele sair.

Os builds passam pelo Surf Protect a caminho do seu loader. Seu código-fonte nunca é armazenado nem registrado em log.

  • Um token protege até 256 KiB de código-fonte.
  • Cada token custa US$ 1, em qualquer quantidade, em qualquer plano.
  • O Pro inclui 5 tokens por período de cobrança e o Studio 25. Os tokens incluídos expiram com o período.

Custo da proteção

3 tokens = US$ 3

Maior código por job: Free 1 MiB, Pro 5 MiB, Studio 20 MiB.

Cada fechadura tem uma API.

Três credenciais que nunca substituem uma à outra: uma para você, uma para os seus servidores, uma para o seu loader.

  • Sessão

    Você, no navegador. Projetos, licenças, keys e cobrança.

    Authorization: Bearer <session>
  • API key

    Seus servidores. Escopo por recurso, opcionalmente restrita a um projeto.

    X-Surf-API-Key: surf_live_…
  • Token de runtime

    Seu loader. Uma licença em um dispositivo, conferida a cada requisição.

    Authorization: Bearer srt_…
Autentique a partir de um servidor de jogo Exemplo. Ative as requisições HTTP da experiência antes.
local HttpService = game:GetService("HttpService")

local response = HttpService:RequestAsync({
  Url = "https://surfauth.me/api/v1/runtime/authenticate",
  Method = "POST",
  Headers = { ["Content-Type"] = "application/json" },
  Body = HttpService:JSONEncode({
    licenseKey = LICENSE_KEY,
    deviceId = DEVICE_ID,
  }),
})

local session = HttpService:JSONDecode(response.Body).data
-- session.token travels as "Authorization: Bearer srt_…"

Webhooks

Eventos como license.created, activation.deactivated e build.completed, assinados com HMAC-SHA256 e reenviados com backoff.

Analytics

Contadores diários por projeto e produto: autenticações, ativações, builds e downloads.

Escopos

As API keys carregam só os escopos que você concede, de projects:read a analytics:read, e expiram em 90 dias por padrão.

Comece grátis. Pague conforme lança mais.

Todo plano inclui licenciamento, autenticação em runtime e entrega protegida.

Free

US$ 0 / mês

Sem pagamento

  • 1 projeto
  • 100 licenças ativas
  • 20 builds por mês
  • 2 API keys
Começar grátis

Pro

US$ 15 / mês

ou US$ 150 por ano

  • 10 projetos
  • 10.000 licenças ativas
  • 500 builds por mês
  • 5 tokens do Protect por período
Assinar Pro

Studio

US$ 49 / mês

ou US$ 490 por ano

  • Projetos ilimitados
  • Licenças ativas ilimitadas
  • 5.000 builds por mês
  • 25 tokens do Protect por período
Assinar Studio

Emita a sua primeira key.

Crie a conta no painel, ou vá de um terminal vazio a uma licença funcionando em três requisições.

  1. Crie a sua conta

    POST /api/v1/auth/register
  2. Entre para receber um token de sessão

    POST /api/v1/auth/login
  3. Crie um projeto, um produto e uma licença

    POST /api/v1/projects → …/products → …/licenses