Alby — billetera sin custodia. Tú controlas las claves.
import { AlbyProvider } from 'l402-kit';// 1. Crea un Alby Hub en hub.getalby.com (o alójalo tú mismo)// 2. Configuración → Tokens de acceso → crear token (permisos: invoices:create, invoices:read)const lightning = new AlbyProvider( process.env.ALBY_ACCESS_TOKEN!, // Token de acceso del Hub process.env.ALBY_HUB_URL!, // ej. "https://your-name.getalby.com");
import { BTCPayProvider } from 'l402-kit';const lightning = new BTCPayProvider( process.env.BTCPAY_URL!, // https://your-btcpay.com process.env.BTCPAY_API_KEY!, // clave API de la tienda process.env.BTCPAY_STORE_ID!, // ID de la tienda);
import { BlinkProvider } from 'l402-kit';const lightning = new BlinkProvider( process.env.BLINK_API_KEY!, // dashboard.blink.sv → API Keys process.env.BLINK_WALLET_ID!, // tu ID de billetera BTC);
import { OpenNodeProvider } from 'l402-kit';const lightning = new OpenNodeProvider( process.env.OPENNODE_API_KEY!, false, // testMode — establece en true para sandbox);
l402kit.com aloja el nodo de Lightning. Recibes el 99.7% de cada pago. Opt-in explícito.
import { ManagedProvider } from 'l402-kit';const lightning = ManagedProvider.fromAddress('you@yourdomain.com');// Opcional: registro automático en el directorio público de APIsconst lightning = ManagedProvider.fromAddress('you@yourdomain.com', { registerDirectory: { url: 'https://api.you.com/v1/data', name: 'My Data API', priceSats: 10, category: 'data', // data | ai | finance | weather | compute | storage | other description: 'Opcional', },});
El registro se ejecuta una vez al inicio (fire-and-forget, los errores son silenciosos). La API aparece en l402kit.com/apis.json para que los agentes puedan descubrirla automáticamente.
Establece SUPABASE_URL + SUPABASE_ANON_KEY en tu entorno para registrar los pagos automáticamente.
app.get('/api', l402({ priceSats: 10, lightning }), handler);// SUPABASE_URL y SUPABASE_ANON_KEY se leen desde process.env automáticamente
Esquema de la tabla de pagos (payments):
create table payments ( id uuid primary key default gen_random_uuid(), payment_hash text unique not null, -- SHA256(preimage) — seguro para almacenar endpoint text, amount_sats integer, paid_at timestamptz default now());
payment_hash almacena SHA256(preimage), no el preimage en crudo. El preimage es el secreto de pago Lightning de 32 bytes — su hash ya es público en la factura BOLT11.
La verificación del token ejecuta SHA256(preimage) == paymentHash en memoria — sub-milisegundo, sin llamada de red en el camino crítico.El ReplayAdapter en memoria (por defecto) también se ejecuta de forma síncrona. Si usas RedisReplayAdapter, añade un viaje de ida y vuelta a Redis de 5–50 ms por solicitud. Planifica la capacidad en consecuencia para endpoints de alta frecuencia.
El middleware acepta silenciosamente el encabezado X-Payment (utilizado por el protocolo x402 de Coinbase) además del encabezado estándar Authorization: L402 …. Ambos se tratan de forma idéntica — útil si deseas atender clientes que hablen cualquiera de los dos protocolos.
// Cliente usando el encabezado x402 — gestionado de forma transparente// X-Payment: <macaroon>:<preimage>
No se necesita configuración; siempre está habilitado.
ALTER TABLE payments RENAME COLUMN preimage TO payment_hash;
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"l402-kit","colors":{"primary":"#F7931A","light":"#FFA940","dark":"#C97400"},"favicon":"https://mintcdn.com/shinydapps-bd9fa40b/3RrQ3zT6iPR-mLGe/favicon.svg?fit=max\u0026auto=format\u0026n=3RrQ3zT6iPR-mLGe\u0026q=85\u0026s=a5f85c777733866faaa98ea82fd1c9d5","logo":{"light":"https://mintcdn.com/shinydapps-bd9fa40b/7v_VXqyvCHB5f7BK/logo/light.svg?fit=max\u0026auto=format\u0026n=7v_VXqyvCHB5f7BK\u0026q=85\u0026s=183346f42d07cb5e220bf7c98daf13b0","dark":"https://mintcdn.com/shinydapps-bd9fa40b/7v_VXqyvCHB5f7BK/logo/dark.svg?fit=max\u0026auto=format\u0026n=7v_VXqyvCHB5f7BK\u0026q=85\u0026s=6dde1849979ebac6173f31ccb12375cb"},"navbar":{"links":[{"label":"npm","href":"https://npmjs.com/package/l402-kit"},{"label":"PyPI","href":"https://pypi.org/project/l402kit"}],"primary":null},"footer":{"socials":{"twitter":"https://twitter.com/shinydapps"}},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"npm","href":"https://npmjs.com/package/l402-kit","icon":"npm"},{"anchor":"PyPI","href":"https://pypi.org/project/l402kit","icon":"python"},{"anchor":"crates.io","href":"https://crates.io/crates/l402kit","icon":"rust"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"shinydapps-bd9fa40b","hasAudioNarration":false,"actualSubdomain":"shinydapps-bd9fa40b","customDomains":[],"gitSource":{"type":"github","owner":"shinydapps","repo":"l402-kit","deployBranch":"main","contentDirectory":"docs","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae9557d6532f6ede4e96854:success","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"Documentation","count":442},{"language":"default","tag":"Guides","count":143},{"language":"default","tag":"Agent SDK","count":110},{"language":"default","tag":"Reference","count":57},{"language":"default","tag":"Agent Integrations","count":44},{"language":"default","tag":"SDKs","count":44},{"language":"default","tag":"🇸🇦 العربية","count":40},{"language":"default","tag":"🇩🇪 Deutsch","count":40},{"language":"default","tag":"🇪🇸 Español","count":40},{"language":"default","tag":"🇫🇷 Français","count":40}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"es/sdk/typescript","slug":"/es/sdk/typescript","pageMetadata":{"title":"TypeScript SDK","description":"Referencia completa del SDK TypeScript/Node.js de l402-kit — middleware Express para APIs de pago por llamada con Bitcoin Lightning.","href":"/es/sdk/typescript"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Referencia completa del SDK TypeScript/Node.js de l402-kit — middleware Express para APIs de pago por llamada con Bitcoin Lightning.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Tab,Table,Tabs}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`instalación`,children:`Instalación`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` l402-kit`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Requisitos`}),`: Node.js 18+, Express 4+`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`inicio-rápido`,children:`Inicio rápido`}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`Tu billetera (0% de comisión)`,id:`tu-billetera-0%25-de-comisi%C3%B3n`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`16`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`16`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` express`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'express'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`l402`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BlinkProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'l402-kit'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` app`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` express`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Los pagos van directamente a tu billetera Blink — 0% de comisión`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` lightning`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` BlinkProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`BLINK_API_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`BLINK_WALLET_ID`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`app`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`get`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'/api/data'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`l402`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`priceSats:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 10`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`lightning`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }), (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`req`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`res`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` res`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`json`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'premium content'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`app`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`listen`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})})}),_jsx(Tab,{title:`Administrado (sin nodo propio)`,id:`administrado-sin-nodo-propio`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`13`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` express`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'express'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`l402`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ManagedProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'l402-kit'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` app`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` express`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// l402kit.com aloja el nodo. Recibes el 99.7% de cada pago.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` lightning`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` ManagedProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`fromAddress`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'you@yourdomain.com'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`app`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`get`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'/api/data'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`l402`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`priceSats:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 10`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`lightning`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }), (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`req`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`res`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` res`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`json`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'premium content'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`app`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`listen`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsxs(Heading,{level:`2`,id:`l402-options-—-middleware`,children:[_jsx(_components.code,{children:`l402(options)`}),` — middleware`]}),`\n`,_jsxs(_components.p,{children:[`Devuelve un `,_jsx(_components.code,{children:`RequestHandler`}),` de Express que aplica el pago L402 en la ruta.`]}),`\n`,_jsx(Heading,{level:`3`,id:`opciones`,children:`Opciones`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Opción`}),_jsx(_components.th,{children:`Tipo`}),_jsx(_components.th,{children:`Predeterminado`}),_jsx(_components.th,{children:`Descripción`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`priceSats`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`number`})}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`requerido`})}),_jsx(_components.td,{children:`Precio por llamada en satoshis`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`lightning`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`LightningProvider`})}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`requerido`})}),_jsx(_components.td,{children:`Tu backend de Lightning`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`supabaseUrl`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsxs(_components.td,{children:[`variable de entorno `,_jsx(_components.code,{children:`SUPABASE_URL`})]}),_jsx(_components.td,{children:`URL de Supabase para registro de pagos`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`supabaseKey`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsxs(_components.td,{children:[`variable de entorno `,_jsx(_components.code,{children:`SUPABASE_ANON_KEY`})]}),_jsx(_components.td,{children:`Clave de Supabase para registro de pagos`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`onPayment`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`(token, amountSats) => void`})}),_jsx(_components.td,{children:`—`}),_jsx(_components.td,{children:`Callback ejecutado tras cada pago verificado`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`webhookUrl`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`—`}),_jsx(_components.td,{children:`Tu endpoint para recibir eventos de pago firmados`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`webhookSecret`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`—`}),_jsx(_components.td,{children:`Secreto HMAC-SHA256 para la firma del webhook`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`replayAdapter`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`ReplayAdapter`})}),_jsx(_components.td,{children:`en memoria`}),_jsx(_components.td,{children:`Backend de protección contra repetición intercambiable`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`comportamiento`,children:`Comportamiento`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Solicitud`}),_jsx(_components.th,{children:`Respuesta`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`Sin encabezado `,_jsx(_components.code,{children:`Authorization`})]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`402 Payment Required`}),` con factura BOLT11 + macaroon`]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`L402 \u003cmacaroon>:\u003cpreimage>`}),` válido`]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`next()`}),` — el handler se ejecuta`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Token inválido o expirado`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`401 Unauthorized`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`preimage repetido`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`401 Token already used`})})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`cuerpo-de-la-respuesta-402`,children:`Cuerpo de la respuesta 402`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Payment Required\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"invoice\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"lnbc100n1p...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"macaroon\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"eyJoYXNoIjoiYWJjMTIzIiwiZXhwIjoxNzAwMDAwMDAwfQ==\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"priceSats\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`10`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`encabezado-www-authenticate`,children:`Encabezado WWW-Authenticate`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`WWW-Authenticate: L402 macaroon=\"eyJ...\", invoice=\"lnbc...\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`proveedores`,children:`Proveedores`}),`\n`,_jsxs(Heading,{level:`3`,id:`albyprovider-—-recomendado-para-el-modo-soberano`,children:[_jsx(_components.code,{children:`AlbyProvider`}),` — recomendado para el modo soberano`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`https://getalby.com`,children:`Alby`}),` — billetera sin custodia. Tú controlas las claves.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`AlbyProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'l402-kit'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// 1. Crea un Alby Hub en hub.getalby.com (o alójalo tú mismo)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// 2. Configuración → Tokens de acceso → crear token (permisos: invoices:create, invoices:read)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` lightning`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` AlbyProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`ALBY_ACCESS_TOKEN`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Token de acceso del Hub`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`ALBY_HUB_URL`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// ej. \"https://your-name.getalby.com\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})}),`\n`]})})}),`\n`,_jsxs(Heading,{level:`3`,id:`btcpayprovider-—-autoalojado-cero-confianza`,children:[_jsx(_components.code,{children:`BTCPayProvider`}),` — autoalojado, cero confianza`]}),`\n`,_jsxs(_components.p,{children:[`Ejecuta tu propio `,_jsx(_components.a,{href:`https://btcpaystore.com`,children:`BTCPay Server`}),`. Soberanía total.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BTCPayProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'l402-kit'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` lightning`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` BTCPayProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`BTCPAY_URL`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// https://your-btcpay.com`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`BTCPAY_API_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// clave API de la tienda`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`BTCPAY_STORE_ID`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// ID de la tienda`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})}),`\n`]})})}),`\n`,_jsxs(Heading,{level:`3`,id:`blinkprovider-—-con-custodia-el-inicio-más-sencillo`,children:[_jsx(_components.code,{children:`BlinkProvider`}),` — con custodia, el inicio más sencillo`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`https://blink.sv`,children:`Blink`}),` — gratuito, sin KYC para montos pequeños.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BlinkProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'l402-kit'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` lightning`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` BlinkProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`BLINK_API_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// dashboard.blink.sv → API Keys`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`BLINK_WALLET_ID`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// tu ID de billetera BTC`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`lnbitsprovider`,children:_jsx(_components.code,{children:`LNbitsProvider`})}),`\n`,_jsxs(_components.p,{children:[`Autoalojado o en `,_jsx(_components.a,{href:`https://legend.lnbits.com`,children:`legend.lnbits.com`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`LNbitsProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'l402-kit'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` lightning`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` LNbitsProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`LNBITS_API_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'https://your-lnbits-instance.com'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// opcional, por defecto legend.lnbits.com`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`opennodeprovider`,children:_jsx(_components.code,{children:`OpenNodeProvider`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`OpenNodeProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'l402-kit'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` lightning`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` OpenNodeProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`OPENNODE_API_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// testMode — establece en true para sandbox`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})}),`\n`]})})}),`\n`,_jsxs(Heading,{level:`3`,id:`managedprovider-—-modo-nube-0-3%-de-comisión`,children:[_jsx(_components.code,{children:`ManagedProvider`}),` — modo nube (0.3% de comisión)`]}),`\n`,_jsx(_components.p,{children:`l402kit.com aloja el nodo de Lightning. Recibes el 99.7% de cada pago. Opt-in explícito.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ManagedProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'l402-kit'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` lightning`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` ManagedProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`fromAddress`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'you@yourdomain.com'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Opcional: registro automático en el directorio público de APIs`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` lightning`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` ManagedProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`fromAddress`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'you@yourdomain.com'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` registerDirectory:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` url:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'https://api.you.com/v1/data'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` name:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'My Data API'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` priceSats:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 10`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` category:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'data'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// data | ai | finance | weather | compute | storage | other`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` description:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Opcional'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`El registro se ejecuta una vez al inicio (fire-and-forget, los errores son silenciosos). La API aparece en `,_jsx(_components.code,{children:`l402kit.com/apis.json`}),` para que los agentes puedan descubrirla automáticamente.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`protección-contra-repetición`,children:`Protección contra repetición`}),`\n`,_jsx(Heading,{level:`3`,id:`por-defecto-—-en-memoria-desarrollo`,children:`Por defecto — en memoria (desarrollo)`}),`\n`,_jsx(_components.p,{children:`Integrado. Se reinicia al reiniciar el proceso. Adecuado para despliegues de un solo proceso.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`app`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`get`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'/api'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`l402`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`priceSats:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 10`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`lightning`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }), `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`handler`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`redis-producción-—-múltiples-instancias`,children:`Redis (producción — múltiples instancias)`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Redis`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'ioredis'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`l402`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`RedisReplayAdapter`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'l402-kit'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` replay`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` RedisReplayAdapter`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Redis`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`REDIS_URL`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 86400`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// TTL en segundos (24h)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`app`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`get`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'/api'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`l402`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`priceSats:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 10`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`lightning`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`replayAdapter:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` replay`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }), `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`handler`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`RedisReplayAdapter`}),` usa `,_jsx(_components.code,{children:`SET key 1 NX EX ttl`}),` — atómico, libre de condiciones de carrera.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`webhooks-de-pago`,children:`Webhooks de pago`}),`\n`,_jsx(_components.p,{children:`Recibe un evento firmado tras cada pago.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`22`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`22`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`l402`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`verifyWebhook`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'l402-kit'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`app`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`get`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'/api/data'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`l402`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` priceSats:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 10`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` lightning`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` webhookUrl:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'https://yourapi.com/webhooks/l402'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` webhookSecret:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`L402_WEBHOOK_SECRET`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}), `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`handler`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Receptor del webhook`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`app`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`post`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'/webhooks/l402'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`express`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`raw`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`type:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '*/*'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }), (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`req`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`res`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` valid`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` verifyWebhook`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`L402_WEBHOOK_SECRET`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` req`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`body`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`toString`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` req`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`headers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'l402-signature'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`as`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` );`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`valid`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` res`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`status`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`401`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`end`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` event`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` JSON`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`parse`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`req`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`body`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`toString`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`());`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Payment:'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`paymentHash`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`amountSats`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` res`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`json`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ok:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Payload del webhook:`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"evt_abc123\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"payment.received\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"created\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1700000000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"endpoint\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"/api/data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"amountSats\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`10`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"paymentHash\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sha256-of-preimage\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsxs(Heading,{level:`2`,id:`callback-onpayment`,children:[`Callback `,_jsx(_components.code,{children:`onPayment`})]}),`\n`,_jsxs(_components.p,{children:[`Hook síncrono ejecutado tras cada pago verificado, antes de `,_jsx(_components.code,{children:`next()`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`app`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`get`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'/api/data'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`l402`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` priceSats:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 10`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` lightning`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` onPayment`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` async`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ({ `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`macaroon`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`preimage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`amountSats`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` myAnalytics`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`track`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'payment'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`amountSats`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}), `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`handler`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`registro-de-pagos-con-supabase`,children:`Registro de pagos con Supabase`}),`\n`,_jsxs(_components.p,{children:[`Establece `,_jsx(_components.code,{children:`SUPABASE_URL`}),` + `,_jsx(_components.code,{children:`SUPABASE_ANON_KEY`}),` en tu entorno para registrar los pagos automáticamente.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`app`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`get`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'/api'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`l402`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`priceSats:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 10`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`lightning`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }), `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`handler`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// SUPABASE_URL y SUPABASE_ANON_KEY se leen desde process.env automáticamente`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Esquema de la tabla de pagos`}),` (`,_jsx(_components.code,{children:`payments`}),`):`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`create`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` table`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` payments`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` id uuid `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`primary key`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` default`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` gen_random_uuid(),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` payment_hash `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`text`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` unique`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` not null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`-- SHA256(preimage) — seguro para almacenar`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` endpoint`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` amount_sats `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`integer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` paid_at `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`timestamptz`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` default`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` now`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})}),`\n`]})})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`payment_hash`}),` almacena `,_jsx(_components.code,{children:`SHA256(preimage)`}),`, no el preimage en crudo. El preimage es el secreto de pago Lightning de 32 bytes — su hash ya es público en la factura BOLT11.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`utilidades-independientes`,children:`Utilidades independientes`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`10`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`verifyToken`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`parseToken`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`checkAndMarkPreimage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'l402-kit'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Verificar un token (devuelve true/false)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` isValid`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` verifyToken`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'eyJoYXNoIjoi...:deadbeef...'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Analizar las partes del token`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`macaroon`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`preimage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` parseToken`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Verificación de repetición personalizada (devuelve true = primer uso, false = repetición)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` isFirstUse`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` checkAndMarkPreimage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`preimage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`tipos`,children:`Tipos`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`25`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`25`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`L402Options`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`LightningProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Invoice`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`L402Token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'l402-kit'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`interface`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` L402Options`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` priceSats`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` number`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` lightning`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` LightningProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` supabaseUrl`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` supabaseKey`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` onPayment`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`token`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` L402Token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`amountSats`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` number`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` void`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Promise`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`void`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`>;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` webhookUrl`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` webhookSecret`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` replayAdapter`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` ReplayAdapter`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`interface`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Invoice`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` paymentRequest`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` paymentHash`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` macaroon`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` amountSats`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` number`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` expiresAt`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` number`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`; `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Unix ms`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`interface`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` LightningProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` createInvoice`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`amountSats`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` number`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Promise`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`Invoice`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`>;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` checkPayment`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`paymentHash`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Promise`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`boolean`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`>;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`tiempo-de-verificación`,children:`Tiempo de verificación`}),`\n`,_jsxs(_components.p,{children:[`La verificación del token ejecuta `,_jsx(_components.code,{children:`SHA256(preimage) == paymentHash`}),` en memoria — `,_jsx(_components.strong,{children:`sub-milisegundo, sin llamada de red`}),` en el camino crítico.`]}),`\n`,_jsxs(_components.p,{children:[`El `,_jsx(_components.code,{children:`ReplayAdapter`}),` en memoria (por defecto) también se ejecuta de forma síncrona. Si usas `,_jsx(_components.code,{children:`RedisReplayAdapter`}),`, añade un viaje de ida y vuelta a Redis de `,_jsx(_components.strong,{children:`5–50 ms`}),` por solicitud. Planifica la capacidad en consecuencia para endpoints de alta frecuencia.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsxs(Heading,{level:`2`,id:`compatibilidad-con-x402-encabezado-x-payment`,children:[`Compatibilidad con x402 (encabezado `,_jsx(_components.code,{children:`X-Payment`}),`)`]}),`\n`,_jsxs(_components.p,{children:[`El middleware acepta silenciosamente el encabezado `,_jsx(_components.code,{children:`X-Payment`}),` (utilizado por el `,_jsx(_components.a,{href:`https://x402.org`,children:`protocolo x402`}),` de Coinbase) además del encabezado estándar `,_jsx(_components.code,{children:`Authorization: L402 …`}),`. Ambos se tratan de forma idéntica — útil si deseas atender clientes que hablen cualquiera de los dos protocolos.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Cliente usando el encabezado x402 — gestionado de forma transparente`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// X-Payment: \u003cmacaroon>:\u003cpreimage>`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`No se necesita configuración; siempre está habilitado.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`guía-de-migración`,children:`Guía de migración`}),`\n`,_jsx(Heading,{level:`3`,id:`v1-1-→-v1-2`,children:`v1.1 → v1.2`}),`\n`,_jsxs(_components.p,{children:[`Renombra la columna en tu tabla `,_jsx(_components.code,{children:`payments`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`ALTER`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` TABLE`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` payments RENAME COLUMN preimage `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`TO`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` payment_hash;`})]}),`\n`]})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"TypeScript SDK","description":"Referencia completa del SDK TypeScript/Node.js de l402-kit — middleware Express para APIs de pago por llamada con Bitcoin Lightning.","href":"/es/sdk/typescript"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Instalación","slug":"instalación","depth":2,"children":[]},{"title":"Inicio rápido","slug":"inicio-rápido","depth":2,"children":[]},{"title":"l402(options) — middleware","slug":"l402-options-—-middleware","depth":2,"children":[{"title":"Opciones","slug":"opciones","depth":3,"children":[]},{"title":"Comportamiento","slug":"comportamiento","depth":3,"children":[]},{"title":"Cuerpo de la respuesta 402","slug":"cuerpo-de-la-respuesta-402","depth":3,"children":[]},{"title":"Encabezado WWW-Authenticate","slug":"encabezado-www-authenticate","depth":3,"children":[]}]},{"title":"Proveedores","slug":"proveedores","depth":2,"children":[{"title":"AlbyProvider — recomendado para el modo soberano","slug":"albyprovider-—-recomendado-para-el-modo-soberano","depth":3,"children":[]},{"title":"BTCPayProvider — autoalojado, cero confianza","slug":"btcpayprovider-—-autoalojado-cero-confianza","depth":3,"children":[]},{"title":"BlinkProvider — con custodia, el inicio más sencillo","slug":"blinkprovider-—-con-custodia-el-inicio-más-sencillo","depth":3,"children":[]},{"title":"LNbitsProvider","slug":"lnbitsprovider","depth":3,"children":[]},{"title":"OpenNodeProvider","slug":"opennodeprovider","depth":3,"children":[]},{"title":"ManagedProvider — modo nube (0.3% de comisión)","slug":"managedprovider-—-modo-nube-0-3%-de-comisión","depth":3,"children":[]}]},{"title":"Protección contra repetición","slug":"protección-contra-repetición","depth":2,"children":[{"title":"Por defecto — en memoria (desarrollo)","slug":"por-defecto-—-en-memoria-desarrollo","depth":3,"children":[]},{"title":"Redis (producción — múltiples instancias)","slug":"redis-producción-—-múltiples-instancias","depth":3,"children":[]}]},{"title":"Webhooks de pago","slug":"webhooks-de-pago","depth":2,"children":[]},{"title":"Callback onPayment","slug":"callback-onpayment","depth":2,"children":[]},{"title":"Registro de pagos con Supabase","slug":"registro-de-pagos-con-supabase","depth":2,"children":[]},{"title":"Utilidades independientes","slug":"utilidades-independientes","depth":2,"children":[]},{"title":"Tipos","slug":"tipos","depth":2,"children":[]},{"title":"Tiempo de verificación","slug":"tiempo-de-verificación","depth":2,"children":[]},{"title":"Compatibilidad con x402 (encabezado X-Payment)","slug":"compatibilidad-con-x402-encabezado-x-payment","depth":2,"children":[]},{"title":"Guía de migración","slug":"guía-de-migración","depth":2,"children":[{"title":"v1.1 → v1.2","slug":"v1-1-→-v1-2","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"shinydapps-bd9fa40b","siteName":"l402-kit","title":"TypeScript SDK - l402-kit","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-05-11T02:42:31.878Z","originalFileLocation":"es/sdk/typescript.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Referencia completa del SDK TypeScript/Node.js de l402-kit — middleware Express para APIs de pago por llamada con Bitcoin Lightning.\">\u003cmeta data-mint-head name=\"application-name\" content=\"l402-kit\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/shinydapps-bd9fa40b/JGV8IlzJ3DqNt6m2/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/shinydapps-bd9fa40b/JGV8IlzJ3DqNt6m2/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/shinydapps-bd9fa40b/JGV8IlzJ3DqNt6m2/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/shinydapps-bd9fa40b/JGV8IlzJ3DqNt6m2/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/shinydapps-bd9fa40b/JGV8IlzJ3DqNt6m2/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/shinydapps-bd9fa40b/JGV8IlzJ3DqNt6m2/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/shinydapps-bd9fa40b/JGV8IlzJ3DqNt6m2/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/shinydapps-bd9fa40b/JGV8IlzJ3DqNt6m2/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/shinydapps-bd9fa40b/JGV8IlzJ3DqNt6m2/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"TypeScript SDK - l402-kit\">\u003cmeta data-mint-head property=\"og:description\" content=\"Referencia completa del SDK TypeScript/Node.js de l402-kit — middleware Express para APIs de pago por llamada con Bitcoin Lightning.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"l402-kit\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://shinydapps-bd9fa40b.mintlify.app/es/sdk/typescript\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://shinydapps-bd9fa40b.mintlify.site/_mintlify/api/og/v2?division=SDKs\u0026amp;title=TypeScript+SDK\u0026amp;description=Referencia+completa+del+SDK+TypeScript%2FNode.js+de+l402-kit+%E2%80%94+middleware+Express+para+APIs+de+pago+por+llamada+con+Bitcoin+Lightning.\u0026amp;theme=3a585d22bc3f70b5da5a1cdd\u0026amp;signature=eff3bb074ed0c86bbbaf025547e51d45a04d80c8defadb6f3e143e4199955040\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"TypeScript SDK - l402-kit\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Referencia completa del SDK TypeScript/Node.js de l402-kit — middleware Express para APIs de pago por llamada con Bitcoin Lightning.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://shinydapps-bd9fa40b.mintlify.site/_mintlify/api/og/v2?division=SDKs\u0026amp;title=TypeScript+SDK\u0026amp;description=Referencia+completa+del+SDK+TypeScript%2FNode.js+de+l402-kit+%E2%80%94+middleware+Express+para+APIs+de+pago+por+llamada+con+Bitcoin+Lightning.\u0026amp;theme=3a585d22bc3f70b5da5a1cdd\u0026amp;signature=eff3bb074ed0c86bbbaf025547e51d45a04d80c8defadb6f3e143e4199955040\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/shinydapps-bd9fa40b/JGV8IlzJ3DqNt6m2/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"l402-kit\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#F7931A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://shinydapps-bd9fa40b.mintlify.app/es/sdk/typescript\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/es/sdk/typescript.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://shinydapps-bd9fa40b.mintlify.app/#organization\",\"name\":\"l402-kit\",\"url\":\"https://shinydapps-bd9fa40b.mintlify.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/shinydapps-bd9fa40b/7v_VXqyvCHB5f7BK/logo/light.svg?fit=max\u0026auto=format\u0026n=7v_VXqyvCHB5f7BK\u0026q=85\u0026s=183346f42d07cb5e220bf7c98daf13b0\"}},{\"@type\":\"WebSite\",\"@id\":\"https://shinydapps-bd9fa40b.mintlify.app#website\",\"name\":\"l402-kit\",\"url\":\"https://shinydapps-bd9fa40b.mintlify.app\",\"publisher\":{\"@id\":\"https://shinydapps-bd9fa40b.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://shinydapps-bd9fa40b.mintlify.app/es/sdk/typescript#webpage\",\"url\":\"https://shinydapps-bd9fa40b.mintlify.app/es/sdk/typescript\",\"name\":\"TypeScript SDK\",\"description\":\"Referencia completa del SDK TypeScript/Node.js de l402-kit — middleware Express para APIs de pago por llamada con Bitcoin Lightning.\",\"dateModified\":\"2026-05-11T02:42:31.878Z\",\"isPartOf\":{\"@id\":\"https://shinydapps-bd9fa40b.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://shinydapps-bd9fa40b.mintlify.app/es/sdk/typescript#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://shinydapps-bd9fa40b.mintlify.app/es/sdk/typescript#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"🇪🇸 Español\",\"item\":\"https://shinydapps-bd9fa40b.mintlify.app/es/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"TypeScript SDK\",\"item\":\"https://shinydapps-bd9fa40b.mintlify.app/es/sdk/typescript\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://shinydapps-bd9fa40b.mintlify.app/es/sdk/typescript#article\",\"headline\":\"TypeScript SDK\",\"name\":\"TypeScript SDK\",\"description\":\"Referencia completa del SDK TypeScript/Node.js de l402-kit — middleware Express para APIs de pago por llamada con Bitcoin Lightning.\",\"url\":\"https://shinydapps-bd9fa40b.mintlify.app/es/sdk/typescript\",\"mainEntityOfPage\":{\"@id\":\"https://shinydapps-bd9fa40b.mintlify.app/es/sdk/typescript#webpage\"},\"dateModified\":\"2026-05-11T02:42:31.878Z\",\"publisher\":{\"@id\":\"https://shinydapps-bd9fa40b.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://shinydapps-bd9fa40b.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"l402-kit\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"l402-kit\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/es/sdk/typescript.md","siteName":"l402-kit","nav":{"global":{"anchors":[{"anchor":"npm","href":"https://npmjs.com/package/l402-kit","icon":"npm"},{"anchor":"PyPI","href":"https://pypi.org/project/l402kit","icon":"python"},{"anchor":"crates.io","href":"https://crates.io/crates/l402kit","icon":"rust"}]},"anchors":[{"anchor":"Documentation","icon":"book-open","groups":[{"group":"Getting Started","pages":[{"title":"Introduction","href":"/introduction"},{"title":"Quickstart","href":"/quickstart"}]},{"group":"SDKs","pages":[{"title":"TypeScript SDK","href":"/sdk/typescript"},{"title":"Python SDK","href":"/sdk/python"},{"title":"Go SDK","href":"/sdk/go"},{"title":"Rust SDK","href":"/sdk/rust"}]},{"group":"Agent SDK","pages":[{"title":"Agent SDK — Quickstart","href":"/agent/quickstart"},{"title":"Wallets","href":"/agent/wallets"},{"title":"Budget Control","href":"/agent/budget"},{"title":"MCP Server","href":"/agent/mcp"},{"title":"LangChain Tool","href":"/agent/langchain"},{"title":"System Prompt Snippet","href":"/agent/system-prompt"},{"title":"Wallet Quickstart","href":"/agent/wallet-quickstart"},{"title":"Agent-to-Agent Delegation","href":"/agent/delegation"},{"title":"VERITY","href":"/agent/verity"},{"title":"LAW-N Behavioral Events","href":"/agent/lawn-n"}]},{"group":"Agent Integrations","pages":[{"title":"CrewAI Integration","href":"/agent/crewai"},{"title":"OpenAI Agents SDK","href":"/agent/openai-agents"},{"title":"Vercel AI SDK","href":"/agent/vercel-ai"},{"title":"AutoGPT Integration","href":"/agent/autogpt"}]},{"group":"Guides","pages":[{"title":"Pricing Your API","href":"/guides/pricing"},{"title":"Testing","href":"/guides/testing"},{"title":"Analytics Dashboard","href":"/guides/dashboard"},{"title":"VS Code Extension","href":"/guides/vscode"},{"title":"Privacy Architecture","href":"/guides/privacy"},{"title":"System Flows","href":"/guides/flows"},{"title":"AI Agents","href":"/guides/ai-agents"},{"title":"LNURL Integration","href":"/guides/lnurl"},{"title":"Security Guide","href":"/guides/security"},{"title":"Production Guide","href":"/guides/production"},{"title":"Migration Guide","href":"/guides/migration"},{"title":"Troubleshooting","href":"/guides/troubleshooting"},{"title":"DNS Discovery","href":"/guides/dns-discovery"}]},{"group":"Reference","pages":[{"title":"Providers","href":"/providers"},{"title":"API Reference","href":"/api-reference"},{"title":"Error Reference","href":"/reference/errors"},{"title":"vs. Competition","href":"/competitive"},{"title":"Payment Layer","href":"/payment-layer"},{"title":"White Paper","href":"/whitepaper"},{"title":"White Paper — Extended Edition","href":"/whitepaper-extended"}]},{"group":"Built with l402-kit","pages":[{"title":"Diagram Forge","icon":"circle-nodes","href":"/examples/diagram-forge"},{"title":"VERITY Examples","href":"/examples/verity"}]},{"group":"🇧🇷 Português","pages":[{"group":"Getting Started","pages":[{"title":"Introdução","href":"/pt/introduction"},{"title":"Início Rápido","href":"/pt/quickstart"}]},{"group":"SDKs","pages":[{"title":"TypeScript SDK","href":"/pt/sdk/typescript"},{"title":"Python SDK","href":"/pt/sdk/python"},{"title":"Go SDK","href":"/pt/sdk/go"},{"title":"Rust SDK","href":"/pt/sdk/rust"}]},{"group":"Agent SDK","pages":[{"title":"Agent SDK — Início Rápido","href":"/pt/agent/quickstart"},{"title":"Carteiras","href":"/pt/agent/wallets"},{"title":"Controle de Orçamento","href":"/pt/agent/budget"},{"title":"MCP Server","href":"/pt/agent/mcp"},{"title":"LangChain Tool","href":"/pt/agent/langchain"},{"title":"Trecho de Prompt de Sistema","href":"/pt/agent/system-prompt"},{"title":"Início Rápido com Carteira","href":"/pt/agent/wallet-quickstart"},{"title":"Delegação Agente-para-Agente","href":"/pt/agent/delegation"},{"title":null,"href":"/pt/agent/verity"},{"title":"Eventos Comportamentais LAW-N","href":"/pt/agent/lawn-n"}]},{"group":"Agent Integrations","pages":[{"title":"Integração com CrewAI","href":"/pt/agent/crewai"},{"title":"OpenAI Agents SDK","href":"/pt/agent/openai-agents"},{"title":"Vercel AI SDK","href":"/pt/agent/vercel-ai"},{"title":"Integração com AutoGPT","href":"/pt/agent/autogpt"}]},{"group":"Guides","pages":[{"title":"Precificando Sua API","href":"/pt/guides/pricing"},{"title":"Testes","href":"/pt/guides/testing"},{"title":"Painel de Analytics","href":"/pt/guides/dashboard"},{"title":"Extensão para VS Code","href":"/pt/guides/vscode"},{"title":"Arquitetura de Privacidade","href":"/pt/guides/privacy"},{"title":"Fluxos do Sistema","href":"/pt/guides/flows"},{"title":"Agentes de IA","href":"/pt/guides/ai-agents"},{"title":"Integração LNURL","href":"/pt/guides/lnurl"},{"title":"Guia de Segurança","href":"/pt/guides/security"},{"title":"Guia de Produção","href":"/pt/guides/production"},{"title":"Guia de Migração","href":"/pt/guides/migration"},{"title":"Solução de Problemas","href":"/pt/guides/troubleshooting"},{"title":"Descoberta via DNS","href":"/pt/guides/dns-discovery"}]},{"group":"Reference","pages":[{"title":"Provedores","href":"/pt/providers"},{"title":"Referência da API","href":"/pt/api-reference"},{"title":"Referência de Erros","href":"/pt/reference/errors"},{"title":"vs. Concorrência","href":"/pt/competitive"},{"title":"Camada de Pagamento","href":"/pt/payment-layer"}]},{"group":"Examples","pages":[{"title":"Diagram Forge","icon":"circle-nodes","href":"/pt/examples/diagram-forge"},{"title":"Exemplos VERITY","href":"/pt/examples/verity"}]}]},{"group":"🇪🇸 Español","pages":[{"group":"Getting Started","pages":[{"title":"Introducción","href":"/es/introduction"},{"title":"Inicio Rápido","description":"De cero a una API de pago en 60 segundos.","href":"/es/quickstart"}]},{"group":"SDKs","pages":[{"title":"TypeScript SDK","href":"/es/sdk/typescript"},{"title":"Python SDK","description":"Referencia completa del SDK Python de l402kit — decorador para FastAPI y Flask para APIs de pago por llamada con Bitcoin Lightning.","href":"/es/sdk/python"},{"title":"Go SDK","href":"/es/sdk/go"},{"title":"Rust SDK","href":"/es/sdk/rust"}]},{"group":"Agent SDK","pages":[{"title":"Agent SDK — Inicio Rápido","href":"/es/agent/quickstart"},{"title":"Wallets","href":"/es/agent/wallets"},{"title":"Control de Presupuesto","href":"/es/agent/budget"},{"title":"MCP Server","href":"/es/agent/mcp"},{"title":"Herramienta LangChain","href":"/es/agent/langchain"},{"title":"Fragmento de Prompt de Sistema","href":"/es/agent/system-prompt"},{"title":"Inicio Rápido de Billetera","href":"/es/agent/wallet-quickstart"},{"title":"Delegación Agente a Agente","href":"/es/agent/delegation"},{"title":"VERITY","href":"/es/agent/verity"},{"title":"Eventos de Comportamiento LAW-N","href":"/es/agent/lawn-n"}]},{"group":"Agent Integrations","pages":[{"title":"Integración con CrewAI","href":"/es/agent/crewai"},{"title":"OpenAI Agents SDK","href":"/es/agent/openai-agents"},{"title":"Vercel AI SDK","href":"/es/agent/vercel-ai"},{"title":"Integración con AutoGPT","href":"/es/agent/autogpt"}]},{"group":"Guides","pages":[{"title":"Precios para tu API","href":"/es/guides/pricing"},{"title":"Pruebas","href":"/es/guides/testing"},{"title":"Panel de Analíticas","href":"/es/guides/dashboard"},{"title":"Extensión de VS Code","href":"/es/guides/vscode"},{"title":"Arquitectura de Privacidad","href":"/es/guides/privacy"},{"title":"Flujos del Sistema","href":"/es/guides/flows"},{"title":"Agentes de IA","href":"/es/guides/ai-agents"},{"title":"Integración con LNURL","href":"/es/guides/lnurl"},{"title":"Guía de Seguridad","href":"/es/guides/security"},{"title":"Guía de Producción","href":"/es/guides/production"},{"title":"Guía de Migración","href":"/es/guides/migration"},{"title":"Solución de problemas","href":"/es/guides/troubleshooting"},{"title":"Descubrimiento DNS","href":"/es/guides/dns-discovery"}]},{"group":"Reference","pages":[{"title":"Proveedores","href":"/es/providers"},{"title":"Referencia de API","href":"/es/api-reference"},{"title":"Referencia de Errores","href":"/es/reference/errors"},{"title":"vs. Competencia","href":"/es/competitive"},{"title":"Capa de Pago","href":"/es/payment-layer"}]},{"group":"Examples","pages":[{"title":"Diagram Forge","icon":"circle-nodes","href":"/es/examples/diagram-forge"},{"title":"Ejemplos de VERITY","href":"/es/examples/verity"}]}]},{"group":"🇨🇳 中文","pages":[{"group":"Getting Started","pages":[{"title":"??","href":"/zh/introduction"},{"title":"快速入门","href":"/zh/quickstart"}]},{"group":"SDKs","pages":[{"title":"TypeScript SDK","href":"/zh/sdk/typescript"},{"title":"Python SDK","href":"/zh/sdk/python"},{"title":"Go SDK","href":"/zh/sdk/go"},{"title":"Rust SDK","href":"/zh/sdk/rust"}]},{"group":"Agent SDK","pages":[{"title":"Agent SDK — 快速开始","href":"/zh/agent/quickstart"},{"title":"钱包","href":"/zh/agent/wallets"},{"title":"预算控制","href":"/zh/agent/budget"},{"title":"MCP Server","href":"/zh/agent/mcp"},{"title":"LangChain 工具","href":"/zh/agent/langchain"},{"title":"系统提示片段","href":"/zh/agent/system-prompt"},{"title":"钱包快速入门","href":"/zh/agent/wallet-quickstart"},{"title":"代理间委托","href":"/zh/agent/delegation"},{"title":"VERITY","href":"/zh/agent/verity"},{"title":"LAW-N 行为事件","href":"/zh/agent/lawn-n"}]},{"group":"Agent Integrations","pages":[{"title":"CrewAI 集成","href":"/zh/agent/crewai"},{"title":"OpenAI Agents SDK","href":"/zh/agent/openai-agents"},{"title":"Vercel AI SDK","href":"/zh/agent/vercel-ai"},{"title":"AutoGPT 集成","href":"/zh/agent/autogpt"}]},{"group":"Guides","pages":[{"title":"为你的 API 定价","href":"/zh/guides/pricing"},{"title":"测试","href":"/zh/guides/testing"},{"title":"分析仪表板","href":"/zh/guides/dashboard"},{"title":"VS Code 扩展","href":"/zh/guides/vscode"},{"title":"隐私架构","href":"/zh/guides/privacy"},{"title":"系统流程","href":"/zh/guides/flows"},{"title":"AI Agents","href":"/zh/guides/ai-agents"},{"title":"LNURL 集成","href":"/zh/guides/lnurl"},{"title":"安全指南","href":"/zh/guides/security"},{"title":"生产环境指南","href":"/zh/guides/production"},{"title":"迁移指南","href":"/zh/guides/migration"},{"title":"故障排查","href":"/zh/guides/troubleshooting"},{"title":"DNS 发现","href":"/zh/guides/dns-discovery"}]},{"group":"Reference","pages":[{"title":"Providers","href":"/zh/providers"},{"title":"API 参考","href":"/zh/api-reference"},{"title":"错误参考","href":"/zh/reference/errors"},{"title":"竞品对比","href":"/zh/competitive"},{"title":"支付层","href":"/zh/payment-layer"}]},{"group":"Examples","pages":[{"title":"Diagram Forge","icon":"circle-nodes","href":"/zh/examples/diagram-forge"},{"title":"VERITY 示例","href":"/zh/examples/verity"}]}]},{"group":"🇸🇦 العربية","pages":[{"group":"Getting Started","pages":[{"title":"?????","href":"/ar/introduction"},{"title":"البدء السريع","href":"/ar/quickstart"}]},{"group":"SDKs","pages":[{"title":"TypeScript SDK","href":"/ar/sdk/typescript"},{"title":"Python SDK","href":"/ar/sdk/python"},{"title":"Go SDK","href":"/ar/sdk/go"},{"title":"Rust SDK","href":"/ar/sdk/rust"}]},{"group":"Agent SDK","pages":[{"title":"Agent SDK — البدء السريع","href":"/ar/agent/quickstart"},{"title":"المحافظ","href":"/ar/agent/wallets"},{"title":"التحكم في الميزانية","href":"/ar/agent/budget"},{"title":"خادم MCP","href":"/ar/agent/mcp"},{"title":"أداة LangChain","href":"/ar/agent/langchain"},{"title":"مقتطف موجه النظام","href":"/ar/agent/system-prompt"},{"title":"البدء السريع بالمحفظة","href":"/ar/agent/wallet-quickstart"},{"title":"تفويض من وكيل إلى وكيل","href":"/ar/agent/delegation"},{"title":"VERITY","href":"/ar/agent/verity"},{"title":"أحداث سلوك LAW-N","href":"/ar/agent/lawn-n"}]},{"group":"Agent Integrations","pages":[{"title":"تكامل CrewAI","href":"/ar/agent/crewai"},{"title":"OpenAI Agents SDK","href":"/ar/agent/openai-agents"},{"title":"Vercel AI SDK","href":"/ar/agent/vercel-ai"},{"title":"تكامل AutoGPT","href":"/ar/agent/autogpt"}]},{"group":"Guides","pages":[{"title":"تسعير واجهة برمجة التطبيقات الخاصة بك","href":"/ar/guides/pricing"},{"title":"الاختبار","href":"/ar/guides/testing"},{"title":"لوحة تحكم التحليلات","href":"/ar/guides/dashboard"},{"title":"امتداد VS Code","href":"/ar/guides/vscode"},{"title":"هندسة الخصوصية","href":"/ar/guides/privacy"},{"title":"تدفقات النظام","href":"/ar/guides/flows"},{"title":"وكلاء الذكاء الاصطناعي","href":"/ar/guides/ai-agents"},{"title":"تكامل LNURL","href":"/ar/guides/lnurl"},{"title":"دليل الأمان","href":"/ar/guides/security"},{"title":"دليل الإنتاج","href":"/ar/guides/production"},{"title":"دليل الترحيل","href":"/ar/guides/migration"},{"title":"استكشاف الأخطاء وإصلاحها","href":"/ar/guides/troubleshooting"},{"title":"اكتشاف DNS","href":"/ar/guides/dns-discovery"}]},{"group":"Reference","pages":[{"title":"المزودون","href":"/ar/providers"},{"title":"مرجع API","href":"/ar/api-reference"},{"title":"مرجع الأخطاء","href":"/ar/reference/errors"},{"title":"مقارنة مع المنافسين","href":"/ar/competitive"},{"title":"طبقة الدفع","href":"/ar/payment-layer"}]},{"group":"Examples","pages":[{"title":"Diagram Forge","icon":"circle-nodes","href":"/ar/examples/diagram-forge"},{"title":"أمثلة VERITY","href":"/ar/examples/verity"}]}]},{"group":"🇮🇳 हिंदी","pages":[{"group":"Getting Started","pages":[{"title":"?????","href":"/hi/introduction"},{"title":"Quickstart","href":"/hi/quickstart"}]},{"group":"SDKs","pages":[{"title":"TypeScript SDK","href":"/hi/sdk/typescript"},{"title":"Python SDK","href":"/hi/sdk/python"},{"title":"Go SDK","href":"/hi/sdk/go"},{"title":"Rust SDK","href":"/hi/sdk/rust"}]},{"group":"Agent SDK","pages":[{"title":"Agent SDK — Quickstart","href":"/hi/agent/quickstart"},{"title":"वॉलेट्स","href":"/hi/agent/wallets"},{"title":"बजट नियंत्रण","href":"/hi/agent/budget"},{"title":"MCP Server","href":"/hi/agent/mcp"},{"title":"LangChain Tool","href":"/hi/agent/langchain"},{"title":"System Prompt Snippet","href":"/hi/agent/system-prompt"},{"title":"Wallet Quickstart","href":"/hi/agent/wallet-quickstart"},{"title":"एजेंट-से-एजेंट डेलिगेशन","href":"/hi/agent/delegation"},{"title":"VERITY","href":"/hi/agent/verity"},{"title":"LAW-N Behavioral Events","href":"/hi/agent/lawn-n"}]},{"group":"Agent Integrations","pages":[{"title":"CrewAI Integration","href":"/hi/agent/crewai"},{"title":"OpenAI Agents SDK","href":"/hi/agent/openai-agents"},{"title":"Vercel AI SDK","href":"/hi/agent/vercel-ai"},{"title":"AutoGPT इंटीग्रेशन","href":"/hi/agent/autogpt"}]},{"group":"Guides","pages":[{"title":"अपना API मूल्य निर्धारित करना","href":"/hi/guides/pricing"},{"title":"परीक्षण","href":"/hi/guides/testing"},{"title":"Analytics Dashboard","href":"/hi/guides/dashboard"},{"title":"VS Code एक्सटेंशन","href":"/hi/guides/vscode"},{"title":"गोपनीयता आर्किटेक्चर","href":"/hi/guides/privacy"},{"title":"System Flows","href":"/hi/guides/flows"},{"title":"AI Agents","href":"/hi/guides/ai-agents"},{"title":"LNURL Integration","href":"/hi/guides/lnurl"},{"title":"सुरक्षा गाइड","href":"/hi/guides/security"},{"title":"प्रोडक्शन गाइड","href":"/hi/guides/production"},{"title":"Migration Guide","href":"/hi/guides/migration"},{"title":"समस्या निवारण","href":"/hi/guides/troubleshooting"},{"title":"DNS Discovery","href":"/hi/guides/dns-discovery"}]},{"group":"Reference","pages":[{"title":"Providers","href":"/hi/providers"},{"title":"API Reference","href":"/hi/api-reference"},{"title":"Error Reference","href":"/hi/reference/errors"},{"title":"vs. प्रतिस्पर्धा","href":"/hi/competitive"},{"title":"Payment Layer","href":"/hi/payment-layer"}]},{"group":"Examples","pages":[{"title":"Diagram Forge","icon":"circle-nodes","href":"/hi/examples/diagram-forge"},{"title":"VERITY उदाहरण","href":"/hi/examples/verity"}]}]},{"group":"🇫🇷 Français","pages":[{"group":"Getting Started","pages":[{"title":"Introduction","href":"/fr/introduction"},{"title":"Démarrage rapide","href":"/fr/quickstart"}]},{"group":"SDKs","pages":[{"title":"TypeScript SDK","href":"/fr/sdk/typescript"},{"title":"Python SDK","href":"/fr/sdk/python"},{"title":"Go SDK","href":"/fr/sdk/go"},{"title":"Rust SDK","href":"/fr/sdk/rust"}]},{"group":"Agent SDK","pages":[{"title":"Agent SDK — Démarrage rapide","href":"/fr/agent/quickstart"},{"title":"Portefeuilles","href":"/fr/agent/wallets"},{"title":"Contrôle du budget","href":"/fr/agent/budget"},{"title":"MCP Server","href":"/fr/agent/mcp"},{"title":"Outil LangChain","href":"/fr/agent/langchain"},{"title":"Extrait de Prompt Système","href":"/fr/agent/system-prompt"},{"title":"Démarrage rapide avec un portefeuille","href":"/fr/agent/wallet-quickstart"},{"title":"Délégation Agent-à-Agent","href":"/fr/agent/delegation"},{"title":"VERITY","href":"/fr/agent/verity"},{"title":"Événements Comportementaux LAW-N","href":"/fr/agent/lawn-n"}]},{"group":"Agent Integrations","pages":[{"title":"Intégration CrewAI","href":"/fr/agent/crewai"},{"title":"OpenAI Agents SDK","href":"/fr/agent/openai-agents"},{"title":"Vercel AI SDK","href":"/fr/agent/vercel-ai"},{"title":"Intégration AutoGPT","href":"/fr/agent/autogpt"}]},{"group":"Guides","pages":[{"title":"Tarification de votre API","href":"/fr/guides/pricing"},{"title":"Tests","href":"/fr/guides/testing"},{"title":"Tableau de bord analytique","href":"/fr/guides/dashboard"},{"title":"Extension VS Code","href":"/fr/guides/vscode"},{"title":"Architecture de Confidentialité","href":"/fr/guides/privacy"},{"title":"Flux Système","href":"/fr/guides/flows"},{"title":"Agents IA","href":"/fr/guides/ai-agents"},{"title":"Intégration LNURL","href":"/fr/guides/lnurl"},{"title":"Guide de sécurité","href":"/fr/guides/security"},{"title":"Guide de production","href":"/fr/guides/production"},{"title":"Guide de Migration","href":"/fr/guides/migration"},{"title":"Dépannage","href":"/fr/guides/troubleshooting"},{"title":"Découverte DNS","href":"/fr/guides/dns-discovery"}]},{"group":"Reference","pages":[{"title":"Providers","href":"/fr/providers"},{"title":"Référence API","href":"/fr/api-reference"},{"title":"Référence des erreurs","href":"/fr/reference/errors"},{"title":"vs. Concurrence","href":"/fr/competitive"},{"title":"Couche de Paiement","href":"/fr/payment-layer"}]},{"group":"Examples","pages":[{"title":"Diagram Forge","icon":"circle-nodes","href":"/fr/examples/diagram-forge"},{"title":"Exemples VERITY","href":"/fr/examples/verity"}]}]},{"group":"🇩🇪 Deutsch","pages":[{"group":"Getting Started","pages":[{"title":"Einführung","href":"/de/introduction"},{"title":"Quickstart","href":"/de/quickstart"}]},{"group":"SDKs","pages":[{"title":"TypeScript SDK","href":"/de/sdk/typescript"},{"title":"Python SDK","href":"/de/sdk/python"},{"title":"Go SDK","href":"/de/sdk/go"},{"title":"Rust SDK","href":"/de/sdk/rust"}]},{"group":"Agent SDK","pages":[{"title":"Agent SDK — Schnellstart","href":"/de/agent/quickstart"},{"title":"Wallets","href":"/de/agent/wallets"},{"title":"Budgetkontrolle","href":"/de/agent/budget"},{"title":"MCP Server","href":"/de/agent/mcp"},{"title":"LangChain Tool","href":"/de/agent/langchain"},{"title":"System Prompt Snippet","href":"/de/agent/system-prompt"},{"title":"Wallet Schnellstart","href":"/de/agent/wallet-quickstart"},{"title":"Agent-zu-Agent-Delegation","href":"/de/agent/delegation"},{"title":"VERITY","href":"/de/agent/verity"},{"title":"LAW-N Verhaltens-Events","href":"/de/agent/lawn-n"}]},{"group":"Agent Integrations","pages":[{"title":"CrewAI Integration","href":"/de/agent/crewai"},{"title":"OpenAI Agents SDK","href":"/de/agent/openai-agents"},{"title":"Vercel AI SDK","href":"/de/agent/vercel-ai"},{"title":"AutoGPT Integration","href":"/de/agent/autogpt"}]},{"group":"Guides","pages":[{"title":"Preisgestaltung Ihrer API","href":"/de/guides/pricing"},{"title":"Testen","href":"/de/guides/testing"},{"title":"Analytics Dashboard","href":"/de/guides/dashboard"},{"title":"VS Code Extension","href":"/de/guides/vscode"},{"title":"Datenschutzarchitektur","href":"/de/guides/privacy"},{"title":"Systemabläufe","href":"/de/guides/flows"},{"title":"AI Agents","href":"/de/guides/ai-agents"},{"title":"LNURL-Integration","href":"/de/guides/lnurl"},{"title":"Sicherheitsleitfaden","href":"/de/guides/security"},{"title":"Produktionsleitfaden","href":"/de/guides/production"},{"title":"Migrationsleitfaden","href":"/de/guides/migration"},{"title":"Fehlerbehebung","href":"/de/guides/troubleshooting"},{"title":"DNS Discovery","href":"/de/guides/dns-discovery"}]},{"group":"Reference","pages":[{"title":"Anbieter","href":"/de/providers"},{"title":"API-Referenz","href":"/de/api-reference"},{"title":"Fehlerreferenz","href":"/de/reference/errors"},{"title":"vs. Konkurrenz","href":"/de/competitive"},{"title":"Zahlungsschicht","href":"/de/payment-layer"}]},{"group":"Examples","pages":[{"title":"Diagram Forge","icon":"circle-nodes","href":"/de/examples/diagram-forge"},{"title":"VERITY Beispiele","href":"/de/examples/verity"}]}]},{"group":"🇷🇺 Русский","pages":[{"group":"Getting Started","pages":[{"title":"????????","href":"/ru/introduction"},{"title":"Быстрый старт","href":"/ru/quickstart"}]},{"group":"SDKs","pages":[{"title":"TypeScript SDK","href":"/ru/sdk/typescript"},{"title":"Python SDK","href":"/ru/sdk/python"},{"title":"Go SDK","href":"/ru/sdk/go"},{"title":"Rust SDK","href":"/ru/sdk/rust"}]},{"group":"Agent SDK","pages":[{"title":"Agent SDK — Быстрый старт","href":"/ru/agent/quickstart"},{"title":"Кошельки","href":"/ru/agent/wallets"},{"title":"Контроль бюджета","href":"/ru/agent/budget"},{"title":"MCP Server","href":"/ru/agent/mcp"},{"title":"Инструмент LangChain","href":"/ru/agent/langchain"},{"title":"Фрагмент системного промпта","href":"/ru/agent/system-prompt"},{"title":"Быстрый старт с кошельком","href":"/ru/agent/wallet-quickstart"},{"title":"Делегирование между агентами","href":"/ru/agent/delegation"},{"title":"VERITY","href":"/ru/agent/verity"},{"title":"LAW-N Поведенческие события","href":"/ru/agent/lawn-n"}]},{"group":"Agent Integrations","pages":[{"title":"Интеграция с CrewAI","href":"/ru/agent/crewai"},{"title":"OpenAI Agents SDK","href":"/ru/agent/openai-agents"},{"title":"Vercel AI SDK","href":"/ru/agent/vercel-ai"},{"title":"Интеграция с AutoGPT","href":"/ru/agent/autogpt"}]},{"group":"Guides","pages":[{"title":"Ценообразование вашего API","href":"/ru/guides/pricing"},{"title":"Тестирование","href":"/ru/guides/testing"},{"title":"Панель аналитики","href":"/ru/guides/dashboard"},{"title":"Расширение VS Code","href":"/ru/guides/vscode"},{"title":"Архитектура конфиденциальности","href":"/ru/guides/privacy"},{"title":"Системные потоки","href":"/ru/guides/flows"},{"title":"AI Агенты","href":"/ru/guides/ai-agents"},{"title":"Интеграция LNURL","href":"/ru/guides/lnurl"},{"title":"Руководство по безопасности","href":"/ru/guides/security"},{"title":"Руководство по production-развёртыванию","href":"/ru/guides/production"},{"title":"Руководство по миграции","href":"/ru/guides/migration"},{"title":"Устранение неполадок","href":"/ru/guides/troubleshooting"},{"title":"DNS Discovery","href":"/ru/guides/dns-discovery"}]},{"group":"Reference","pages":[{"title":"Providers","href":"/ru/providers"},{"title":"Справочник API","href":"/ru/api-reference"},{"title":"Справочник ошибок","href":"/ru/reference/errors"},{"title":"vs. Конкуренты","href":"/ru/competitive"},{"title":"Платёжный уровень","href":"/ru/payment-layer"}]},{"group":"Examples","pages":[{"title":"Diagram Forge","icon":"circle-nodes","href":"/ru/examples/diagram-forge"},{"title":"Примеры VERITY","href":"/ru/examples/verity"}]}]},{"group":"🇯🇵 日本語","pages":[{"group":"Getting Started","pages":[{"title":"????","href":"/ja/introduction"},{"title":"クイックスタート","href":"/ja/quickstart"}]},{"group":"SDKs","pages":[{"title":"TypeScript SDK","href":"/ja/sdk/typescript"},{"title":"Python SDK","href":"/ja/sdk/python"},{"title":"Go SDK","href":"/ja/sdk/go"},{"title":"Rust SDK","href":"/ja/sdk/rust"}]},{"group":"Agent SDK","pages":[{"title":"エージェント SDK — クイックスタート","href":"/ja/agent/quickstart"},{"title":"ウォレット","href":"/ja/agent/wallets"},{"title":"予算管理","href":"/ja/agent/budget"},{"title":"MCP Server","href":"/ja/agent/mcp"},{"title":"LangChain ツール","href":"/ja/agent/langchain"},{"title":"システムプロンプトスニペット","href":"/ja/agent/system-prompt"},{"title":"ウォレット クイックスタート","href":"/ja/agent/wallet-quickstart"},{"title":"エージェント間デリゲーション","href":"/ja/agent/delegation"},{"title":"VERITY","href":"/ja/agent/verity"},{"title":"LAW-N 行動イベント","href":"/ja/agent/lawn-n"}]},{"group":"Agent Integrations","pages":[{"title":"CrewAI インテグレーション","href":"/ja/agent/crewai"},{"title":"OpenAI Agents SDK","href":"/ja/agent/openai-agents"},{"title":"Vercel AI SDK","href":"/ja/agent/vercel-ai"},{"title":"AutoGPT インテグレーション","href":"/ja/agent/autogpt"}]},{"group":"Guides","pages":[{"title":"APIの価格設定","href":"/ja/guides/pricing"},{"title":"テスト","href":"/ja/guides/testing"},{"title":"アナリティクスダッシュボード","href":"/ja/guides/dashboard"},{"title":"VS Code 拡張機能","href":"/ja/guides/vscode"},{"title":"プライバシーアーキテクチャ","href":"/ja/guides/privacy"},{"title":"システムフロー","href":"/ja/guides/flows"},{"title":"AIエージェント","href":"/ja/guides/ai-agents"},{"title":"LNURL インテグレーション","href":"/ja/guides/lnurl"},{"title":"セキュリティガイド","href":"/ja/guides/security"},{"title":"本番環境ガイド","href":"/ja/guides/production"},{"title":"マイグレーションガイド","href":"/ja/guides/migration"},{"title":"トラブルシューティング","href":"/ja/guides/troubleshooting"},{"title":"DNS ディスカバリー","href":"/ja/guides/dns-discovery"}]},{"group":"Reference","pages":[{"title":"プロバイダー","href":"/ja/providers"},{"title":"APIリファレンス","href":"/ja/api-reference"},{"title":"エラーリファレンス","href":"/ja/reference/errors"},{"title":"競合比較","href":"/ja/competitive"},{"title":"ペイメントレイヤー","href":"/ja/payment-layer"}]},{"group":"Examples","pages":[{"title":"Diagram Forge","icon":"circle-nodes","href":"/ja/examples/diagram-forge"},{"title":"VERITY サンプル","href":"/ja/examples/verity"}]}]},{"group":"🇮🇹 Italiano","pages":[{"group":"Getting Started","pages":[{"title":"Introduzione","href":"/it/introduction"},{"title":"Quickstart","href":"/it/quickstart"}]},{"group":"SDKs","pages":[{"title":"TypeScript SDK","href":"/it/sdk/typescript"},{"title":"Python SDK","href":"/it/sdk/python"},{"title":"Go SDK","href":"/it/sdk/go"},{"title":"Rust SDK","href":"/it/sdk/rust"}]},{"group":"Agent SDK","pages":[{"title":"Agent SDK — Avvio rapido","href":"/it/agent/quickstart"},{"title":"Wallet","href":"/it/agent/wallets"},{"title":"Controllo del Budget","href":"/it/agent/budget"},{"title":"MCP Server","href":"/it/agent/mcp"},{"title":"LangChain Tool","href":"/it/agent/langchain"},{"title":"Frammento di System Prompt","href":"/it/agent/system-prompt"},{"title":"Avvio Rapido del Portafoglio","href":"/it/agent/wallet-quickstart"},{"title":"Delega Agente-ad-Agente","href":"/it/agent/delegation"},{"title":"VERITY","href":"/it/agent/verity"},{"title":"LAW-N Behavioral Events","href":"/it/agent/lawn-n"}]},{"group":"Agent Integrations","pages":[{"title":"Integrazione CrewAI","href":"/it/agent/crewai"},{"title":"OpenAI Agents SDK","href":"/it/agent/openai-agents"},{"title":"Vercel AI SDK","href":"/it/agent/vercel-ai"},{"title":"Integrazione AutoGPT","href":"/it/agent/autogpt"}]},{"group":"Guides","pages":[{"title":"Prezzi per la tua API","href":"/it/guides/pricing"},{"title":"Testing","href":"/it/guides/testing"},{"title":"Dashboard di Analisi","href":"/it/guides/dashboard"},{"title":"Estensione VS Code","href":"/it/guides/vscode"},{"title":"Architettura della Privacy","href":"/it/guides/privacy"},{"title":"Flussi di Sistema","href":"/it/guides/flows"},{"title":"Agenti AI","href":"/it/guides/ai-agents"},{"title":"Integrazione LNURL","href":"/it/guides/lnurl"},{"title":"Guida alla Sicurezza","href":"/it/guides/security"},{"title":"Guida alla Produzione","href":"/it/guides/production"},{"title":"Guida alla Migrazione","href":"/it/guides/migration"},{"title":"Risoluzione dei problemi","href":"/it/guides/troubleshooting"},{"title":"DNS Discovery","href":"/it/guides/dns-discovery"}]},{"group":"Reference","pages":[{"title":"Provider","href":"/it/providers"},{"title":"Riferimento API","href":"/it/api-reference"},{"title":"Riferimento Errori","href":"/it/reference/errors"},{"title":"vs. Concorrenti","href":"/it/competitive"},{"title":"Livello di Pagamento","href":"/it/payment-layer"}]},{"group":"Examples","pages":[{"title":"Diagram Forge","icon":"circle-nodes","href":"/it/examples/diagram-forge"},{"title":"Esempi VERITY","href":"/it/examples/verity"}]}]}]}]},"basePath":"","title":"TypeScript SDK - l402-kit","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":[],"chunks":[]}