Jincor ICO dashboard backend
API Endpoint
http://ico-dashboard:3000/Almost all operations require 2-factor Authentication. To fulfill this requirement most of them are split to 2 endpoints: first (e.g. /user/login/initiate) initiates login and generates JWT token. Next this token must be verified using endpoint /user/login/verify.
Resource Group ¶
Register user ¶
User’s email must be verified after registration. Next step after calling this endpoint is POST /user/activate
using verification.id
from response.
Headers
Content-Type: application/json
Body
{
"email": "ortgma@gmail.com",
"name": "ICO investor",
"password": "test12A6!@#$%^&*()_-=+|/",
"referral": "dGVzdEB0ZXN0LmNvbQ",
"agreeTos": true,
"source": {
"utm": "utm",
"gtm": "gtm"
}
}
Headers
Content-Type: application/json
Body
{
"id": "fb10d98f-2a5e-430d-bf2a-c76b42259b74",
"email": "ortgma@gmail.com",
"name": "ICO investor",
"agreeTos": true,
"verification": {
"id": "3ed09e0a-72e1-417b-a05c-f0f08a5e1ffa",
"method": "email"
},
"isVerified": false,
"defaultVerificationMethod": "email",
"referralCode": "b3J0Z21hQGdtYWlsLmNvbQ",
"referral": "test@test.com",
"source": {
"utm": "utm",
"gtm": "gtm"
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"isJoi": true,
"name": "ValidationError",
"details": [
{
"message": "Not valid referral code",
"path": "referral",
"type": "string.email",
"context": {
"value": "�m�",
"key": " "
}
}
],
"_object": {
"email": "ortgma111@gmail.com",
"name": "ICO investor",
"password": "PasswordA1",
"agreeTos": true,
"referral": "�m�"
}
},
"value": {
"email": "ortgma111@gmail.com",
"name": "ICO investor",
"password": "PasswordA1",
"agreeTos": true,
"referral": "�m�"
}
}
Register new userPOST/user
-
email
test@test.com
(string, required, email) -
password
passwordA6
(string, required, min: 6, regex: ^(?=.[a-z])(?=.[A-Z])(?=.*\d)[a-zA-Z\d]{6,}$) -
name
ICO investor
(string, required, min: 3) -
agreeTos
true
(boolean, equals: true) -
referral
referral@test.com
(optional, string, base64 encoded email)
Activate a user ¶
This endpoint response with JWT token so user can be immediately redirected to dashboard.
JWT token received by /activate
DOES NOT require verification.
This endpoint’s response also contains VERY important information: mnemonic phrase and private key of
user’s ethereum address. This information should be saved by user. If user loses this he will also LOSE
access to his wallet of ICO dashboard.
Headers
Content-Type: application/json
Body
{
"email": "test@test.com",
"verificationId": "5bb38971-1f22-4f99-a904-62fb44430ab4",
"code": "327845"
}
Headers
Content-Type: application/json
Body
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImY5NzM5MmVjLTBlYzItNGI3Mi04NmFiLTExMmYxM2ViOWYxNSIsImxvZ2luIjoib3J0Z21hQGdtYWlsLmNvbSIsImRldmljZUlkIjoiZGV2aWNlIiwianRpIjoiZjk3MzkyZWMtMGVjMi00YjcyLTg2YWItMTEyZjEzZWI5ZjE1ZGV2aWNlMTUwNzgxNjcyOTk2MCIsImlhdCI6MTUwNzgxNjcyOTk2MCwic3ViIjoiYWU3YzViNzYtNTgyMS00ZGUyLWE2OGYtZGQ0YzAwN2VkODM0IiwiYXVkIjoiamluY29yLmNvbSIsImV4cCI6MTUwNzgxNzMzNDc2MH0.Va8aBa_kDY2sqz2iZRnRWcOCF6cAGU5T69Y3-Ijg9KI",
"wallets": [
{
"ticker": "ETH",
"address": "0xdb369b56BA7b07cF287f611Fbf0DAA4A8a4C2751",
"balance": "0",
"mnemonic": "skull rain doctor wine stand pigeon roof half laundry tank hero behave",
"privateKey": "0xda2b3f0590d9f0a8e310203e1c7136693d0954420a82ab2cbcfa88eca07b4b31"
}
]
}
Activate a userPOST/user/activate
-
email
test@test.com
(string, required, email) -
verificationId
bb38971-1f22-4f99-a904-62fb44430ab4
(string, required) -
code
123456
(string, required)
Initiate login ¶
The accessToken got from this endpoint response MUST BE ALWAYS verified via /user/login/verify
.
Authentication attempts with not verified token will result in 401 response.
Headers
Content-Type: application/json
Body
{
"email": "test@test.com",
"password": "test12A6!@#$%^&*()_-=+|/"
}
Headers
Content-Type: application/json
Body
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjNhYTQzMzA0LTNhMTEtNDNkNy05NjNhLTRmNDA0OTY2MDVmMyIsImxvZ2luIjoidGVzdEB0ZXN0LmNvbSIsImRldmljZUlkIjoiZGV2aWNlIiwianRpIjoiM2FhNDMzMDQtM2ExMS00M2Q3LTk2M2EtNGY0MDQ5NjYwNWYzZGV2aWNlMTUwNzcxOTg1MzcwNiIsImlhdCI6MTUwNzcxOTg1MzcwNiwic3ViIjoiNWJiMzg5NzEtMWYyMi00Zjk5LWE5MDQtNjJmYjQ0NDMwYWI0IiwiYXVkIjoiamluY29yLmNvbSIsImV4cCI6MTUwNzcyMDQ1ODUwNn0.vaZtMpPlPZDSLCVpMMC2dpCvbSram9mXNBPAaxSupKc",
"isVerified": false,
"verification": {
"verificationId": "7fa96769-7bcc-4705-b544-02a83707cfc8",
"consumer": "test@test.com",
"expiredOn": 1507720153,
"status": 200,
"method": "email"
}
}
Initiate loginPOST/user/login/initiate
-
email
test@test.com
(string, required, email) -
password
passwordA6
(string, required)
Verify login ¶
-
accessToken
token
(required, string) -
verification
- id (string, required)
- code (string, required)
- method (string, required)
Headers
Content-Type: application/json
Body
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjNhYTQzMzA0LTNhMTEtNDNkNy05NjNhLTRmNDA0OTY2MDVmMyIsImxvZ2luIjoidGVzdEB0ZXN0LmNvbSIsImRldmljZUlkIjoiZGV2aWNlIiwianRpIjoiM2FhNDMzMDQtM2ExMS00M2Q3LTk2M2EtNGY0MDQ5NjYwNWYzZGV2aWNlMTUwNzcxOTg1MzcwNiIsImlhdCI6MTUwNzcxOTg1MzcwNiwic3ViIjoiNWJiMzg5NzEtMWYyMi00Zjk5LWE5MDQtNjJmYjQ0NDMwYWI0IiwiYXVkIjoiamluY29yLmNvbSIsImV4cCI6MTUwNzcyMDQ1ODUwNn0.vaZtMpPlPZDSLCVpMMC2dpCvbSram9mXNBPAaxSupKc",
"verification": {
"id": "7fa96769-7bcc-4705-b544-02a83707cfc8",
"code": "544188",
"method": "email"
}
}
Headers
Content-Type: application/json
Body
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjNhYTQzMzA0LTNhMTEtNDNkNy05NjNhLTRmNDA0OTY2MDVmMyIsImxvZ2luIjoidGVzdEB0ZXN0LmNvbSIsImRldmljZUlkIjoiZGV2aWNlIiwianRpIjoiM2FhNDMzMDQtM2ExMS00M2Q3LTk2M2EtNGY0MDQ5NjYwNWYzZGV2aWNlMTUwNzcxOTg1MzcwNiIsImlhdCI6MTUwNzcxOTg1MzcwNiwic3ViIjoiNWJiMzg5NzEtMWYyMi00Zjk5LWE5MDQtNjJmYjQ0NDMwYWI0IiwiYXVkIjoiamluY29yLmNvbSIsImV4cCI6MTUwNzcyMDQ1ODUwNn0.vaZtMpPlPZDSLCVpMMC2dpCvbSram9mXNBPAaxSupKc",
"isVerified": true,
"verification": {
"verificationId": "7fa96769-7bcc-4705-b544-02a83707cfc8",
"consumer": "test@test.com",
"expiredOn": 1507720153,
"status": 200,
"method": "email"
}
}
Verify loginPOST/user/login/verify
Initiate password change ¶
Headers
Content-Type: application/json
Body
{
"oldPassword": "test12A6!@#$%^&*()_-=+|/",
"newPassword": "passwordA1"
}
Headers
Content-Type: application/json
Body
{
"verification": {
"verificationId": "8f9ba03c-e903-459c-adb9-7594865a03a4",
"consumer": "ortgma@gmail.com",
"expiredOn": 1508268673,
"status": 200,
"method": "email"
}
}
Initiate password changePOST/user/me/changePassword/initiate
-
oldPassword
passwordA1
(string, required) -
newPassword
passwordA6
(string, required, regex: /^(?=.[a-z])(?=.[A-Z])(?=.\d)[a-zA-Z0\d!"#$%&’()+,-./:;<=>?@[]^_`{|}~]{8,}$/)
Verify password change ¶
-
oldPassword (required, string)
-
newPassword (required, string, regex: /^(?=.[a-z])(?=.[A-Z])(?=.\d)[a-zA-Z0\d!"#$%&’()+,-./:;<=>?@[]^_`{|}~]{8,}$/)
-
verification
- verificationId (string, required)
- code (string, required)
Headers
Content-Type: application/json
Authorization: Bearer token
Accept: application/json
Body
{
"oldPassword": "test12A6!@#$%^&*()_-=+|/",
"newPassword": "passwordA1",
"verification": {
"verificationId": "d65aa8f7-3b8a-4764-a003-1ecd06dda7fd",
"method": "email",
"code": "186198"
}
}
Headers
Content-Type: application/json
Body
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJiNWRjOTBjLTM1NTktNDZhNS04MGNhLTA3Mjg0OTczMjdlYiIsImxvZ2luIjoib3J0Z21hQGdtYWlsLmNvbSIsImRldmljZUlkIjoiZGV2aWNlIiwianRpIjoiYmI1ZGM5MGMtMzU1OS00NmE1LTgwY2EtMDcyODQ5NzMyN2ViZGV2aWNlMTUwODI2NTEwMjQ1NSIsImlhdCI6MTUwODI2NTEwMjQ1NSwic3ViIjoiOGY5YmEwM2MtZTkwMy00NTljLWFkYjktNzU5NDg2NWEwM2E0IiwiYXVkIjoiamluY29yLmNvbSIsImV4cCI6MTUwODI2NTcwNzI1NX0.9HDUMmamSIZX7T0qTKId6oN4XYU7ni7Wx8lQSiIz1S0"
}
Verify password changePOST/user/me/changePassword/verify
Initiate password reset ¶
Headers
Content-Type: application/json
Body
{
"email": "test@test.com"
}
Headers
Content-Type: application/json
Body
{
"verification": {
"verificationId": "8f9ba03c-e903-459c-adb9-7594865a03a4",
"consumer": "test@test.com",
"expiredOn": 1508268673,
"status": 200,
"method": "email"
}
}
Initiate password changePOST/user/resetPassword/initiate
- email
test@test.com
(string, email, required)
Verify password reset ¶
-
email (required, email, string)
-
newPassword (required, string, regex: /^(?=.[a-z])(?=.[A-Z])(?=.\d)[a-zA-Z0\d!"#$%&’()+,-./:;<=>?@[]^_`{|}~]{8,}$/)
-
verification
- verificationId (string, required)
- code (string, required)
- method (string, required, in [“email”, “google_auth”])
Headers
Content-Type: application/json
Accept: application/json
Body
{
"email": "test@test.com",
"password": "PasswordA1",
"verification": {
"verificationId": "b41498d8-a9db-4bb5-b338-0e8f47582066",
"code": "813365",
"method": "email"
}
}
Headers
Content-Type: application/json
Body
{
"status": 200,
"data": {
"verificationId": "631dbfce-c5cb-4892-baa8-25e618e224a1",
"consumer": "test@test.com",
"attempts": 1,
"expiredOn": 1511981452
}
}
Verify password changePOST/user/resetPassword/verify
Initiate enable 2FA ¶
- Request
-
Headers
Authorization: Bearer token Accept: application/json
-
Headers
Content-Type: application/json
Body
{
"verification": {
"verificationId": "61fa7fab-6abd-469c-9196-85680bab577a",
"consumer": "ortgma@gmail.com",
"expiredOn": 1508856803,
"totpUri": "otpauth://totp/Jincor:ortgma@gmail.com?secret=PWQGHWHUIXN6RDINTO4XUSFURXMKWWJO&issuer=Jincor&algorithm=SHA1&digits=6&period=30",
"status": 200,
"method": "google_auth",
"qrPngDataUri": "data:image/png;base64,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"
}
}
Initiate enable 2faGET/user/enable2fa/initiate
Verify enable 2fa ¶
- verification
- verificationId (string, required)
- code (string, required)
- method (string, required, in [“email”, “google_auth”])
Headers
Content-Type: application/json
Authorization: Bearer token
Accept: application/json
Body
{
"verification": {
"verificationId": "b41498d8-a9db-4bb5-b338-0e8f47582066",
"code": "813365",
"method": "google_auth"
}
}
Headers
Content-Type: application/json
Body
{
"enabled": false
}
Verify enable 2faPOST/user/enable2fa/verify
Initiate disable 2FA ¶
- Request
-
Headers
Authorization: Bearer token Accept: application/json
-
Headers
Content-Type: application/json
Body
{
"verification": {
"verificationId": "0e47a5fd-d7f7-43af-b080-3918e49bf211",
"consumer": "ortgma@gmail.com",
"expiredOn": 1508850911,
"status": 200,
"method": "google_auth"
}
}
Initiate disable 2faGET/user/disable2fa/initiate
Verify disable 2fa ¶
- verification
- verificationId (string, required)
- code (string, required)
- method (string, required, in [“email”, “google_auth”])
Headers
Content-Type: application/json
Authorization: Bearer token
Accept: application/json
Body
{
"verification": {
"verificationId": "b41498d8-a9db-4bb5-b338-0e8f47582066",
"code": "813365",
"method": "google_auth"
}
}
Headers
Content-Type: application/json
Body
{
"enabled": false
}
Verify disable 2faPOST/user/disable2fa/verify
Get user info ¶
Headers
Authorization: Bearer token
Accept: application/json
Headers
Content-Type: application/json
Body
{
"ethAddress": "0xdb369b56BA7b07cF287f611Fbf0DAA4A8a4C2751",
"email": "existing@test.com",
"name": "ICO investor",
"kycStatus": "Not verified",
"defaultVerificationMethod": "email"
}
Get user infoGET/user/me
Invite users ¶
Headers
Authorization: Bearer token
Accept: application/json
Body
{
"emails": [
"ortgma@gmail.com",
"a_pikulin@mail.ru"
]
}
Headers
Content-Type: application/json
Body
{
"emails": [
{
"email": "ortgma@gmail.com",
"invited": true
},
{
"email": "a_pikulin@mail.ru",
"invited": true
}
]
}
Invite users by emailPOST/user/invite
Get dashboard info ¶
Headers
Authorization: Bearer token
Accept: application/json
Headers
Content-Type: application/json
Body
{
"ethBalance": "1.0001",
"jcrTokensSold": "5000",
"jcrTokenBalance": "500.00012345678912345",
"jcrTokenPrice": {
"ETH": "0.005",
"USD": "1"
},
"raised": {
"ETH": "2000",
"USD": "1000000",
"BTC": "100"
},
"daysLeft": 10
}
Get dashboard infoGET/dashboard
Get public dashboard info ¶
Headers
Accept: application/json
Headers
Content-Type: application/json
Body
{
"jcrTokensSold": "0",
"ethCollected": "0",
"contributionsCount": 0,
"daysLeft": 64
}
Get public dashboard infoGET/dashboard/public
Get expected token purchase fee ¶
Headers
Accept: application/json
Headers
Content-Type: application/json
Body
{
"gasPrice": "47",
"gas": "130000",
"expectedTxFee": "0.00611"
}
Get expected token purchase feeGET/dashboard/investTxFee
Get transaction history ¶
Headers
Authorization: Bearer token
Accept: application/json
Headers
Content-Type: application/json
Body
[
{
"id": "5a003866ee3a9d0ad93aeba3",
"transactionHash": "0xe423dd7d40b039e4e30ad7b5520f5905c6ec8c11122c94e3858c70e7983b5d7e",
"timestamp": 1509963894,
"blockNumber": 2016136,
"from": "0xBd0cb067A75C23EFB290B4e223059Af8E4AF4fd8",
"to": "0x446cd17EE68bD5A567d43b696543615a94b01760",
"ethAmount": "0",
"jcrAmount": "1",
"status": "confirmed",
"type": "jcr_transfer",
"direction": "out"
},
{
"id": "5a004158b8442c0e1400fc4f",
"transactionHash": "0xcdf4a9dc086bcb3308475ced42b772879fd052822693aee509f81493412d460f",
"timestamp": 1509966175,
"blockNumber": 2016339,
"from": "0xBd0cb067A75C23EFB290B4e223059Af8E4AF4fd8",
"to": "0x446cd17EE68bD5A567d43b696543615a94b01760",
"ethAmount": "0",
"jcrAmount": "1",
"status": "confirmed",
"type": "jcr_transfer",
"direction": "out"
},
{
"id": "5a004dee3663160140d19291",
"transactionHash": "0xe5d5ed39bf9eb64d3e56bf4a9d89b7f2bb026fc02c0d149027757936a1e7b6c7",
"timestamp": 1509969394,
"blockNumber": 2016578,
"from": "0xBd0cb067A75C23EFB290B4e223059Af8E4AF4fd8",
"to": "0x446cd17EE68bD5A567d43b696543615a94b01760",
"ethAmount": "2",
"status": "confirmed",
"type": "eth_transfer",
"direction": "out"
},
{
"id": "5a004e003663160140d19292",
"transactionHash": "0x057c0846b7b7fa54c10544c595ec2e476c830220f0ea1fbb52215a3a44deade1",
"timestamp": 1509969394,
"blockNumber": 2016578,
"from": "0xBd0cb067A75C23EFB290B4e223059Af8E4AF4fd8",
"to": "0x446cd17EE68bD5A567d43b696543615a94b01760",
"ethAmount": "2",
"status": "confirmed",
"type": "eth_transfer",
"direction": "out"
},
{
"id": "5a00669ab21e84067aac8bf6",
"transactionHash": "0xb87ef88fe75724ed067413de7c48f4c745cfafa709f42884308663cb53a8e2a0",
"timestamp": 1509975754,
"from": "0x54c0B824d575c60F3B80ba1ea3A0cCb5EE3F56eA",
"to": "0xBd0cb067A75C23EFB290B4e223059Af8E4AF4fd8",
"ethAmount": "5",
"status": "pending",
"type": "eth_transfer",
"direction": "in"
}
]
Get transaction historyGET/dashboard/transactions
Get referral info ¶
Headers
Authorization: Bearer token
Accept: application/json
Headers
Content-Type: application/json
Body
{
"data": "dGVzdEB0ZXN0LmNvbQ",
"referralCount": 5,
"users": [
{
"date": 1508241475,
"name": "Investor 1",
"walletAddress": "0x54c0B824d575c60F3B80ba1ea3A0cCb5EE3F56eA",
"tokens": "105"
},
{
"date": 1508241475,
"name": "Investor 2",
"walletAddress": "0x54c0B824d575c60F3B80ba1ea3A0cCb5EE3F56eB",
"tokens": "1.01"
}
]
}
Get referral infoGET/dashboard/referral
Initiate investment ¶
-
ethAmount
1
(required, number, min(1)) -
mnemonic
mnemonic
(required, string)
Headers
Authorization: Bearer token
Accept: application/json
Body
{
"ethAmount": 1,
"mnemonic": "mnemonic"
}
Headers
Content-Type: application/json
Body
{
"verification": {
"verificationId": "a4d642d6-8c96-4435-94b8-9a2bbd501552",
"consumer": "test@gmail.com",
"expiredOn": 1509387586,
"status": 200,
"method": "email"
}
}
Initiate investmentPOST/dashboard/invest/initiate
Verify investment ¶
-
ethAmount
1
(required, number, min(1)) -
mnemonic
mnemonic
(required, string) -
verification
- verificationId (string, required)
- code (string, required)
- method (string, required, in [“email”, “google_auth”])
Headers
Content-Type: application/json
Authorization: Bearer token
Accept: application/json
Body
{
"ethAmount": 1,
"mnemonic": "mnemonic"
"verification": {
"verificationId": "b41498d8-a9db-4bb5-b338-0e8f47582066",
"code": "813365",
"method": "google_auth"
}
}
Headers
Content-Type: application/json
Body
{
"transactionHash": "0xf33afe0b5b56dfb6584d308d7b5e4c0412041045f3f728708eb90ac6f48e0956",
"status": "pending",
"type": "token_purchase"
}
Verify investmentPOST/dashboard/invest/verify
Init KYC process ¶
Headers
Authorization: Bearer token
Accept: application/json
Headers
Content-Type: application/json
Body
{
"timestamp": "2017-11-09T06:47:31.467Z",
"authorizationToken": "c87447f8-fa43-4f98-a933-3c88be4e86ea",
"clientRedirectUrl": "https://lon.netverify.com/widget/jumio-verify/2.0/form?authorizationToken=c87447f8-fa43-4f98-a933-3c88be4e86ea",
"jumioIdScanReference": "7b58a08e-19cf-4d28-a828-4bb577c6f69a"
}
Init KYC processGET/kyc/init
Generated by aglio on 26 Dec 2017