Pular para o conteúdo principal

Autenticação

Duas camadas de autenticação cobrem os dois tipos de quem chama:

  1. Autenticação do parceiro: o seu backend, com uma chave de API.
  2. 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.
API v1 · Legado

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 }