---
title: "Cinderace"
description: "Três distribuições para integrar a LuckyMaker: Core, Visual e Captcha."
---
<div class="lm-stats-band not-content">
    <div class="lm-stat"><strong>3</strong><span>distribuições</span></div>
    <div class="lm-stat"><strong>25</strong><span>namespaces</span></div>
    <div class="lm-stat"><strong>137</strong><span>métodos tipados</span></div>
    <div class="lm-stat"><strong>100%</strong><span>TypeScript</span></div>
</div>

## Core, Visual e Captcha

O **Cinderace Core** entrega as rotas, os tipos, o browser, o token, o carrinho e as system options. O **Cinderace Visual** está em preparação. O **Cinderace Captcha** resolve reCAPTCHA e Turnstile quando a API pede um token.

### Core

```ts
import { LMSdk } from "@luckymaker/sdk-core";

const sdk = new LMSdk({
    baseUrl: "api.sualoja.com.br"
});

const raffles = await sdk.raffles.listActive();
```

### Browser e system options

```ts
import { LMAutoSdk } from "@luckymaker/sdk-core";

// Origem da página + token no localStorage.
const session = await LMAutoSdk.auth.getSession();
const options = await LMAutoSdk.systemOptions.get();
```

### Captcha

```ts
import { GoogleRecaptchaSolver } from "@luckymaker/sdk-captcha";
import { LMSdk } from "@luckymaker/sdk-core";

const sdk = new LMSdk({
    baseUrl: "api.sualoja.com.br",
    captcha: {
        solver: new GoogleRecaptchaSolver()
    }
});
```

## Por que Cinderace

<div class="lm-feature-grid not-content">
    <div class="lm-feature-card">
        <span class="lm-feature-icon" aria-hidden="true">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="m8 9-4 3 4 3"/><path d="m16 9 4 3-4 3"/><path d="m13 5-2 14"/></svg>
        </span>
        <h3>Core tipado</h3>
        <p>Namespaces, parâmetros e respostas saem dos schemas TypeBox das rotas reais do backend.</p>
    </div>
    <div class="lm-feature-card">
        <span class="lm-feature-icon" aria-hidden="true">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="8" cy="15" r="4"/><path d="m10.8 12.2 7.2-7.2"/><path d="m16 6 2 2"/><path d="m13 9 2 2"/></svg>
        </span>
        <h3>Browser no Core</h3>
        <p>Origem automática, token e carrinho em localStorage. O login continua nas chamadas seguintes sem código extra.</p>
    </div>
    <div class="lm-feature-card">
        <span class="lm-feature-icon" aria-hidden="true">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 4h2l2.4 10.2a2 2 0 0 0 2 1.6h7.7a2 2 0 0 0 2-1.6L20 7H6"/><circle cx="9" cy="20" r="1"/><circle cx="18" cy="20" r="1"/></svg>
        </span>
        <h3>System options cacheadas</h3>
        <p>Nome, cores, SEO e módulos da loja com cache, TTL e tipos derivados do contrato do backend.</p>
    </div>
    <div class="lm-feature-card">
        <span class="lm-feature-icon" aria-hidden="true">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3 5 6v5c0 4.5 3 8 7 10 4-2 7-5.5 7-10V6l-7-3Z"/><path d="m9 12 2 2 4-4"/></svg>
        </span>
        <h3>Captcha plugável</h3>
        <p>reCAPTCHA, Turnstile ou detecção automática, com retry transparente no Core.</p>
    </div>
</div>

## Do zero ao primeiro pedido

A integração tem dois momentos: **configurar a conexão** (instância e autenticação) e **operar a loja** (carrinho, compra e acompanhamento). Os quatro passos abaixo mostram onde cada peça entra.

<div class="lm-step-grid not-content">
    <div class="lm-step">
        <span class="lm-step-number">1</span>
        <h3>Crie a instância</h3>
        <p>Informe só a origem da API. A SDK completa HTTPS e <code>/v1</code>.</p>
    </div>
    <div class="lm-step">
        <span class="lm-step-number">2</span>
        <h3>Autentique</h3>
        <p><code>signIn</code> salva o token. <code>getSession</code> e qualquer rota autenticada já o reutilizam.</p>
    </div>
    <div class="lm-step">
        <span class="lm-step-number">3</span>
        <h3>Monte o carrinho</h3>
        <p>Adicione títulos, ofertas e cupons, valide os issues e finalize com <code>purchase</code>.</p>
    </div>
    <div class="lm-step">
        <span class="lm-step-number">4</span>
        <h3>Acompanhe tudo</h3>
        <p>Pedidos, pagamentos, assinaturas, saques e resultados ficam no mesmo client tipado.</p>
    </div>
</div>

## Core: todos os namespaces

<div class="lm-namespace-grid not-content">
    <a class="lm-namespace-card" href="/docs/referencia/auth/">
        <span class="lm-namespace-kicker"><code>auth</code></span>
        <strong class="lm-namespace-title">Autenticação</strong>
        <span class="lm-namespace-description">Login, sessão, cadastro e recuperação de senha.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/raffles/">
        <span class="lm-namespace-kicker"><code>raffles</code></span>
        <strong class="lm-namespace-title">Sorteios</strong>
        <span class="lm-namespace-description">Sorteios, categorias, resultados e títulos.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/cart/">
        <span class="lm-namespace-kicker"><code>cart</code></span>
        <strong class="lm-namespace-title">Carrinho</strong>
        <span class="lm-namespace-description">Itens, ofertas, cupons e validações do carrinho.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/purchase/">
        <span class="lm-namespace-kicker"><code>purchase</code></span>
        <strong class="lm-namespace-title">Compra</strong>
        <span class="lm-namespace-description">Checkout e criação de compras.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/orders/">
        <span class="lm-namespace-kicker"><code>orders</code></span>
        <strong class="lm-namespace-title">Pedidos</strong>
        <span class="lm-namespace-description">Criação, autenticação e acompanhamento de pedidos.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/payments/">
        <span class="lm-namespace-kicker"><code>payments</code></span>
        <strong class="lm-namespace-title">Pagamentos</strong>
        <span class="lm-namespace-description">Métodos, histórico e rastreio de pagamentos.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/subscriptions/">
        <span class="lm-namespace-kicker"><code>subscriptions</code></span>
        <strong class="lm-namespace-title">Assinaturas</strong>
        <span class="lm-namespace-description">Planos, assinaturas e renovações.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/offers/">
        <span class="lm-namespace-kicker"><code>offers</code></span>
        <strong class="lm-namespace-title">Ofertas</strong>
        <span class="lm-namespace-description">Ofertas públicas e personalizadas.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/coupons/">
        <span class="lm-namespace-kicker"><code>coupons</code></span>
        <strong class="lm-namespace-title">Cupons</strong>
        <span class="lm-namespace-description">Resgate de cupons de desconto.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/ecommerce/">
        <span class="lm-namespace-kicker"><code>ecommerce</code></span>
        <strong class="lm-namespace-title">Loja</strong>
        <span class="lm-namespace-description">Catálogo, produtos e resgate de itens.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/instant-games/">
        <span class="lm-namespace-kicker"><code>instantGames</code></span>
        <strong class="lm-namespace-title">Jogos instantâneos</strong>
        <span class="lm-namespace-description">Partidas, rolls e prêmios instantâneos.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/prizes/">
        <span class="lm-namespace-kicker"><code>prizes</code></span>
        <strong class="lm-namespace-title">Prêmios</strong>
        <span class="lm-namespace-description">Estatísticas e ganhadores de prêmios.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/user/">
        <span class="lm-namespace-kicker"><code>user</code></span>
        <strong class="lm-namespace-title">Conta</strong>
        <span class="lm-namespace-description">Perfil, biblioteca, indicações e preferências.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/benefits/">
        <span class="lm-namespace-kicker"><code>benefits</code></span>
        <strong class="lm-namespace-title">Benefícios</strong>
        <span class="lm-namespace-description">Clube de benefícios, saldo e histórico.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/billing/">
        <span class="lm-namespace-kicker"><code>billing</code></span>
        <strong class="lm-namespace-title">Cobrança</strong>
        <span class="lm-namespace-description">Tentativas de cobrança e status.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/withdrawals/">
        <span class="lm-namespace-kicker"><code>withdrawals</code></span>
        <strong class="lm-namespace-title">Saques</strong>
        <span class="lm-namespace-description">Solicitações, métodos e resumo de saques.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/shipping/">
        <span class="lm-namespace-kicker"><code>shipping</code></span>
        <strong class="lm-namespace-title">Frete</strong>
        <span class="lm-namespace-description">Endereços, cotações e rastreio de entrega.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/address/">
        <span class="lm-namespace-kicker"><code>address</code></span>
        <strong class="lm-namespace-title">Endereços</strong>
        <span class="lm-namespace-description">Consulta de CEP e dados de endereço.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/site/">
        <span class="lm-namespace-kicker"><code>site</code></span>
        <strong class="lm-namespace-title">Site</strong>
        <span class="lm-namespace-description">Blocos, FAQ, busca e conteúdo do site.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/analytics/">
        <span class="lm-namespace-kicker"><code>analytics</code></span>
        <strong class="lm-namespace-title">Analytics</strong>
        <span class="lm-namespace-description">Eventos de analytics do storefront.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/security/">
        <span class="lm-namespace-kicker"><code>security</code></span>
        <strong class="lm-namespace-title">Segurança</strong>
        <span class="lm-namespace-description">Desafios de segurança e proof of work.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/connection/">
        <span class="lm-namespace-kicker"><code>connection</code></span>
        <strong class="lm-namespace-title">Conexão</strong>
        <span class="lm-namespace-description">Informações da conexão e do dispositivo.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/contemplations/">
        <span class="lm-namespace-kicker"><code>contemplations</code></span>
        <strong class="lm-namespace-title">Contemplações</strong>
        <span class="lm-namespace-description">Títulos e contemplações do usuário.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/system/">
        <span class="lm-namespace-kicker"><code>system</code></span>
        <strong class="lm-namespace-title">Sistema</strong>
        <span class="lm-namespace-description">Informações e configurações do sistema.</span>
    </a>
    <a class="lm-namespace-card" href="/docs/referencia/health/">
        <span class="lm-namespace-kicker"><code>health</code></span>
        <strong class="lm-namespace-title">Saúde</strong>
        <span class="lm-namespace-description">Health check e status do serviço.</span>
    </a>
</div>

## Pronto para integrar

<div class="lm-feature-grid not-content">
    <a class="lm-feature-card" href="/docs/guias/comecando/" style="text-decoration:none">
        <h3>Guia de primeiros passos <svg class="lm-card-arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg></h3>
        <p>Instale, crie a instância, faça login e valide a primeira chamada.</p>
    </a>
    <a class="lm-feature-card" href="/docs/guias/visual/" style="text-decoration:none">
        <h3>Visual em preparação <svg class="lm-card-arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg></h3>
        <p>A distribuição de frontend ainda está sendo preparada.</p>
    </a>
    <a class="lm-feature-card" href="/docs/guias/system-options/" style="text-decoration:none">
        <h3>System options <svg class="lm-card-arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg></h3>
        <p>Configurações da loja com cache, TTL e tipos.</p>
    </a>
    <a class="lm-feature-card" href="/docs/guias/captcha/" style="text-decoration:none">
        <h3>Captcha <svg class="lm-card-arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg></h3>
        <p>Solvers de reCAPTCHA e Turnstile com retry automático.</p>
    </a>
    <a class="lm-feature-card" href="/docs/referencia/" style="text-decoration:none">
        <h3>Referência Core <svg class="lm-card-arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg></h3>
        <p>25 namespaces com assinaturas, tipos, tabelas e exemplos.</p>
    </a>
</div>