Skip to main content
POST
/
auth
/
verify
Verify OTP and complete authentication
curl --request POST \
  --url https://grid.squads.xyz/api/grid/v1/auth/verify \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "email": "<string>",
  "kms_provider": "privy",
  "kms_provider_config": {
    "encryption_public_key": "<string>",
    "otp_id": "<string>"
  },
  "otp_code": "<string>"
}'
{
  "address": "<string>",
  "authentication": [
    {
      "provider": "privy",
      "session": {
        "Privy": {
          "privy_access_token": "<string>",
          "refresh_token": "<string>",
          "session": {
            "authorization_key": "<string>",
            "encrypted_authorization_key": null,
            "expires_at": 1,
            "wallets": [
              {
                "additional_signers": [
                  {
                    "override_policy_ids": [
                      "<any>"
                    ],
                    "signer_id": "<string>"
                  }
                ],
                "address": "<string>",
                "chain_type": "solana",
                "created_at": 1,
                "exported_at": 1,
                "id": "<string>",
                "imported_at": 1,
                "owner_id": "<string>",
                "policy_ids": [
                  "<string>"
                ],
                "public_key": "<string>"
              }
            ]
          },
          "token": "<string>",
          "user_id": "<string>"
        }
      }
    }
  ],
  "grid_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "policies": {
    "admin_address": "<string>",
    "signers": [
      {
        "address": "<string>",
        "permissions": [
          "CAN_INITIATE"
        ],
        "provider": "privy",
        "role": "primary"
      }
    ],
    "threshold": 1,
    "time_lock": 1
  }
}

Authorizations

Authorization
string
header
required

Your Grid API key from the Grid Dashboard

Body

application/json
email
string
required
kms_provider
enum<string>
required
Available options:
privy,
dynamic,
passkey,
turnkey,
external
kms_provider_config
object
required
  • Option 1
  • Option 2
otp_code
string
required

Response

Authentication successful

address
string
required
authentication
object[]
required
grid_user_id
string<uuid>
required
policies
object
required