Liquidação não custodial
Os fundos vão direto para a carteira do comerciante. A BoltUtil monitora a blockchain e envia notificações.
Guia de integração
Um checkout de produção do USDT / USDC precisa de mais do que um endereço de carteira. Crie um pedido no Node.js, retorne os dados de checkout ao navegador e atenda somente após um webhook de pagamento na rede verificado.
Passos
Como aceitar pagamentos USDT / USDC em um site com Node.js
Crie uma ordem de pagamento com valor, rede, ID do pedido e URL de retorno.
Mostre ao comprador o endereço, QR code, página de checkout e valor exato em USDT / USDC.
A BoltUtil monitora transferências TRC20, ERC20, BEP20, Polygon ou Solana e compara rede, endereço e valor.
Após a confirmação on-chain, a BoltUtil envia um webhook assinado com hash da transação e status.
BoltUtil verifica pagamentos e envia callbacks assinados. Seu servidor valida assinatura e estado, elimina duplicados e depois entrega, ativa ou credita.
Notas de integração
Os fundos vão direto para a carteira do comerciante. A BoltUtil monitora a blockchain e envia notificações.
TRON, Ethereum, BNB Smart Chain, Polygon, Solana e Base. TRON aceita apenas USDT / USDC; as outras rotas USDT / USDC exigem ativos habilitados e uma carteira válida.
Quando o pagamento é detectado e confirmado, seu backend recebe uma chamada assinada para cumprir o pedido.
import crypto from 'node:crypto'
// Node.js 20+ server module. Call only after authenticating the buyer.
// order must come from your database, with ownership and price checked.
// Never pass req.body directly; persist externalOrderId before calling.
export async function createStablecoinCheckout(order) {
const key = process.env.BOLTUTIL_API_KEY
const secret = process.env.BOLTUTIL_API_SECRET
if (!key || !secret) throw new Error('Missing server credentials')
const payload = JSON.stringify({
externalOrderId: order.externalOrderId,
amount: order.amount,
currency: 'USDC',
network: 'BASE',
notifyUrl: 'https://merchant.com/webhooks/boltutil',
returnUrl: 'https://merchant.com/orders/complete'
})
const timestamp = Date.now().toString()
const signature = crypto.createHmac('sha256', secret)
.update(`${timestamp}.${payload}`).digest('hex')
// A timeout does not prove creation failed. Query order/status using
// the SAME externalOrderId before deciding whether to retry.
const response = await fetch('https://api.boltutil.com/api/v1/order/create', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Bolt-Key': key,
'X-Bolt-Timestamp': timestamp,
'X-Bolt-Signature': signature
},
body: payload,
signal: AbortSignal.timeout(10000)
})
const result = await response.json()
if (!response.ok || result.code !== 200 || !result.data?.checkoutUrl) {
throw new Error('Create order failed; reconcile the saved order')
}
// Save result.data on the server. Return only checkout data to the buyer.
return result.data
}Exemplos de integração e diagnóstico. Nenhuma solicitação é enviada. Use seus pedidos, configuração de rede e documentação da API.
Ler documentação da APIOs fundos vão direto para a carteira do comerciante. A BoltUtil monitora a blockchain e envia notificações.
Aceite TRC20, ERC20, BEP20, Polygon e Solana com uma única API de pedidos e payload de webhook unificado.
Quando o pagamento é detectado e confirmado, seu backend recebe uma chamada assinada para cumprir o pedido.
Guia de integração
Não. A BoltUtil é uma camada não custodial de monitoramento e notificação. O comerciante usa sua própria carteira.
O sistema valida rede, endereço de destino, valor exato em USDT / USDC, status da ordem e janela de expiração.
TRON aceita apenas USDT. Ethereum, BNB Smart Chain, Polygon, Solana e Base usam as versões configuradas de USDT / USDC. A disponibilidade depende dos canais ativos e das carteiras do comerciante.
Crie ordens, monitore transferências e notifique seu backend sem pedir comprovantes manuais.