Instale e crie um depósito
- 01Instale o pacote: bun add @usdctofiat/offramp (npm e pnpm também funcionam).
- 02Passe um viem WalletClient: a carteira do usuário, uma carteira de servidor ou uma carteira de bot.
- 03Chame offramp(walletClient, { amount, platform, currency, identifier }).
- 04Leia o depositId e o txHash retornados, ou crie a estrutura de um projeto com npx create-offramp-app@latest.
A superfície do SDK
| Export | O que faz |
|---|---|
| offramp(walletClient, params) | Fluxo de venda de USDC em uma chamada que retorna { depositId, txHash, resumed, otcLink? } |
| deposits(address) | Lista os depósitos de um endereço sem indexar o estado do protocolo |
| close(walletClient, depositId) | Saca o USDC não preenchido de um depósito existente |
| enableOtc / disableOtc / getOtcLink | Gerencia a restrição privada de comprador único em um depósito |
| useOfframp() / usePeerExtensionRegistration() | Hooks React de @usdctofiat/offramp/react |
| PLATFORMS, CURRENCIES | Mapas const tipados com identificadores, validação e listas de moedas |
Retomável por design
Criar um depósito envolve várias etapas onchain. Se uma chamada anterior deixou um depósito no meio do fluxo, chamar offramp() novamente retoma de onde parou, em vez de criar um duplicado. O campo resumed do resultado é true quando um depósito não delegado já existente foi adotado em vez de criado.
Isso torna o SDK seguro para retentativas a partir de um servidor ou bot: um ponto de entrada idempotency-friendly que reconcilia com o estado onchain em vez de presumir um ponto de partida limpo.
Tratamento de erros
| Aspecto | Como o SDK sinaliza |
|---|---|
| Erros tipados | OfframpError carrega um code de OFFRAMP_ERROR_CODES |
| Configuração de PayPal ou Wise | EXTENSION_REGISTRATION_REQUIRED sinaliza apenas configuração técnica; aplicar a política do provedor separadamente |
| Validação | PLATFORMS e CURRENCIES expõem validação de identificador e de moeda |
| Sem custódia de chaves | O SDK assina com seu WalletClient e nunca armazena chaves privadas |