diff --git a/api/keystore/service.md b/api/keystore/service.md index 76cc2ce69a56..f1e6079fda09 100644 --- a/api/keystore/service.md +++ b/api/keystore/service.md @@ -1,53 +1,33 @@ --- -tags: [AvalancheGo APIs] +title: Keystore API description: This page is an overview of the Keystore API associated with AvalancheGo. -sidebar_label: Keystore API -pagination_label: Keystore API --- -# Keystore API + +Because the node operator has access to your plain-text password, you should only create a keystore user on a node that you operate. If that node is breached, you could lose all your tokens. Keystore APIs are not recommended for use on Mainnet. + -:::warning -Because the node operator has access to your plain-text password, you should only create a -keystore user on a node that you operate. If that node is breached, you could lose all your tokens. -Keystore APIs are not recommended for use on Mainnet. -::: +Every node has a built-in keystore. Clients create users on the keystore, which act as identities to be used when interacting with blockchains. A keystore exists at the node level, so if you create a user on a node it exists _only_ on that node. However, users may be imported and exported using this API. -Every node has a built-in keystore. Clients create users on the keystore, which act as identities to -be used when interacting with blockchains. A keystore exists at the node level, so if you create a -user on a node it exists _only_ on that node. However, users may be imported and exported using this -API. +For validation and cross-chain transfer on the Mainnet, you should issue transactions through [AvalancheJS](/tooling/avalanche-js). That way control keys for your funds won't be stored on the node, which significantly lowers the risk should a computer running a node be compromised. See following docs for details: -For validation and cross-chain transfer on the Mainnet, you should issue transactions through -[AvalancheJS](/tooling/avalanchejs-overview). That way control keys for your funds won't be stored on -the node, which significantly lowers the risk should a computer running a node be compromised. See -following docs for details: - -- Transfer AVAX Tokens Between Chains: - - - C-Chain: [export](https://github.com/ava-labs/avalanchejs/blob/master/examples/c-chain/export.ts) and - [import](https://github.com/ava-labs/avalanchejs/blob/master/examples/c-chain/import.ts) - - P-Chain: [export](https://github.com/ava-labs/avalanchejs/blob/master/examples/p-chain/export.ts) and - [import](https://github.com/ava-labs/avalanchejs/blob/master/examples/p-chain/import.ts) - - X-Chain: [export](https://github.com/ava-labs/avalanchejs/blob/master/examples/x-chain/export.ts) and - [import](https://github.com/ava-labs/avalanchejs/blob/master/examples/x-chain/import.ts) - -- [Add a Node to the Validator Set](/nodes/validate/add-a-validator) - -:::info - -This API set is for a specific node, it is unavailable on the [public server](/tooling/rpc-providers.md). - -::: +1. Transfer AVAX Tokens Between Chains: + - C-Chain: [export](https://github.com/ava-labs/avalanchejs/blob/master/examples/c-chain/export.ts) and [import](https://github.com/ava-labs/avalanchejs/blob/master/examples/c-chain/import.ts) + - P-Chain: [export](https://github.com/ava-labs/avalanchejs/blob/master/examples/p-chain/export.ts) and [import](https://github.com/ava-labs/avalanchejs/blob/master/examples/p-chain/import.ts) + - X-Chain: [export](https://github.com/ava-labs/avalanchejs/blob/master/examples/x-chain/export.ts) and [import](https://github.com/ava-labs/avalanchejs/blob/master/examples/x-chain/import.ts) +2. [Add a Node to the Validator Set](/nodes/validate/node-validator) + + +This API set is for a specific node, it is unavailable on the [public server](/tooling/rpc-providers). + ## Format -This API uses the `json 2.0` API format. For more information on making JSON RPC calls, see -[here](/reference/standards/guides/issuing-api-calls.md). +This API uses the `json 2.0` API format. For more information on making JSON RPC calls, see [here](/api-reference/standards/guides/issuing-api-calls). ## Endpoint -```text +``` /ext/keystore ``` @@ -55,17 +35,11 @@ This API uses the `json 2.0` API format. For more information on making JSON RPC ### keystore.createUser -:::caution - -Deprecated as of [**v1.9.12**](https://github.com/ava-labs/avalanchego/releases/tag/v1.9.12). - -::: - Create a new user with the specified username and password. -**Signature:** +**Signature**: -```sh +``` keystore.createUser( { username:string, @@ -75,12 +49,11 @@ keystore.createUser( ``` - `username` and `password` can be at most 1024 characters. -- Your request will be rejected if `password` is too weak. `password` should be at least 8 - characters and contain upper and lower case letters as well as numbers and symbols. +- Your request will be rejected if `password` is too weak. `password` should be at least 8 characters and contain upper and lower case letters as well as numbers and symbols. -**Example Call:** +**Example Call**: -```sh +``` curl -X POST --data '{ "jsonrpc":"2.0", "id" :1, @@ -92,9 +65,9 @@ curl -X POST --data '{ }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/keystore ``` -**Example Response:** +**Example Response**: -```json +``` { "jsonrpc": "2.0", "id": 1, @@ -104,23 +77,21 @@ curl -X POST --data '{ ### keystore.deleteUser -:::caution - -Deprecated as of [**v1.9.12**](https://github.com/ava-labs/avalanchego/releases/tag/v1.9.12). - -::: + + Deprecated as of [v1.9.12](https://github.com/ava-labs/avalanchego/releases/tag/v1.9.12). + Delete a user. -**Signature:** +**Signature**: -```sh +``` keystore.deleteUser({username: string, password:string}) -> {} ``` -**Example Call:** +**Example Call**: -```sh +``` curl -X POST --data '{ "jsonrpc":"2.0", "id" :1, @@ -132,9 +103,9 @@ curl -X POST --data '{ }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/keystore ``` -**Example Response:** +**Example Response**: -```json +``` { "jsonrpc": "2.0", "id": 1, @@ -144,19 +115,15 @@ curl -X POST --data '{ ### keystore.exportUser -:::caution - -Deprecated as of [**v1.9.12**](https://github.com/ava-labs/avalanchego/releases/tag/v1.9.12). + +Deprecated as of [v1.9.12](https://github.com/ava-labs/avalanchego/releases/tag/v1.9.12). + -::: +Export a user. The user can be imported to another node with [`keystore.importUser`](/api-reference/keystore-api#keystoreimportuser). The user's password remains encrypted. -Export a user. The user can be imported to another node with -[`keystore.importUser`](/reference/avalanchego/keystore-api.md#keystoreimportuser). The user’s password -remains encrypted. +**Signature**: -**Signature:** - -```sh +``` keystore.exportUser( { username:string, @@ -169,12 +136,11 @@ keystore.exportUser( } ``` -`encoding` specifies the format of the string encoding user data. Can only be `hex` when a value is -provided. +`encoding` specifies the format of the string encoding user data. Can only be `hex` when a value is provided. -**Example Call:** +**Example Call**: -```sh +``` curl -X POST --data '{ "jsonrpc":"2.0", "id" :1, @@ -186,9 +152,9 @@ curl -X POST --data '{ }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/keystore ``` -**Example Response:** +**Example Response**: -```json +``` { "jsonrpc": "2.0", "id": 1, @@ -201,18 +167,15 @@ curl -X POST --data '{ ### keystore.importUser -:::caution - -Deprecated as of [**v1.9.12**](https://github.com/ava-labs/avalanchego/releases/tag/v1.9.12). - -::: + +Deprecated as of [v1.9.12](https://github.com/ava-labs/avalanchego/releases/tag/v1.9.12). + -Import a user. `password` must match the user’s password. `username` doesn’t have to match the -username `user` had when it was exported. +Import a user. `password` must match the user's password. `username` doesn't have to match the username `user` had when it was exported. -**Signature:** +**Signature**: -```sh +``` keystore.importUser( { username:string, @@ -223,12 +186,11 @@ keystore.importUser( ) -> {} ``` -`encoding` specifies the format of the string encoding user data. Can only be `hex` when a value is -provided. +`encoding` specifies the format of the string encoding user data. Can only be `hex` when a value is provided. -**Example Call:** +**Example Call**: -```sh +``` curl -X POST --data '{ "jsonrpc":"2.0", "id" :1, @@ -241,9 +203,9 @@ curl -X POST --data '{ }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/keystore ``` -**Example Response:** +**Example Response**: -```json +``` { "jsonrpc": "2.0", "id": 1, @@ -253,23 +215,21 @@ curl -X POST --data '{ ### keystore.listUsers -:::caution - -Deprecated as of [**v1.9.12**](https://github.com/ava-labs/avalanchego/releases/tag/v1.9.12). - -::: + +Deprecated as of [v1.9.12](https://github.com/ava-labs/avalanchego/releases/tag/v1.9.12). + List the users in this keystore. -**Signature:** +**Signature**: -```sh +``` keystore.ListUsers() -> {users:[]string} ``` -**Example Call:** +**Example Call**: -```sh +``` curl -X POST --data '{ "jsonrpc":"2.0", "id" :1, @@ -277,9 +237,9 @@ curl -X POST --data '{ }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/keystore ``` -**Example Response:** +**Example Response**: -```json +``` { "jsonrpc": "2.0", "id": 1,