Installing the MVR CLI

While not strictly necessary for onboarding, the MVR CLI is convenient for inspecting the on-chain data. To install it, follow these instructions, or run the below cargo command.

cargo install --locked --git <https://github.com/mystenlabs/mvr> --branch release mvr

If you have suiup installed (you can get it here: https://github.com/mystenlabs/suiup), you can use this command:

suiup install mvr

Using the Sui Typescript SDK MVR plugin

Since v1.25.0, the Sui typescript SDK (npm package @mysten/sui) supports transparently resolving MVR names in PTBs. All of the example Typescript PTBs in the MVR docs linked below rely on this. See the documentation for how to import the plugin: https://docs.suins.io/move-registry/tooling/typescript-sdk

The MVR plugin resolves the MVR names using the configured resolution endpoint the first time a name is encountered during script execution and caches it afterwards. You can define overrides for use cases such as CI, or use the @mysten/mvr-static tool (available on NPM) to generate an override file at build time, if you would not like to resolve MVR names at runtime.

Simple Onboarding

Happen to have a web wallet containing your UpgradeCap? You can proceed to https://www.moveregistry.com/apps and follow the flow there.

Manual Onboarding

If your UpgradeCap is managed by a multisig wallet or similar, you will have to manually execute transactions to onboard to MVR.

Adding your package to MVR involves two broad steps:

  1. Creating a PackageInfo object with metadata about your package.
    1. This is covered in the MVR docs here: https://docs.suins.io/move-registry/managing-package-info
  2. Associating that PackageInfo object with a MVR App.
    1. This is covered in the MVR docs here: https://docs.suins.io/move-registry/mvr-names

1. Creating a PackageInfo object

PackageInfo objects represent metadata around a specific package. Creating a PackageInfo object requires the UpgradeCap of the package.