Resource: Key
Represents a distributed Multi-party Compute (MPC) key.
| JSON representation |
|---|
{ "name": string, "threshold": integer, "algorithm": enum ( |
| Fields | |
|---|---|
name |
Identifier. The unique resource name of the Key. This field is server-assigned and follows the format required by AIP-122: projects/{project}/locations/{location}/instances/{instance}/mpc/keyRings/{keyRing}/keys/{key} |
threshold |
Required. The number of participant assents required for this key to sign. |
algorithm |
Required. The cryptographic algorithm used by this key. |
participantShares[] |
Required. The list of participants and their respective key share information. The participantId for each entry must be provided on creation. |
labels |
Optional. User-defined labels for grouping or filtering. e.g., {"env": "production", "team": "treasury"} An object containing a list of |
state |
Output only. The state of the key. |
publicKey |
Output only. The combined public key. Populated after DKG completes. Note: This is an uncompressed raw public key (e.g., 65 bytes starting with 0x04 for secp256k1). Because the field type is A base64-encoded string. |
blockchainAddresses |
Output only. Addresses derived from the public key. |
createTime |
Output only. The time at which the Key was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. The time at which the Key was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
KeyAlgorithm
The cryptographic algorithm used by the key.
| Enums | |
|---|---|
KEY_ALGORITHM_UNSPECIFIED |
Unspecified algorithm. |
ECDSA_SECP256K1 |
ECDSA on curve secp256k1. |
State
The state of the key.
| Enums | |
|---|---|
STATE_UNSPECIFIED |
State is unspecified. |
CREATING |
The key resource has been initialized by a keys.create request. The system is currently orchestrating the distributed key generation ceremony. This is a transient state; no cryptographic operations can be performed with the key yet. |
ACTIVE |
The DKG ceremony has successfully completed. The public key has been generated and populated in the resource, and all key shares are securely stored. The key is now fully operational and available for use in signing proposals. This is the steady state for a healthy key. |
DISABLED |
The key has been administratively disabled via an keys.patch operation. While the key material and history remain intact, the service will reject any new attempts to use this key for signing proposals. This state is used for temporary suspensions or as a prelude to key rotation/retirement. |
FAILED |
The DKG ceremony encountered an unrecoverable error (e.g., repeated worker failures or timeouts). The key generation process has been aborted, and no usable key material exists. This is a terminal failure state; the resource cannot be transitioned to ACTIVE. |
BlockchainAddresses
Addresses derived from the public key, organized by curve.
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field curve_addresses. The addresses derived from the public key, organized by curve. curve_addresses can be only one of the following: |
|
secp256k1Addresses |
Output only. Addresses derived from a SECP256K1 public key. |
Secp256k1Addresses
Addresses derived from a SECP256K1 public key.
| JSON representation |
|---|
{ "ethereumAddress": string } |
| Fields | |
|---|---|
ethereumAddress |
Output only. The Ethereum address derived from the public key, provided for convenience. Formatted as a hex string with a |
Methods |
|
|---|---|
|
Initiates a Distributed Key Generation (DKG) ceremony. |
|
Gets details of a single Key. |
|
Lists Keys in a given KeyRing. |
|
Updates a Key. |