# wallet_getPublicKey

Retrieves a public key by protocol/key derivation

## Result

The BRC-100 getPublicKey result, encoded as JSON text. Wallet failures return an error result.

## Permissions

Forwarded to the connected wallet under the configured app origin. Its protocol, certificate or basket permission checks apply to the requested operation.

Use walletRole to choose an assigned wallet. Otherwise the configured role is used. A disabled role cannot borrow another key.

## Definition 1 (full)

Registered in: Legacy local wallet; Legacy local identity; External BRC-100 wallet.

Retrieves a public key by protocol/key derivation. Use identityKey:true for the root identity key. protocolID is a JSON array like [2,"1sat"].

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| identityKey | boolean | No | If true, return the identity key (ignores other args) |  |
| protocolIDJSON | string | No | JSON array [securityLevel, protocolString] e.g. [2,"1sat"] |  |
| keyID | string | No |  |  |
| counterparty | string | No |  |  |
| forSelf | boolean | No |  |  |
| privileged | boolean | No |  |  |
| privilegedReason | string | No |  |  |
| seekPermission | boolean | No |  |  |

Nested requirements apply when their parent is supplied.

### Input schema

```json
{
  "type": "object",
  "properties": {
    "identityKey": {
      "description": "If true, return the identity key (ignores other args)",
      "type": "boolean"
    },
    "protocolIDJSON": {
      "description": "JSON array [securityLevel, protocolString] e.g. [2,\"1sat\"]",
      "type": "string"
    },
    "keyID": {
      "type": "string"
    },
    "counterparty": {
      "type": "string"
    },
    "forSelf": {
      "type": "boolean"
    },
    "privileged": {
      "type": "boolean"
    },
    "privilegedReason": {
      "type": "string"
    },
    "seekPermission": {
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
```

## Definition 2 (full)

Registered in: Local Vault · broadcasting disabled; Local Vault · all roles; Local Vault · payment role only; Local Vault + sponsor.

Retrieves a public key by protocol/key derivation. Use identityKey:true for the root identity key. protocolID is a JSON array like [2,"1sat"].

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| identityKey | boolean | No | If true, return the identity key (ignores other args) |  |
| protocolIDJSON | string | No | JSON array [securityLevel, protocolString] e.g. [2,"1sat"] |  |
| keyID | string | No |  |  |
| counterparty | string | No |  |  |
| forSelf | boolean | No |  |  |
| privileged | boolean | No |  |  |
| privilegedReason | string | No |  |  |
| seekPermission | boolean | No |  |  |
| walletRole | "payments" \| "identity" \| "ordinals" \| "encryption" | No | Select the configured root key for this BRC-100 call. Defaults to the role for the method; action continuations retain their original role. |  |

Nested requirements apply when their parent is supplied.

### Input schema

```json
{
  "type": "object",
  "properties": {
    "identityKey": {
      "description": "If true, return the identity key (ignores other args)",
      "type": "boolean"
    },
    "protocolIDJSON": {
      "description": "JSON array [securityLevel, protocolString] e.g. [2,\"1sat\"]",
      "type": "string"
    },
    "keyID": {
      "type": "string"
    },
    "counterparty": {
      "type": "string"
    },
    "forSelf": {
      "type": "boolean"
    },
    "privileged": {
      "type": "boolean"
    },
    "privilegedReason": {
      "type": "string"
    },
    "seekPermission": {
      "type": "boolean"
    },
    "walletRole": {
      "description": "Select the configured root key for this BRC-100 call. Defaults to the role for the method; action continuations retain their original role.",
      "type": "string",
      "enum": [
        "payments",
        "identity",
        "ordinals",
        "encryption"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
```

[All tools](https://bsvmcp.com/docs/tools)