{"_id":"@aron-petrus/wallet-sdk","name":"@aron-petrus/wallet-sdk","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@aron-petrus/wallet-sdk","version":"0.1.0","description":"TypeScript SDK for Wallet vaults, addresses, balances, assets, transactions, and callbacks","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit"},"dependencies":{"sshpk":"^1.18.0"},"engines":{"node":">=18"},"_id":"@aron-petrus/wallet-sdk@0.1.0","gitHead":"3250f9ab56be7a9dd48db85c1545c455b0d36851","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-BhKY7brPtQsQ4AZ8q7k7LaGUZLmRv6Szn2m/U/2045Z3jqu/TRHvV/u+o2Bq1K98PslSQJXpOUdQ7Jk0UotAbg==","shasum":"4b511f96750facbe7a298a43330828f2590bc672","tarball":"https://registry.npmjs.org/@aron-petrus/wallet-sdk/-/wallet-sdk-0.1.0.tgz","fileCount":42,"unpackedSize":51967,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIG4kS8qP/a4PWYUY2uNpOOu7LCQHj8ws2kc6aCW41u1vAiEApYx32zL1CW/TuTJ3RBfKQhZF0+26aiHxnL7Lvh4hMAQ="}]},"_npmUser":{"name":"aron-petrus","email":"aron.castro@petrus-software.com"},"directories":{},"maintainers":[{"name":"aron-petrus","email":"aron.castro@petrus-software.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wallet-sdk_0.1.0_1784487198008_0.5164607231939637"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-19T18:53:17.888Z","0.1.0":"2026-07-19T18:53:18.137Z","modified":"2026-07-19T18:53:18.316Z"},"maintainers":[{"name":"aron-petrus","email":"aron.castro@petrus-software.com"}],"description":"TypeScript SDK for Wallet vaults, addresses, balances, assets, transactions, and callbacks","readme":"# Wallet SDK\n\nSDK TypeScript para integrar aplicações de backend à Wallet.\n\nO fluxo de autenticação é automático: ao realizar a primeira chamada protegida, o SDK autentica o `api_user`, armazena o token em memória e o renova quando necessário. A aplicação não precisa implementar login, challenge ou renovação de sessão.\n\n## Configuração do cliente\n\n```ts\nimport { WalletSdk } from \"@wallet/sdk\";\n\nconst wallet = new WalletSdk({\n  baseUrl: process.env.WALLET_API_URL!,\n  apiUserAuth: {\n    privateKeyPem: process.env.WALLET_API_PRIVATE_KEY!,\n    publicKey: process.env.WALLET_API_PUBLIC_KEY!,\n  },\n});\n```\n\nDepois da configuração, use os resources diretamente. A autenticação será feita na primeira chamada.\n\n```ts\nconst vault = await wallet.vaults.create({\n  name: \"customer-123\",\n  requestId: crypto.randomUUID(),\n});\n\nconst address = await wallet.vaultAddresses.create(vault.vaultId, {\n  networkGroup: \"evm\",\n  requestId: crypto.randomUUID(),\n});\n\nconst balances = await wallet.balances.list(vault.vaultId);\n\nconsole.log({ vault, address, balances });\n```\n\n## Resources utilizados na integração\n\n| Resource | Uso principal |\n|---|---|\n| `wallet.vaults` | Criar e listar vaults |\n| `wallet.vaultAddresses` | Criar e listar endereços |\n| `wallet.balances` | Consultar saldos e depósitos |\n| `wallet.assets` | Cadastrar, atualizar e listar assets |\n| `wallet.transactions` | Criar, listar e consultar transações |\n\n## Fluxo recomendado\n\n1. Configurar uma instância de `WalletSdk` por processo.\n2. Criar ou localizar o vault do cliente.\n3. Criar um endereço para o grupo de rede necessário.\n4. Consultar saldos e depósitos pelo `vaultId`.\n5. Criar transações usando valores em string.\n6. Acompanhar o resultado por webhook ou por `wallet.transactions.get()`.\n7. Usar o Callback Handler quando a operação exigir aprovação externa antes da assinatura.\n\n## Documentação de integração\n\n- [Integração essencial](docs/01-integracao.md)\n- [Callback Handler](docs/02-callback-handler.md)\n- [Referência rápida](docs/03-referencia-rapida.md)\n\n## Cuidados de produção\n\n- Mantenha a chave privada do `api_user` fora do código-fonte e dos logs.\n- Reutilize a instância do cliente para compartilhar o token e sua renovação.\n- Use `requestId` único nas criações para facilitar idempotência e rastreamento.\n- Trate valores financeiros como strings.\n- Considere uma transação concluída somente após o estado final recebido pela Wallet.\n- Valide a assinatura de todo Callback Handler ou webhook antes de processar o conteúdo.\n","readmeFilename":"README.md","_rev":"1-722198a7734de9f3a488d4ffc43447da"}