Skip to main content
POST
/
auth
/
web3
/
verify-login
Verify Login
curl --request POST \
  --url https://api.copin.io/auth/web3/verify-login \
  --header 'Content-Type: application/json' \
  --data '
{
  "address": "<string>",
  "sign": "<string>",
  "time": "<string>",
  "referralCode": "<string>",
  "brokerId": "<string>"
}
'
{
  "id": "<string>",
  "username": "<string>",
  "role": "<string>",
  "isBlocked": true,
  "isActivated": true,
  "blockNote": "<string>",
  "referralCode": "<string>",
  "isSkippedReferral": true,
  "copyTradeQuota": 123,
  "plan": 123,
  "createdAt": "<string>",
  "access_token": "<string>",
  "isAddedReferral": true
}

Request Body

address
string
required
The Ethereum wallet address of the user attempting to login
sign
string
required
The signature created by signing the verification code with the user’s private key. Message: I want to login on Copin.io at ${time}. Login code: ${verifyCode}. Ex: const sign = await signer.signMessage(message)
time
string
required
Date-time of the verification request
referralCode
string
Optional referral code to apply to the user’s account
brokerId
string
Optional brokerId to detect user belong to broker

Request Example

curl --request POST \
--url "https://api.copin.io/auth/web3/verify-login" \
--header 'Content-Type: application/json' \
--data '{
 "address": "0x1535484c1eec1d203fe1a53ea11a621a884ae067",
 "sign": "0x5d99b6f7f6d1f73d1a26497f2b1c89b24c1adf257d861450123ae210f604e62c0fffffff886efdb0253cd39f9ecb4c49c9f5a4b95903cf564db34c79363e11ccf1b",
 "time": "2025-04-14T09:55:27.767Z"
}'

Response

id
string
Unique identifier for the user
username
string
User’s wallet address used as username
role
string
User’s role in the system (e.g., “guest”, “user”, “admin”)
isBlocked
boolean
Indicates if the user account is blocked
isActivated
boolean
Indicates if the user account is activated
blockNote
string
Note about block reason if the account is blocked
referralCode
string
User’s referral code that can be shared with others
isSkippedReferral
boolean
Indicates if the user skipped entering a referral code
copyTradeQuota
number
Number of copy trades the user can create
plan
number
User’s subscription plan level
createdAt
string
Timestamp when the user account was created
access_token
string
JWT token to be used for authenticated API calls
isAddedReferral
boolean
Indicates if the user has added a referral code
{
    "id": "654849d04857e1f744646cdd",
    "username": "0x1535484c1eec1d203fe1a53ea11a621a884ae067",
    "role": "guest",
    "isBlocked": false,
    "isActivated": true,
    "blockNote": "",
    "referralCode": "IEZ8LC",
    "isSkippedReferral": true,
    "copyTradeQuota": 3,
    "plan": 0,
    "createdAt": "2023-11-06T02:05:04.079Z",
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjB4MTk2YWUxNkE5Mzg3YTNEYzVEZTgxMTQ2N0EyRTM3RDdGZUJlRDMwNCIsInRpbWUiOjE3NDQ2MjQwNjQyMTgsImFjY2VzcyI6IllrN1NjY0FrQ0MxNzQ0NjI0MDY0MjE4IiwiaWF0IjoxNzQ0NjI0MDY0LCJleHAiOjE3NDUyMjg4NjR9.09g22yhvApz64IPw3mGY0qsLLZqzeGUrKhcC27saLtr",
    "isAddedReferral": false
}