diff --git a/docs/validators/delegation-manager.mdx b/docs/validators/delegation-manager.mdx index fbf6716cc..26437929c 100644 --- a/docs/validators/delegation-manager.mdx +++ b/docs/validators/delegation-manager.mdx @@ -136,43 +136,84 @@ Setting the identity of the staking pool in the metadata is the **first step** i [comment]: # (mx-context-auto) +### Display information + :::caution -As of March 2023, keybase.pub is no longer available. As a consequence, the identity verification mechanism has been switched to GitHub, including the profile information fetched from keybase.io. +As of January 2024, the only accepted way to customize the information of a delegation contract is via MultiversX Assets. +Provisioning of information from keybase or your Github repository is no longer accepted and you should migrate to the new approach is you still use those. ::: -### Display information - -To customize the information for your delegation contract, which will be available in the lists displayed on the delegation pages both in xPortal and the web wallet, some additional information has to be added on a GitHub account with the same identifier as the identity. If a GitHub username matching the node identity is already taken, you will need to change the identity in the node provider to a GitHub username that you control. +To customize the information for your delegation contract, which will be available inside the MultiversX ecosystem (such as Explorer, Web Wallet, xPortal, and so on), +some additional information has to be added to the MultiversX assets repository. -Please fill in the **avatar picture** and edit the profile providing the **name**, **bio**, **website** and **twitter** (if applicable). This information together with the **service fee, percentage filled** and **APR** will be displayed for every delegation contract on the delegation pages in the web wallet and xPortal. If this information cannot be found a generic logo and the delegation contract's address is displayed. +In order to do so, the owner of the nodes/staking provider must open a Pull Request against https://github.com/multiversx/mx-assets (`master` branch). -In order to complete the matching between the delegation contract and GitHub identity of the staking pool, a repository needs to be created with the name "multiversx" which contains one single file: "keys.json". This file contains a json array with the provider's smart contract address, just like it was on Keybase. For devnet/testnet, you need to have a folder called devnet/testnet in the same repository, with the "keys.json" file underneath. +_Step 1: choose the environment_ +- for mainnet go to `mx-assets/identities` +- for testnet go to `mx-assets/testnet/identities` +- for devnet go to `mx-assets/devnet/identities` -An example for the contents of the `keys.json` file for the `"testmxprovider"` GitHub identity would be: +_Step 2: create a directory with an unique name_ +Must be lowercase, alphanumeric, with no spaces. For example, `my-new-identity` +_Step 3: add a `info.json` file_ +Create a `info.json` file where you specify the owned address(es), the name, the description and social links. +Example: ```json - [ - "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqr0llllsj732py" - ] +{ + "description": "This is my new identity", + "name": "New identity", + "website": "http://newidentity.com", + "twitter": "https://twitter.com/newidentity", + "location": "France", + "owners": [ + "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqz8llllsh6u4jp", // staking provider address + "erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th" // the address of regular validator nodes owner + ] +} ``` +Inside the owners array: +- if you want to define an identity of a Staking Provider, add its SC address +- if you want to define an identity of simple nodes, add the owner address (all the keys owned by that address will have that identity) +- if you want to define the same identity for both a Staking Provider and simple nodes, set both the address of the Staking Provider and of the owner of the nodes + +_Step 4: Open PR and validate the ownership_ +After opening the PR, you also have to validate the ownership. Refer to the --- section + +_Done_ +After the PR is merged, the specified information together with the **service fee, percentage filled** and **APR** (for Staking Providers) will be displayed across the ecosystem. +If this information cannot be found a generic logo and the address is displayed. + An example of how the delegation contract will be displayed based on the information provided in the GitHub is provided below. ![stakingpool](/img/stakingpool.png) -:::important -To also connect the validators themselves to a specific GitHub staking pool identity, two additional steps have to be completed: +:::note +Before MultiversX Assets, nodes owners needed to update the `Identity` field inside the `prefs.toml` file of each node. This is not required anymore now. +::: -1. In the `keys.json` file, add the BLS key to the JSON array. -2. Set the `Identity` of each validator in the `config/prefs.toml` file to the GitHub staking pool identity. +### Assets ownership validation -```rust -[Preferences] - # Identity represents the GitHub identity - Identity = "" // e.g. Identity = "testmxprovider" -``` +This applies for both adding of updating an identity over the MultiversX assets. -::: +In order to validate the ownership of a staking provider or validator nodes, one will need to sign a message by using the owner wallet and then submit a comment on that PR. +In case of a staking provider, its owner must perform this message signing. + +Message signing can be performed either via [Web Wallet](https://wallet.multiversx.com), either via [MultiversX Utils](https://utils.multiversx.com/sign-message). +The message to be signed is the commit hash of the latest commit in the PR. Inside the PR, go to the `Commits` tab and copy the latest commit hash (the bottom one is the latest commit). + +![commit-hash](/img/commit-hash.png) + +Then, by using a message signer (Web Wallet of MultiversX Utils), sign that commit hash (make sure you don't have additional spaces or other characters) by using the owner wallet. + +![commit-hash-sign](/img/commit-hash-sign.png) + +After that, leave a comment on that PR with the resulted signature. + +![commit-hash-sig-comm](/img/commit-hash-sig-comm.png) + +That's it. A GitHub workflow will validate the signature and if everything is ok, the PR will merged by a MultiversX responsible and the identity will be live anytime soon. [comment]: # (mx-context-auto) diff --git a/static/img/commit-hash-sig-comm.png b/static/img/commit-hash-sig-comm.png new file mode 100644 index 000000000..633a0ebd6 Binary files /dev/null and b/static/img/commit-hash-sig-comm.png differ diff --git a/static/img/commit-hash-sign.png b/static/img/commit-hash-sign.png new file mode 100644 index 000000000..62b48bc7d Binary files /dev/null and b/static/img/commit-hash-sign.png differ diff --git a/static/img/commit-hash.png b/static/img/commit-hash.png new file mode 100644 index 000000000..d7ba6dcc9 Binary files /dev/null and b/static/img/commit-hash.png differ diff --git a/static/img/stakingpool.png b/static/img/stakingpool.png index 705d84fe3..d6e934aec 100644 Binary files a/static/img/stakingpool.png and b/static/img/stakingpool.png differ