Parameters are: name - Identifier of the wallet key - (leave empty for deferred input) Key or passphrase used for wallet key derivation. Look to key_derivation_method param for information about supported key derivation methods. key_derivation_method - (optional) Algorithm to use for wallet key derivation. One of: argon2m - derive secured wallet key (used by default) argon2i - derive secured wallet key (less secured but faster) raw - raw wallet key provided (skip derivation) storage_type - (optional) Type of the wallet storage. storage_config - (optional) The list of key:value pairs defined by storage type. storage_credentials - (optional) The list of key:value pairs defined by storage type.
indy> wallet create wallet1 key Enter value for key:
Wallet "wallet1" has been created indy> wallet list +---------+---------+ | Name | Type | +---------+---------+ | wallet1 | default | +---------+---------+
indy> wallet open wallet1 key Enter value for key:
wallet1:indy> did help Group: did - Identity management commands
Usage: did <command> [[<main-param-name>=]<main-param-value>] [<param_name-1>=<param_value-1>]...[<param_name-n>=<param_value-n>]
Getting help: did <command> help - Display the helpfor the specific command
Group commands are: list - List my DIDs stored in the opened wallet. import - Import DIDs entities from file to the current wallet. File format: { "version": 1, "dids": [{ "did": "did", "seed": "UTF-8, base64 or hex string" }] } qualify - Update DID stored in the wallet to make fully qualified, or to do other DID maintenance. new - Create new DID use - Use DID rotate-key - Rotate keys for active did
# 创建 DID 帮助
wallet1:indy> did new help Command: did new - Create new DID
Usage: did new [did=<did-value>] [seed[=<seed-value>]] [method=<method-value>] [metadata=<metadata-value>]
Parameters are: did - (optional) Known DID for new wallet instance seed - (optional) (leave empty for deferred input) Seed for creating DID key-pair (UTF-8, base64 or hex) method - (optional) Method name to create fully qualified DID metadata - (optional) DID metadata
Examples: did new did new did=VsKV7grR1BUE29mG2Fm2kX did new did=VsKV7grR1BUE29mG2Fm2kX method=indy did new did=VsKV7grR1BUE29mG2Fm2kX seed=00000000000000000000000000000My1 did new seed=00000000000000000000000000000My1 metadata=did_metadata
# 创建 DID wallet1:indy> did new did=VsKV7grR1BUE29mG2Fm2kX Did "VsKV7grR1BUE29mG2Fm2kX" has been created with "HSgE6LNpS9pLxWPvVgmBVvqXR26DyMh4J2UjMYEkqT7S" verkey
当容器销毁后,Wallet 数据会丢失。
导入 Wallet 并创建 DID
下面是在 mywallet 中使用 Steward1 创建 DID 并提交 NYM 交易到账本的过程
indy> wallet list There are no wallets # 创建钱包 indy> wallet create mywallet key=123456789 Wallet "mywallet" has been created indy> wallet open mywallet key=123456789 Wallet "mywallet" has been opened # 创建一个 DID mywallet:indy> did new Did "NebW6j3P5qTkynXCUATPxf" has been created with "~Aaeq6e2ukuYJ5S859cow54" verkey # 将 Hyperledger 的创世 Steward DID 导入到钱包 # 使用 Steward 则测试时不必再去找 Trustee 给自己授权,因为 Steward 本身就能写账本 mywallet:indy> did new seed=000000000000000000000000 Did "Th7MpTaRZVRYnPiabds81Y" has been created with "~7TYfekw4GUagBnBVCqPjiC" verkey # 当前钱包中的 DID mywallet:indy> did list +------------------------+-------------------------+----------+ | Did | Verkey | Metadata | +------------------------+-------------------------+----------+ | Th7MpTaRZVRYnPiabds81Y | ~7TYfekw4GUagBnBVCqPjiC | - | +------------------------+-------------------------+----------+ | NebW6j3P5qTkynXCUATPxf | ~Aaeq6e2ukuYJ5S859cow54 | - | +------------------------+-------------------------+----------+ # 使用 Steward mywallet:indy> did use Th7MpTaRZVRYnPiabds81Y Did "Th7MpTaRZVRYnPiabds81Y" has been set as active # 注册 Indy 节点网络连接配置 mywallet:did(Th7...81Y):indy> pool create local gen_txn_file=/home/indy/genesis.txn Pool config "local" has been created # 连接网络 mywallet:did(Th7...81Y):indy> pool connect local Pool "local" has been connected # 向测试网络提交一条 NYM 交易,为 DID = NebW6j3P5qTkynXCUATPxf 注册/更新其公钥(verkey)与角色(role = TRUST_ANCHOR) pool(local):mywallet:did(Th7...81Y):indy> ledger nym did=NebW6j3P5qTkynXCUATPxf verkey=~Aaeq6e2ukuYJ5S859cow54 role=TRUST_ANCHOR Nym request has been sent to Ledger. Metadata: +------------------------+-----------------+---------------------+---------------------+ | From | Sequence Number | Request ID | Transaction time | +------------------------+-----------------+---------------------+---------------------+ | Th7MpTaRZVRYnPiabds81Y | 8 | 1752832566640239460 | 2025-07-18 09:56:06 | +------------------------+-----------------+---------------------+---------------------+ Data: +------------------------+-------------------------+----------+ | Did | Verkey | Role | +------------------------+-------------------------+----------+ | NebW6j3P5qTkynXCUATPxf | ~Aaeq6e2ukuYJ5S859cow54 | ENDORSER | +------------------------+-------------------------+----------+ # 查询并显示 DID 为 NebW6j3P5qTkynXCUATPxf 的 NYM 记录 pool(local):mywallet:did(Th7...81Y):indy> ledger get-nym did=NebW6j3P5qTkynXCUATPxf Following NYM has been received. Metadata: +------------------------+-----------------+---------------------+---------------------+ | Identifier | Sequence Number | Request ID | Transaction time | +------------------------+-----------------+---------------------+---------------------+ | Th7MpTaRZVRYnPiabds81Y | 8 | 1752832654141172337 | 2025-07-18 09:56:06 | +------------------------+-----------------+---------------------+---------------------+ Data: +------------------------+------------------------+-------------------------+----------+ | Identifier | Dest | Verkey | Role | +------------------------+------------------------+-------------------------+----------+ | Th7MpTaRZVRYnPiabds81Y | NebW6j3P5qTkynXCUATPxf | ~Aaeq6e2ukuYJ5S859cow54 | ENDORSER | +------------------------+------------------------+-------------------------+----------+