Skip to main content

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"}}