Construction-derive
Intermediate
Tutorial
Overview
This section details how to derive an ICP adress using the Rosetta construction API.
The ICP ledger is using accountidentifiers
to represent public keys internally. To derive an accountidentifier
from a public key the Rosetta API offers the construction/derive
endpoint.
The request and response types can be found in the official documentation.
How to derive accountidentifiers
You have to provide Rosetta with the public key representation as specified in the Rosetta-API standard. An example of a call to the derive endpoint can be found below:
curl --location '0.0.0.0:8081/construction/derive' --header 'Content-Type: application/json' --data '{
"network_identifier": {
"blockchain":"Internet Computer",
"network":"00000000000000020101"
},
"public_key": {
"hex_bytes": "047a83e378053f87b49aeae53b3ed274c8b2ffbe59d9a51e3c4d850ca8ac1684f7131b778317c0db04de661c7d08321d60c0507868af41fe3150d21b3c6c757367",
"curve_type": "secp256k1"
}
}'
The response is the accountidentifier
used by the ICP ledger:
{"account_identifier":{"address":"8b84c3a3529d02a9decb5b1a27e7c8d886e17e07ea0a538269697ef09c2a27b4"}}⏎