Join our
Discord!
LogoLogo
SupraScan ExplorerStarKey WalletDiscord
MoveVM
  • Network
  • Oracles
  • Automation
  • SupraNova
  • Guides
MoveVM
  • Overview
  • Getting Started
    • Install Supra CLI with Docker
    • Create a Supra Account
    • Create a Move Package
      • Initialize a Package
      • Write a Module
      • Compile and Publish
      • Interact with a Package
    • Create a dApp with StarKey
  • Network Information
  • Token Standards
  • Learn Move 101
    • Getting Started with Move
    • Unsigned Integers in Move
    • Math Operations in Move
    • Using Vectors in Move
    • Reading Resource Data with borrow_global
    • Passing Data in Move: Value vs. Reference
    • Adding Elements with vector::push_back
    • Emitting Events with event::emit
  • Move Book
    • Getting Started
      • Modules and Scripts
      • Move Tutorial
    • Primitive Types
      • Integers
      • Bool
      • Address
      • Vector
      • Signer
      • References
      • Tuples and Unit
    • Basic Concepts
      • Local Variables and Scope
      • Equality
      • Abort and Assert
      • Conditionals
      • While, For, and Loop
      • Functions
      • Structs and Resources
      • Constants
      • Generics
      • Type Abilities
      • Uses and Aliases
      • Friends
      • Packages
      • Package Upgrades
      • Unit Tests
    • Global Storage
      • Structure
      • Operators
    • Reference
      • Standard Library
      • Coding Conventions
  • TypeScript SDK
    • Guides
      • Create Supra Accounts
      • Publish a Package
    • Documentation
    • Repository
  • Rest API
    • Mainnet
      • Accounts
      • Faucet
      • Transactions
      • Block
      • View
      • Consensus
      • Events
      • Tables
    • Testnet
      • Accounts
      • Faucet
      • Transactions
      • Block
      • View
      • Events
      • Tables
  • Developer Resources
    • Supra Dapp Templates
    • Supra Move VS Code Extension
  • Links
    • Supra DevHub
    • SupraScan Block Explorer
    • StarKey Wallet
    • Live Data Feeds
    • Whitepapers
    • Security Audits
    • Supra's Official GitHub
Powered by GitBook
On this page
  • What Are CLI Key Profiles?
  • CLI Commands for Profiles
  • List Profiles
  • Active a Profile
  • Generate a Profile
  • Import an Existing Profile
  • Delete Profile
Edit on GitHub
  1. CLI Commands

Profiles

Learn how to configure, manage, and interact with multiple key profiles in the Supra CLI.

On May 2nd, 2025 a new version of the CLI was released. The new image (v9.0.12) introduced a number of changes, including an improved profile feature which deprecated the key command of the previous version (v6.3.0). Please be advised that this page has not yet been updated.

What Are CLI Key Profiles?

Profiles in the Supra CLI are configurations that allow you to manage multiple key pairs within your environment. Each profile is tied to a unique public/private key pair and serves as an identity for various operations, such as running a validator node, managing accounts, or accessing specific resources. Profiles can be created, activated, imported, or removed as needed, providing flexibility and security when working with different roles or use cases.


CLI Commands for Profiles

Here's how to use the Supra CLI commands to work with profiles:

Not all CLI commands are listed here. Use the --help option to see the full list.

List Profiles

View all available profiles in your current environment:

supra key list-profile [OPTIONS]

Additional Options:

  • [OPTIONS] = -r: Reveal secret keys to screen

Example:

supra key list-profile

Result:

------------------------------------ Profile List -----------------------------------
         exampleAddress
SmrPublicKey { account_address: "0xcdf7ac195644bd834c2f127bf17f970cdc90fec69414fe33fa461c7b8baa668d", ed25519_public_key
: 08b957cbd5c17bcca5769c8349a9bc9c5e235a19b2170d23d61360f2d8b7fb1d }
--------------------------------------------------------------------------------------

Active a Profile

Set a specific profile as active, so it is used for subsequent CLI commands:

supra key activate-profile [OPTIONS] <NAME>

Additional Options:

  • [OPTIONS] = -f: Run without password prompt but read from the `NODE_OPERATOR_KEY_PASSWORD` environment variable.

  • <NAME> = Name of profile to activate

Example:

supra key activate-profile exampleAddress

Result:

------------------------------------ Profile List -----------------------------------
        (*)exampleAddress
SmrPublicKey { account_address: "0xcdf7ac195644bd834c2f127bf17f970cdc90fec69414fe33fa461c7b8baa668d", ed25519_public_key
: 08b957cbd5c17bcca5769c8349a9bc9c5e235a19b2170d23d61360f2d8b7fb1d }
--------------------------------------------------------------------------------------

Generate a Profile

Create a new profile with a fresh key pair:

supra key generate-profile [OPTIONS] <NAME>

Additional Options:

  • [OPTIONS] = -f: Run without password prompt but read from the `NODE_OPERATOR_KEY_PASSWORD` environment variable.

  • <NAME> = Name of the profile to generate

Example:

supra key generate-profile anotherExampleAddress

Result:

------------------------------------ Profile List -----------------------------------
        (*)exampleAddress
SmrPublicKey { account_address: "0xcdf7ac195644bd834c2f127bf17f970cdc90fec69414fe33fa461c7b8baa668d", ed25519_public_key
: 08b957cbd5c17bcca5769c8349a9bc9c5e235a19b2170d23d61360f2d8b7fb1d }

         anotherExampleAddress
SmrPublicKey { account_address: "0xec07bc3d5c30f85fb8a4c799aba5e2f185e420a2b223f4c1fc2a2a8eeef8192d", ed25519_public_key
: 680fffd96e017cc0dacf9350b7258e971e02d27c2e2686483bd2dbee5c13f5f5 }
--------------------------------------------------------------------------------------

Import an Existing Profile

Add an existing profile using its private key:

supra key import-profile [OPTIONS] <NAME> <PRIVATE_KEY>

Additional Options:

  • [OPTIONS] = -f: Run without password prompt but read from the `NODE_OPERATOR_KEY_PASSWORD` environment variable.

  • <NAME> = Name of the profile for the newly imported key

  • <PRIVATE_KEY> = A private key is a secret code that secures and controls access to a blockchain account.

Example:

supra key import-profile anotherOneAddress 0x4c88b4a9e5c8924d36a8c9f8e2f9a7d4e6b9f1a2c3d4b5e6f7a8c9d012345678

Result:

------------------------------------ Profile List -----------------------------------
        (*)exampleAddress
SmrPublicKey { account_address: "0xcdf7ac195644bd834c2f127bf17f970cdc90fec69414fe33fa461c7b8baa668d", ed25519_public_key
: 08b957cbd5c17bcca5769c8349a9bc9c5e235a19b2170d23d61360f2d8b7fb1d }

         anotherExampleAddress
SmrPublicKey { account_address: "0xec07bc3d5c30f85fb8a4c799aba5e2f185e420a2b223f4c1fc2a2a8eeef8192d", ed25519_public_key
: 680fffd96e017cc0dacf9350b7258e971e02d27c2e2686483bd2dbee5c13f5f5 }

         anotherOneAddress
SmrPublicKey { account_address: "0x608d604fd055b5428bb81c9a0591cfc62509f9965b88e3c633341e24b09982fb", ed25519_public_key
: 5ac625dee2f520734462774d60c8f9e02ab65b5a8815540e900c86b1cff80b39 }
--------------------------------------------------------------------------------------

Delete Profile

Delete an existing profile from your environment:

supra key remove-profile <NAME>

Additional Options:

  • <NAME> = Name of the profile to be removed

Example:

supra key remove-profile anotherOneAddress

Result:

------------------------------------ Profile List -----------------------------------
        (*)exampleAddress
SmrPublicKey { account_address: "0xcdf7ac195644bd834c2f127bf17f970cdc90fec69414fe33fa461c7b8baa668d", ed25519_public_key
: 08b957cbd5c17bcca5769c8349a9bc9c5e235a19b2170d23d61360f2d8b7fb1d }

         anotherExampleAddress
SmrPublicKey { account_address: "0xec07bc3d5c30f85fb8a4c799aba5e2f185e420a2b223f4c1fc2a2a8eeef8192d", ed25519_public_key
: 680fffd96e017cc0dacf9350b7258e971e02d27c2e2686483bd2dbee5c13f5f5 }
--------------------------------------------------------------------------------------

Last updated 10 days ago