Autenticação
Duas camadas de autenticação cobrem os dois tipos de quem chama:
- Autenticação do parceiro: o seu backend, com uma chave de API.
- Autenticação do usuário: o portador, com a carteira dele (Sign-In with Ethereum), para as ações que precisam da assinatura do dono do cofre.
Esta página faz parte da referência da primeira versão da API da Web3Card, mantida aqui para consulta. A API v1 não recebe integrações novas: a API v2 a substitui, e a plataforma hoje funciona como descrito no resto deste manual.
Chaves de API do parceiro
As chaves são entregues por ambiente, na entrada do programa, e enviadas como token Bearer:
curl https://api.web3card.dev/v1/users \
-H "Authorization: Bearer w3c_live_xxxxxxxxxxxxxxxx"
As chaves podem ser trocadas a qualquer momento no painel do parceiro. A chave antiga continua valendo por 24 horas depois da troca.
Sign-In with Ethereum (SIWE)
As ações do dono do cofre (saques, incluir carteiras, mudar limites na rede) pedem uma sessão do usuário, provada por uma assinatura da carteira.
POST /auth/nonce
Gera a mensagem que o usuário precisa assinar.
// Request
{ "walletAddress": "0x71C2a4f3b7c48d19D4a2e9Eb0cE3606eB48a3a4F" }
// Response
{
"nonce": "kX9m2pQr",
"message": "web3card.dev wants you to sign in with your Ethereum account…"
}
POST /auth/verify
Confere a assinatura SIWE e abre uma sessão do usuário.
// Request
{
"walletAddress": "0x71C2a4f3b7c48d19D4a2e9Eb0cE3606eB48a3a4F",
"signature": "0x8b4d…c91e"
}
// Response
{ "sessionToken": "w3cs_a91k…", "expiresIn": 3600 }
Mande o token da sessão junto com a sua chave de API nos endereços assinados pelo usuário:
Authorization: Bearer w3c_live_xxxxxxxxxxxxxxxx
X-W3C-User-Session: w3cs_a91k…
Confirmação do e-mail
POST /users/{id}/email/otp
Envia um código de uso único para o e-mail do usuário.
POST /users/{id}/email/verify
// Request
{ "code": "482913" }
// Response
{ "verified": true }