@vkx/gas
v0.1.0
Published
Patrocine o gás dos seus usuários: eles transacionam sem ter a moeda nativa. Paymaster as a service (EIP-7702), com cashback e um depósito para todas as redes EVM.
Maintainers
Readme
@vkx/gas
Patrocine o gás dos seus usuários. Eles transacionam sem ter a moeda nativa da rede — você paga o gás e a VKX cobra do seu saldo pré-pago. Paymaster como serviço via EIP-7702: seus usuários não trocam de carteira, é a própria conta deles que delega.
Um depósito serve todas as redes EVM. Parte do que você paga volta como cashback (crédito usado primeiro nas próximas transações).
npm install @vkx/gasUso
import { GasSponsor } from '@vkx/gas';
const gas = new GasSponsor({ apiKey: process.env.VKX_GAS_KEY }); // vkx_gas_...
// 1. Você monta a UserOperation do seu usuário (seu stack 4337/7702),
// com os limites de gás e SEM assinatura ainda.
const sponsored = await gas.prepare({ network: 'BSC', userOp });
// sponsored.paymasterAndData → já assinado pela VKX (cole na op)
// sponsored.userOpHash → é o que o seu usuário assina
// sponsored.estimatedDebitUsd → quanto sai do seu saldo (estimado)
// 2. Seu usuário assina sponsored.userOpHash; você coloca a assinatura na op.
// 3. Submeta — no bundler da VKX ou em qualquer outro.
const { userOpHash } = await gas.submit({ network: 'BSC', userOp: signedUserOp });
const receipt = await gas.waitForReceipt({ network: 'BSC', userOpHash });Atalho de uma chamada:
import { sponsor } from '@vkx/gas';
const s = await sponsor({ apiKey: process.env.VKX_GAS_KEY, network: 'BSC', userOp });Por que duas etapas
No ERC-4337 a assinatura do usuário cobre o paymasterAndData — então ele precisa existir antes de o usuário assinar. prepare pré-checa o seu saldo, assina o patrocínio e reserva a cobrança. A cobrança em si sai do seu saldo quando a op cai on-chain, pelo gás real do recibo (não pelo estimado).
Saldo e depósito
Deposite a moeda nativa na tesouraria da VKX e informe o hash:
await gas.claimDeposit({ network: 'BSC', txHash: '0x...' }); // idempotente
const b = await gas.balance();
// { depositedUsd, cashbackUsd, availableUsd }- depositedUsd — o que você depositou; sacável.
- cashbackUsd — crédito de cashback; não sacável, mas usado primeiro. É o seu saldo trabalhando de volta pra você.
Redes
BSC · POLYGON · BASE · ARBITRUM · ETHEREUM (aliases: BNB, MATIC/POL, MAINNET/ETH).
Preço
Gás real + markup por rede; parte do markup volta como cashback. Consulte as faixas atuais em https://vkxtech.com.br/gas.
API
| Método | O que faz |
|--------|-----------|
| prepare({ network, userOp }) | Pré-checa saldo, assina o patrocínio, reserva a cobrança. |
| submit({ network, userOp }) | Submete a op assinada no bundler da VKX (opcional). |
| waitForReceipt({ network, userOpHash }) | Aguarda o recibo on-chain. |
| claimDeposit({ network, txHash }) | Credita um depósito (idempotente). |
| balance() | Saldo depositado + cashback. |
| history({ limit }) | Últimas cobranças. |
Cliente fino, sem dependências (usa fetch global). Node ≥ 18. A sua chave de API vai no header; nenhuma chave privada sai do seu processo.
