- Get Started
- VAULT X API
- Testing
- Appendix
- Get API code and API secret on web admin console
- Setup callback URL and getnonce API URL
- Refer to mock server sample code
Register a new user.
POST
/v1/vaultx/users
An example of the request:
{
"name": "JOHN DOE",
"email": "johndoe@example.com",
"locale": "en"
}
The request includes the following parameters:
Field | Type | Description |
---|---|---|
name | string | User name |
string | User email | |
locale | string | User preference locale (en, zh-TW, zh-CN, ja, ko) |
An example of a successful response:
{
"email": "johndoe@example.com"
}
The response includes the following parameters:
Field | Type | Description |
---|---|---|
string | Registered user's email |
HTTP Status Code | Error Code | Error Message |
---|---|---|
400 | 103 | Account already exists |
Refer to Common Errors
#####Back to top
Pair device with user.
This API has a callback.
POST
/v1/vaultx/devices?email=USER_EMAIL
&company_id=COMPANY_ID
An example of the reques:
/v1/vaultx/devices?email=johndoe@example.com&company_id=1
The request includes the following parameters:
Field | Type | Description |
---|---|---|
string | Requester email | |
company_id | number | Requester company ID |
An example of a successful response:
{
"order_id": 40000000003,
"url": "http://192.168.0.56:8080/v1/cybavob/otp/token?product=vaultx&token=oyZSzs6NX5Tx78_VLieH2rwCbCNIM4XsOJ-SvMqpCK4="
}
The response includes the following parameters:
Field | Type | Description |
---|---|---|
order_id | int64 | Callback ID. Use this ID to identify specific callback. |
url | string | URL to bind device with user. Convert to QR code then scan with CYBAVO Auth APP. |
An example of a callback:
{
"behavior_result": 2,
"behavior_type": 4,
"company_id": 1,
"order_id": 40000000003
}
HTTP Status Code | Error Code | Error Message |
---|---|---|
400 | 177 | User already has paired device, please use re-pair api if you want to do re-pair action |
Refer to Common Errors
#####Back to top
Setup user PIN code.
This API has a callback.
The requester needs to set the PIN code on the CYBAVO Auth APP after issuing the API request.
POST
/v1/vaultx/user/pin?email=USER_EMAIL
&company_id=COMPANY_ID
An example of the request:
/v1/vaultx/users/pin?email=johndoe@example.com&company_id=1
The request includes the following parameters:
Field | Type | Description |
---|---|---|
string | Requester email | |
company_id | number | Requester company ID |
An example of a successful response:
{
"order_id": 50000000004
}
The response includes the following parameters:
Field | Type | Description |
---|---|---|
order_id | int64 | Callback ID. Use this ID to identify specific callback. |
An example of a callback:
{
"behavior_result": 2,
"behavior_type": 5,
"company_id": 1,
"order_id": 50000000004
}
HTTP Status Code | Error Code | Error Message |
---|---|---|
400 | 176 | User already has pin |
Refer to Common Errors
#####Back to top
Following steps below to complete device reparing process.
This process has a callback.
POST
/v1/vaultx/devices/repair?email=USER_EMAIL
&company_id=COMPANY_ID
An example of the request:
/v1/vaultx/devices/repair?email=johndoe@example.com&company_id=1
The request includes the following parameters:
Field | Type | Description |
---|---|---|
string | Requester email | |
company_id | number | Requester company ID |
An example of a successful response:
{
"token": "yMYoEfHenKLDAAMIdVLW5zGrn9E4ap0qE5VrGoXlQaE="
}
The response includes the following parameters:
Field | Type | Description |
---|---|---|
token | string | Submit this token in step 3 |
POST
/v1/vaultx/devices/repair?email=USER_EMAIL
&company_id=COMPANY_ID
An example of the request:
/v1/vaultx/devices/repair?email=johndoe@example.com&company_id=1
{
"token": "yMYoEfHenKLDAAMIdVLW5zGrn9E4ap0qE5VrGoXlQaE=",
"verify_num": 908520
}
The request includes the following parameters:
Field | Type | Description |
---|---|---|
string | Requester email | |
company_id | number | Requester company ID |
Field | Type | Description |
---|---|---|
token | string | The token received in step 1 |
verify_num | number | The 6-digit verification code received in requester's email |
An example of a successful response:
{
"order_id": 40000000005,
"url": "http://192.168.0.56:8080/v1/cybavob/otp/rebind?token=A3Rll4djJt5vphKN77wovhYs0XHSt1TKsV9996pwnlY="
}
The response includes the following parameters:
Field | Type | Description |
---|---|---|
order_id | int64 | Callback ID. Use this ID to identify specific callback. |
url | string | URL to bind device with user. Convert to QR code then scan with CYBAVO Auth APP. |
An example of a callback:
{
"behavior_result": 2,
"behavior_type": 4,
"company_id": 1,
"order_id": 40000000005
}
HTTP Status Code | Error Code | Error Message |
---|---|---|
400 | 173 | Pair device process not completed |
Refer to Common Errors
#####Back to top
Issue a login request. Requester needs to confirm request on the CYBAVO Auth APP.
This API has a callback.
POST
/v1/vaultx/loginverify?email=USER_EMAIL
&company_id=COMPANY_ID
An example of the request:
/v1/vaultx/loginverify?email=johndoe@example.com&company_id=1
{
"ip": "192.168.0.101",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36",
"expires_at": 1572451200
}
The request includes the following parameters:
Field | Type | Description |
---|---|---|
string | Requester email | |
company_id | number | Requester company ID |
Field | Type | Description |
---|---|---|
ip | string | Requester IP |
user_agent | string | User-Agent of the requester's browser |
expires_at | number | Expiration time (in unix time, UTC) of this 2FA request |
An example of a successful response:
{
"order_id": 10000000002,
"expires_at": 1572451200
}
The response includes the following parameters:
Field | Type | Description |
---|---|---|
order_id | int64 | Callback ID. Use this ID to identify specific callback. |
expires_at | int64 | The same value with request's expires_at field |
Refer to Common Errors
An example of a callback:
{
"behavior_type": 1,
"behavior_result": 2,
"company_id": 1,
"order_id": 10000000002
}
#####Back to top
Query specific user status.
GET
/v1/vaultx/users/me?email=USER_EMAIL
&company_id=COMPANY_ID
An example of the request:
/v1/vaultx/users/me?email=johndoe@example.com&company_id=1
The request includes the following parameters:
Field | Type | Description |
---|---|---|
string | Requester email | |
company_id | int64 | Requester company ID |
An example of a successful response:
{
"user_email": "johndoe@example.com",
"company_id": 1,
"is_pair_device": true,
"is_setup_pin": true,
"is_do_backup": true,
"wallets": [
{
"type": "quorum",
"address": "0x69363AFef99DC6f52daA2C4D0731934d36f7844d",
"public_key": "0x03055b24413ef30be430cf131114ab768f245803c98ef5bf3b3aaafde414f7670e"
}
]
}
The response includes the following parameters:
Field | Type | Description |
---|---|---|
user_email | string | Requester's email |
company_id | int64 | Requester's company ID |
is_pair_device | boolean | True if device paired, otherwise false |
is_setup_pin | boolean | True if PIN code setup, otherwise false |
is_do_backup | boolean | True if key has been backuped, otherwise false |
wallets | array | Created wallets |
Refer to Common Errors
#####Back to top
Following steps below to complete key backup process.
This process has a callback.
POST
/v1/vaultx/wallets/backup?email=USER_EMAIL
&company_id=COMPANY_ID
An example of the request:
/v1/vaultx/wallets/backup?email=johndoe@example.com&company_id=1
{
"question": "YOUR QUESTION",
"answer": "YOUR ANSWER"
}
The request includes the following parameters:
Field | Type | Description |
---|---|---|
string | Requester email | |
company_id | int64 | Requester company ID |
Field | Type | Description |
---|---|---|
question | string | The chanllenge question while restoring keys |
answer | string | The answer of the chanllenge question |
An example of a successful response:
{
"order_id": 60000000014,
"token": "yMYoEfHenKLDAAMIdVLW5zGrn9E4ap0qE5VrGoXlQaE="
}
The response includes the following parameters:
Field | Type | Description |
---|---|---|
order_id | int64 | Callback ID. Use this ID to identify specific callback. |
token | string | Submit this token in step 2 |
Once request is replied the callback server will receive a corresponding callback. If request is accepted, continue to step 3 to download the key backup file.
Specify the callback server on web admin console.
An example of a callback:
{
"behavior_result": 2,
"behavior_type": 6,
"company_id": 1,
"order_id": 60000000014
}
GET
/v1/vaultx/wallets/backup/{TOKEN}?email=USER_EMAIL
&company_id=COMPANY_ID
An example of the request:
/v1/vaultx/wallets/backup/yMYoEfHenKLDAAMIdVLW5zGrn9E4ap0qE5VrGoXlQaE=?email=johndoe@example.com&company_id=1
The request includes the following parameters:
Field | Type | Description |
---|---|---|
token | string | Token received in step 1 |
Field | Type | Description |
---|---|---|
string | Requester email | |
company_id | int64 | Requester company ID |
Save response body as backup file.
Refer to Common Errors
#####Back to top
Following steps below to complete key restoring process.
This process has a callback.
POST
/v1/vaultx/wallets/upload?email=USER_EMAIL
&company_id=COMPANY_ID
An example of the request:
/v1/vaultx/wallets/upload?email=johndoe@example.com&company_id=1
Content-Type:multipart/form-data; boundary=ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXC
--ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXC
Content-Disposition: form-data;name="backup"; filename="backup.dat"
Content-Type: application/octet-stream
.. binary data of the backup file ...
--ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXC
The request includes the following parameters:
Field | Type | Description |
---|---|---|
string | Requester email | |
company_id | int64 | Requester company ID |
Upload backup file using multipart/form-data format with name backup.
An example of a successful response:
{
"token": "yMYoEfHenKLDAAMIdVLW5zGrn9E4ap0qE5VrGoXlQaE=",
"question": "YOUR QUESTION"
}
The response includes the following parameters:
Field | Type | Description |
---|---|---|
token | string | Submit this token in step 2 |
question | string | The chanllenge question submitted with /wallets/backup API |
POST
/v1/vaultx/wallets/restore?email=USER_EMAIL
&company_id=COMPANY_ID
An example of the request:
/v1/vaultx/wallets/restore?email=johndoe@example.com&company_id=1
{
"token": "yMYoEfHenKLDAAMIdVLW5zGrn9E4ap0qE5VrGoXlQaE=",
"question": "YOUR QUESTION",
"answer": "YOUR ANSWER"
}
The request includes the following parameters:
Field | Type | Description |
---|---|---|
string | Requester email | |
company_id | int64 | Requester company ID |
Field | Type | Description |
---|---|---|
token | string | Token received in step 1 |
question | string | The challenge question received in step 1 |
answer | string | The answer of the chanllenge question |
An example of a successful response:
{
"token": "Jd9_oDYP97U7o7DH-5lB8Vqbp4PkqxDCkGz8Df0r79I="
}
The response includes the following parameters:
Field | Type | Description |
---|---|---|
token | string |
Accept restoring request to reset PIN code.
Refer to Common Errors
#####Back to top
Sign message.
This API has a callback.
After 2FA request confirmed on CYBAVO Auth APP, the corresponding callback will contain signed message.
POST
/v1/vaultx/wallets/signature
An example of the request:
/v1/vaultx/wallets/signature?email=johndoe@example.com&company_id=1
{
"message": "MESSAGE TO BE SIGNED"
}
The request includes the following parameters:
Field | Type | Description |
---|---|---|
string | Requester email | |
company_id | int64 | Requester company ID |
Field | Type | Description |
---|---|---|
message | string | Message to be signed |
An example of a successful response:
{
"order_id": 30000000001
}
The response includes the following parameters:
Field | Type | Description |
---|---|---|
order_id | int64 | Callback ID. Use this ID to identify specific callback. |
An example of a callback:
{
"behavior_result": 2,
"behavior_type": 3,
"company_id": 1,
"input": "{\"message\":\"MESSAGE TO BE SIGNED\"}",
"order_id": 30000000001,
"output": "0xebd938d9c34531b2b847d70125cac4aed7a1177da0d0df0866c65bfc2157fa5b429bc59df60bb977fe451dcc460d6a9709901c25f724def7b491de95fb41837e01"
}
Refer to Common Errors
#####Back to top
Sign raw transaction.
This API has a callback.
After 2FA request confirmed, server will call getnonce API to retrieve the nonce of the wallet address. Refer to Setup getnonce API section.
POST
/v1/vaultx/wallets/rawtx
An example of the request:
/v1/vaultx/wallets/rawtx?email=johndoe@example.com&company_id=1
{
"to": "0x9576e27257e0eceea565fce04ab1beedfc6f35e4",
"gas_limit": 90000,
"gas_price": 1000000000,
"value": 1000000000000000000,
"input": "0x5448495320495320412054455354494e4720535452494e47",
"private": false
}
The request includes the following parameters:
Field | Type | Description |
---|---|---|
string | Requester email | |
company_id | int64 | Requester company ID |
Field | Type | Description |
---|---|---|
to | string | Receiver address. If to is empty, it is a contract deployment transaction. Otherwise, it is a normal transaction. |
gas_limit | uint64 | Gas limitation |
gas_price | int64 | Gas price in GWEI. 109 GWEI = 1 ETH |
value | int64 | Amount to transfer in WEI. 1018 WEI = 1 ETH |
input | hex string | The input data of transaction |
private | boolean | If private is true, use HomesteadSigner otherwise use NewEIP155Signer to sign transaction. |
An example of a successful response:
{
"order_id": 20000000010
}
The response includes the following parameters:
Field | Type | Description |
---|---|---|
order_id | int64 | Callback ID. Use this ID to identify specific callback. |
An example of a callback:
{
"behavior_result": 2,
"behavior_type": 2,
"company_id": 1,
"input": "{\"to\":\"0x9576e27257e0eceea565fce04ab1beedfc6f35e4\",\"gas_limit\":90000,\"gas_price\":1000000000,\"value\":1000000000000000000,\"input\":\"0x5448495320495320412054455354494e4720535452494e47\",\"private\":false}",
"order_id": 20000000010,
"output": "f88401843b9aca0083015f90949576e27257e0eceea565fce04ab1beedfc6f35e4880de0b6b3a7640000985448495320495320412054455354494e4720535452494e4729a0e7cb1b61aa52529adbdb0c45750f3ac8863882fd270fa387b15fc558a0e097cba0723d0f518fb60a345829c09479e37ab156d4a7c027276848a08ece5e75681f5c"
}
Refer to Common Errors
#####Back to top
Decrypt the message which encrypted by requester's public key.
This API has a callback.
After 2FA request confirmed on CYBAVO Auth APP, the corresponding callback will contain decrypted message.
POST
/v1/vaultx/wallets/decrypt
An example of the request:
/v1/vaultx/wallets/decrypt?email=johndoe@example.com&company_id=1
{
"secret": "0x04c7a7db0953984c6b3127a65300a86732a1799f076137a2619d913b84bf3130ff5fb947ac5b01706d902cb4fee021148eb0299626fb7c69f5e763ba3657fcef51f2326178289ac4d63d424444abaac33ec3c66844e5cd19d6ce12dcb48abadb2cd0d6eba06d7a074ee4e8b2cdf6b2bea34a059c2fadedd23b6ba61e1a537e3fa47a0a7137fd8171b0ec894164bbb3418c53823475fcdca0fc41b2480cb28bb2a52bffaaddbd89143a5e5c63e46014e3a44f6c9176a6e1410aecd331ccaad062cb5e3cd9cf813e3a6fa1425b2d61fd904429c6a4b3bb5f5bca12364c46dc019f28766dc8058f116393cc57d556e80efa1bd784c05d8b6ddfe9a173d0161b5db7f50859cb908bca6e9abf05a8649dfd5997b70313f9fe48e882670ce4def568b8239910acf8ebae8089ee17d53c7222fa895d9ce98f7d43d4df84a3f4a3a41d9c55a85f395f8ee2bbf7c07b0aa5b664a38ef7c40a0ec5c3039833dafd3b75b3f83d6a58effc6b959a7e0af8a09a9b40d7ec54dbb2f86dfb2750a8df"
}
The request includes the following parameters:
Field | Type | Description |
---|---|---|
string | Requester email | |
company_id | int64 | Requester company ID |
Field | Type | Description |
---|---|---|
secret | hex string | The message encrypted by requester's public key |
The public key could be retrieved by /users/me API
An example of a successful response:
{
"order_id": 70000000001
}
The response includes the following parameters:
Field | Type | Description |
---|---|---|
order_id | int64 | Callback ID. Use this ID to identify specific callback. |
An example of a callback:
{
"behavior_result": 2,
"behavior_type": 7,
"company_id": 3,
"input": "{\"secret\":\"0x04c7a7db0953984c6b3127a65300a86732a1799f076137a2619d913b84bf3130ff5fb947ac5b01706d902cb4fee021148eb0299626fb7c69f5e763ba3657fcef51f2326178289ac4d63d424444abaac33ec3c66844e5cd19d6ce12dcb48abadb2cd0d6eba06d7a074ee4e8b2cdf6b2bea34a059c2fadedd23b6ba61e1a537e3fa47a0a7137fd8171b0ec894164bbb3418c53823475fcdca0fc41b2480cb28bb2a52bffaaddbd89143a5e5c63e46014e3a44f6c9176a6e1410aecd331ccaad062cb5e3cd9cf813e3a6fa1425b2d61fd904429c6a4b3bb5f5bca12364c46dc019f28766dc8058f116393cc57d556e80efa1bd784c05d8b6ddfe9a173d0161b5db7f50859cb908bca6e9abf05a8649dfd5997b70313f9fe48e882670ce4def568b8239910acf8ebae8089ee17d53c7222fa895d9ce98f7d43d4df84a3f4a3a41d9c55a85f395f8ee2bbf7c07b0aa5b664a38ef7c40a0ec5c3039833dafd3b75b3f83d6a58effc6b959a7e0af8a09a9b40d7ec54dbb2f86dfb2750a8df\"}",
"order_id": 70000000013,
"output": "0x7b22636f6e74656e74223a2248656c6c6f20576f726c64222c2265787069726174696f6e223a22323031392d31312d30365431303a34313a30372e3133393837392b30383a3030222c2268617368223a22307862643662663637636638633130643833653330346339623833386263313064353565363930613439646332333730333063333862366539373231333237643833222c226d6573736167655f68617368223a22516d596674383674376934315663713379354476734455533333485a6a475a6d714b5a796577503145386732596a222c22737461747573223a302c2274696d65223a22323031392d31302d30375431303a34313a30372e3133393837392b30383a3030227d"
}
Refer to Common Errors
#####Back to top
Query callbacks' status belong to requester's company.
POST
/v1/vaultx/order/status
An example of the request:
/v1/vaultx/order/status?email=johndoe@example.com&company_id=1
{
"order_ids": [
10000000004,
20000000004,
30000000001
]
}
The request includes the following parameters:
Field | Type | Description |
---|---|---|
string | Requester email | |
company_id | int64 | Requester company ID |
Field | Type | Description |
---|---|---|
order_ids | array | ID of callbacks |
An example of a successful response:
{
"order_status": [
{
"is_exist": true,
"order_id": 10000000004,
"behavior_type": 1,
"behavior_result": 2,
"addon": {}
},
{
"is_exist": true,
"order_id": 20000000004,
"behavior_type": 2,
"behavior_result": 2,
"addon": {
"input": "{\"from\":\"0x81b7e08f65bdf5648606c89998a9cc8164397647\",\"to\":\"0x9576e27257e0eceea565fce04ab1beedfc6f35e4\",\"gas_limit\":90000,\"gas_price\":1000000000,\"value\":1000000000000000000,\"nonce\":0,\"data\":null,\"input\":\"0x414243\",\"private_from\":\"\",\"private_for\":null,\"private_tx_type\":\"\"}",
"output": "f86582250f8083015f90949576e27257e0eceea565fce04ab1beedfc6f35e4808341424329a083c60d3f302c20390bb1fae0db919ef245542a903fcdeed95aecbcfc9ff844dea0613a4274ae4243ea2f2cc2dddcd64b8484b706f945c546b90eabbb0ac4cbe80f"
}
},
{
"is_exist": true,
"order_id": 30000000001,
"behavior_type": 3,
"behavior_result": 2,
"addon": {
"input": "{\"message\":\"MESSAGE TO BE SIGNED\"}",
"output": "0x06a2c198b7670bd47d1433bfe497ee0d5019fe2b78ba7b1fe6ae99c134deb5d23d045d5cf3bf314fa77cf8da060e141bf5e9d36c488000bab81e9f56c6a46f4f01"
}
}
]
}
The response includes the following parameters:
Field | Type | Description |
---|---|---|
is_exist | boolean | This order_id exists or not |
order_id | int64 | ID of callback |
behavior_type | int | View callback definition |
behavior_result | int | View callback definition |
addon | object | The input and output fields of callback |
Set following configuration in mockserver.app.conf
Require API code and API secret on web admin console
api_server_url=""
api_code=""
api_secret=""
Operate on web admin console
Callback URL
http://localhost:8890/v1/mock/callback
GetNonce URL
http://localhost:8890/v1/mock/getnonce
- Put sample code to {YOUR_GO_PATH}/github.com/cybavo/VAULTX_MOCK_SERVER
- Execute
- glide install
- go build ./mockserver.go
- ./mockserver
curl -X POST -d '{"name":"JOHN DOE","email":"johndoe@example.com","locale":"en"}' \
"http://localhost:8890/v1/mock/users"
curl -X POST "http://localhost:8890/v1/mock/devices?email=johndoe@example.com&company_id=1"
curl -X POST "http://localhost:8890/v1/mock/users/pin?email=johndoe@example.com&company_id=1"
curl -X POST "http://localhost:8890/v1/mock/devices/repair?email=johndoe@example.com&company_id=1"
curl -X POST -d '{"token":"TOKEN_FROM_SETP1","verify_num":VERIFICATION_CODE_FROM_EMAIL}' \
"http://localhost:8890/v1/mock/devices/repair?email=johndoe@example.com&company_id=1"
curl -X POST -d '{"ip":"192.168.0.1","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36","expires_at":1572451200}' \
"http://localhost:8890/v1/mock/loginverify?email=johndoe@example.com&company_id=1"
curl -X GET "http://localhost:8890/v1/mock/users/me?email=johndoe@example.com&company_id=1"
curl -X POST -d '{"question":"YOUR QUESTION","answer":"YOUR ANSWER"}' \
"http://localhost:8890/v1/mock/wallets/backup?email=johndoe@example.com&company_id=1"
curl -X GET "http://localhost:8890/v1/mock/wallets/backup/{TOKEN}?email=johndoe@example.com&company_id=1"
curl -X POST "http://localhost:8890/v1/mock/wallets/upload?email=johndoe@example.com&company_id=1"
curl -X POST -d '{"token":"TOKEN FROM SERVER","question":"QUESTION FROM SERVER","answer":"YOUR ANSWER"}' \
"http://localhost:8890/v1/mock/wallets/restore?email=johndoe@example.com&company_id=1"
curl -X POST -d '{"message":"MESSAGE TO BE SIGNED"}' \
"http://localhost:8890/v1/mock/wallets/signature?email=johndoe@example.com&company_id=1"
curl -X POST -d '{"to":"0x9576e27257e0eceea565fce04ab1beedfc6f35e4","gas_limit":90000,"gas_price":1000000000,"value":1000000000000000000,"input":"0x5448495320495320412054455354494e4720535452494e47","private":false}' \
"http://localhost:8890/v1/mock/wallets/rawtx?email=johndoe@example.com&company_id=1"
curl -X POST -d '{"secret":"0x04c7a7db0953984c6b3127a65300a86732a1799f076137a2619d913b84bf3130ff5fb947ac5b01706d902cb4fee021148eb0299626fb7c69f5e763ba3657fcef51f2326178289ac4d63d424444abaac33ec3c66844e5cd19d6ce12dcb48abadb2cd0d6eba06d7a074ee4e8b2cdf6b2bea34a059c2fadedd23b6ba61e1a537e3fa47a0a7137fd8171b0ec894164bbb3418c53823475fcdca0fc41b2480cb28bb2a52bffaaddbd89143a5e5c63e46014e3a44f6c9176a6e1410aecd331ccaad062cb5e3cd9cf813e3a6fa1425b2d61fd904429c6a4b3bb5f5bca12364c46dc019f28766dc8058f116393cc57d556e80efa1bd784c05d8b6ddfe9a173d0161b5db7f50859cb908bca6e9abf05a8649dfd5997b70313f9fe48e882670ce4def568b8239910acf8ebae8089ee17d53c7222fa895d9ce98f7d43d4df84a3f4a3a41d9c55a85f395f8ee2bbf7c07b0aa5b664a38ef7c40a0ec5c3039833dafd3b75b3f83d6a58effc6b959a7e0af8a09a9b40d7ec54dbb2f86dfb2750a8df"}' \
"http://localhost:8890/v1/mock/wallets/decrypt?email=johndoe@example.com&company_id=1"
curl -X POST -d '{"order_ids":[10000000002,10000000003]}' \
"http://localhost:8890/v1/mock/order/status?email=johndoe@example.com&company_id=1"
#####Back to top
Field | Type | Description |
order_id | int64 | ID of callback |
company_id | int64 | ID of requester's company |
behavior_type | number |
1 - Login 2 - Sign raw tx 3 - Sign signature 4 - Pair device 5 - Setup PIN code 6 - Backup user key 7 - Decrypt message |
behavior_result | number |
0 - Pending 1 - Rejected 2 - Accepted 3 - Expired 4 - Failed |
input | json string |
behavior_type 2 - the raw transaction to sign 3 - the message to sign 7 - the message to decrypt (hex string) |
output | hex string |
behavior_type 2 - the signed transaction 3 - the signed message 7 - the decrypted message (hex string) |
#####Back to top
API | Callback Type | Input/Output |
---|---|---|
/loginverify | 1 | - |
/wallets/rawtx | 2 | yes |
/wallets/signature | 3 | yes |
/devices | 4 | - |
/devices/repair | 4 | - |
/users/pin | 5 | - |
/wallets/backup | 6 | - |
/wallets/decrypt | 7 | yes |
#####Back to top
HTTP Status Code | Error Code | Error Message |
---|---|---|
400 | 112 | Invalid parameter |
400 | - | JSON unmarshal failure reason |
403 | - | Forbidden |
403 | 703 | Operation failed |
503 | 903 | KMS out of serivce. Please try again later. |
#####Back to top
During the raw transation signing process, the CYBAVO server will invoke getnonce API to retrieve the nonce of the wallet address.
Set the getnonce API URL on web admin console.
An example of the request:
{
"address": "0x94b3d188620bf633f6bff5f8c718b4bfbaca0c55",
"company_id": 1
}
The request includes the following parameters:
Field | Type | Description |
---|---|---|
address | string | The address of the requester's wallet |
company_id | int64 | Requester company ID |
An example of a successful response:
{
"nonce": 1
}
The response includes the following parameters:
Field | Type | Description |
---|---|---|
nonce | int64 | The nonce of given address |
Refer to CallbackController.go