Update account EDDSA key
Rate limit: 5 every second
API Overview
HTTP method
POST
Path
/api/v3/account
Summary
Updates the EDDSA key associated with the specified account, making the previous one invalid in the process.
API description
HTTP Header
Field | Type | Required | Description | Example |
---|---|---|---|---|
X-API-SIG | string | Y | ECDSA Signature | "0xccf0a141fce2dc5cbbd4f802c52220e9 e2ce260e86704d6258603eb346eefe2d 4a450005c362b223b28402d087f7065e a5eee0314531adf6a580fce64c25dca81c02" |
Request parameters
Field | Type | Required | Description | Example |
---|---|---|---|---|
exchange | string | Y | exchange address | "1" |
owner | string | Y | owner address | "0xB4A7016834 0C7511952301 9f79F5Ffd9c6 0DceC7" |
accountId | integer | Y | user account ID | 1 |
publicKey | Public Key |
Y | The user's public key | "{x:0x241707b cc6d7a4ccf10 304be248d343 a527e85f61b4 5d721544d027 cc1f2fb5f,y: 0x302f3a521d bdd1d0eb1944 c8323d4ac3b3 e9c9201f4aa4 3a2565054886 369d9c}" |
maxFee | Token VolumeV3 |
Y | maximum of fee token | "{tokenId: 0, volume: 1000000}" |
validUntil | integer | Y | Timestamp for order to become invalid | 1583183141 |
nonce | integer | Y | Nonce of users exchange account that used in off-chain requests. | 1 |
keySeed | string | N | KeySeed of users L2 eddsaKey, the L2 key should be generated from this seed, i.e., L2_EDDSA_KEY=eth.sign(keySeed). Otherwise, user may meet error in login loopring DEX | "Sign this message to access Loopring Exchange: 0xbbbbca6a90 1c926f240b89 eacb641d8aec 7aeafd with key nonce: 103" |
counterFactualInfo | Counter Factual Info |
N | Counter factual wallet extra info to verify L1 ecdsa signature. | "{walletFacto ry: 0xABCD, walletOwner: 0xABCD, walletSalt: 1234}" |
eddsaSignature | string | N | eddsa signature of this request | "0xccf0a141fc e2dc5cbbd4f8 02c52220e9e2 ce260e86704d 6258603eb346 eefe2d4a4500 05c362b223b2 8402d087f706 5ea5eee03145 31adf6a580fc e64c25dca81c 02" |
ecdsaSignature | string | N | ecdsa signature of this request | "0xeb14773e8a 07d19bc4fe56 e36d041dcb00 2652f7e92160 deaf5e6bf21e 05c7a9eb1477 3e8a07d19bc4 fe56e36d041d cb002652f7e9 2160deaf5e6b f21e05c7a9eb 14773e8a07d1 9bc4fe56e36d 041dcb002652 f7e92160deaf 5e6bf21e05c7 a9" |
hashApproved | string | N | An approved hash string which was submitted on eth mainnet | "0xf7c9323511 86c3a9053f31 3eefa16209c0 18f7f1dba8aa 8ca7100400f7 c31085" |
Request example
HTTP
CURL
POST https://api3.loopring.io/api/v3/account HTTP/1.1
Host: api3.loopring.io
Connection: keep-alive
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: zh,en;q=0.9
X-API-SIG: dkkfinfasdf
Content-Type: application/json
{
"exchange" : "1",
"owner" : "0xB4A70168340C75119523019f79F5Ffd9c60DceC7",
"accountId" : 1,
"publicKey" : {
"x" : "0x241707bcc6d7a4ccf10304be248d343a527e85f61b45d721544d027cc1f2fb5f",
"y" : "0x302f3a521dbdd1d0eb1944c8323d4ac3b3e9c9201f4aa43a2565054886369d9c"
},
"maxFee" : {
"tokenId" : 0,
"volume" : "1000000000000"
},
"validUntil" : 1583183141,
"nonce" : 1,
"keySeed" : "Sign this message to access Loopring Exchange: 0xbbbbca6a901c926f240b89eacb641d8aec7aeafd with key nonce: 103",
"counterFactualInfo" : {
"walletFactory" : "0xbbbbca6a901c926f240b89eacb641d8aec7aeafd",
"walletOwner" : "0xbbbbca6a901c926f240b89eacb641d8aec7aeafd",
"walletSalt" : "0xbbbbca6a901c926f240b89eacb641d8aec7aeafd"
},
"eddsaSignature" : "0xccf0a141fce2dc5cbbd4f802c52220e9e2ce260e86704d6258603eb346eefe2d4a450005c362b223b28402d087f7065ea5eee0314531adf6a580fce64c25dca81c02",
"ecdsaSignature" : "0xeb14773e8a07d19bc4fe56e36d041dcb002652f7e92160deaf5e6bf21e05c7a9eb14773e8a07d19bc4fe56e36d041dcb002652f7e92160deaf5e6bf21e05c7a9eb14773e8a07d19bc4fe56e36d041dcb002652f7e92160deaf5e6bf21e05c7a9",
"hashApproved" : "0xf7c932351186c3a9053f313eefa16209c018f7f1dba8aa8ca7100400f7c31085"
}
curl -X POST -H "X-API-SIG:dkkfinfasdf" -H "Content-Type:application/json" https://api3.loopring.io/api/v3/account -d \
'{
"exchange" : "1",
"owner" : "0xB4A70168340C75119523019f79F5Ffd9c60DceC7",
"accountId" : 1,
"publicKey" : {
"x" : "0x241707bcc6d7a4ccf10304be248d343a527e85f61b45d721544d027cc1f2fb5f",
"y" : "0x302f3a521dbdd1d0eb1944c8323d4ac3b3e9c9201f4aa43a2565054886369d9c"
},
"maxFee" : {
"tokenId" : 0,
"volume" : "1000000000000"
},
"validUntil" : 1583183141,
"nonce" : 1,
"keySeed" : "Sign this message to access Loopring Exchange: 0xbbbbca6a901c926f240b89eacb641d8aec7aeafd with key nonce: 103",
"counterFactualInfo" : {
"walletFactory" : "0xbbbbca6a901c926f240b89eacb641d8aec7aeafd",
"walletOwner" : "0xbbbbca6a901c926f240b89eacb641d8aec7aeafd",
"walletSalt" : "0xbbbbca6a901c926f240b89eacb641d8aec7aeafd"
},
"eddsaSignature" : "0xccf0a141fce2dc5cbbd4f802c52220e9e2ce260e86704d6258603eb346eefe2d4a450005c362b223b28402d087f7065ea5eee0314531adf6a580fce64c25dca81c02",
"ecdsaSignature" : "0xeb14773e8a07d19bc4fe56e36d041dcb002652f7e92160deaf5e6bf21e05c7a9eb14773e8a07d19bc4fe56e36d041dcb002652f7e92160deaf5e6bf21e05c7a9eb14773e8a07d19bc4fe56e36d041dcb002652f7e92160deaf5e6bf21e05c7a9",
"hashApproved" : "0xf7c932351186c3a9053f313eefa16209c018f7f1dba8aa8ca7100400f7c31085"
}'
Response fields
Field | Type | Required | Description | Example |
---|---|---|---|---|
hash | string | Y | The order hash identifier set by the user at the time of submission | "0x1d923ca783 4dc90484fa2e b611f0f0bc7e 741bb107007e bea19ba8caea b4f9d3" |
status | string | Y | Whether the order was successfully submitted or not, please note, user may query after a while to get real process status, as most offchain requests are async processed Allowable : ['received', 'processing', 'processed', 'failed'] |
"received" |
isIdempotent | boolean | Y | Idempotent of submit order response, submit same order again when order was UNKNOWN or WAIT_FREEZE_BALANCE in relayer, idempotent will be true Allowable : [True, False] |
"true" |
Response example
{
"hash" : "0x1d923ca7834dc90484fa2eb611f0f0bc7e741bb107007ebea19ba8caeab4f9d3",
"status" : "received",
"isIdempotent" : true
}
Status code
Value | Description |
---|---|
100000 | Unknown error |
100001 | Invalid argument |
102001 | Exchange ID is incorrect |
102021 | Nonce is invalid |
102022 | Transfer sender is invalid |
102023 | Transfer receiver is invalid |
102024 | Fee token is unsupported |
102025 | Transfer token isnt consistent with fee token |
Model
PublicKey
Describes the users public key which is a point of the selected eclipse curve.
Field | Type | Required | Description | Example |
---|---|---|---|---|
x | string | Y | The public keys x part. | "0x241707bcc6 d7a4ccf10304 be248d343a52 7e85f61b45d7 21544d027cc1 f2fb5f" |
y | string | Y | The public keys y part. | "0x302f3a521d bdd1d0eb1944 c8323d4ac3b3 e9c9201f4aa4 3a2565054886 369d9c" |
TokenVolumeV3
Wrapper object used to describe a token associated with a certain quantity.
Field | Type | Required | Description | Example |
---|---|---|---|---|
tokenId | integer | Y | The Loopring's token identifier. | 0 |
volume | string | Y | The volume of the token | "100000000000 0" |
CounterFactualInfo
Field | Type | Required | Description | Example |
---|---|---|---|---|
walletFactory | string | Y | Counter factual wallet factory contract address | "0xbbbbca6a90 1c926f240b89 eacb641d8aec 7aeafd" |
walletOwner | string | Y | Counter factual wallet owner address, NOT the wallet address | "0xbbbbca6a90 1c926f240b89 eacb641d8aec 7aeafd" |
walletSalt | string | Y | Salt to generate address from owner & other related info | "0xbbbbca6a90 1c926f240b89 eacb641d8aec 7aeafd" |