# wallet_createHmac

Creates an HMAC using wallet keys.

## Result

The BRC-100 createHmac 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.

Creates an HMAC using wallet keys.

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| data | array of number | Yes | Data bytes |  |
| protocolIDJSON | string | Yes | JSON array [securityLevel, protocolString] |  |
| keyID | string | Yes |  |  |
| counterparty | string | No |  |  |
| privileged | boolean | No |  |  |
| privilegedReason | string | No |  |  |
| seekPermission | boolean | No |  |  |

Nested requirements apply when their parent is supplied.

### Input schema

```json
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "description": "Data bytes"
    },
    "protocolIDJSON": {
      "type": "string",
      "description": "JSON array [securityLevel, protocolString]"
    },
    "keyID": {
      "type": "string"
    },
    "counterparty": {
      "type": "string"
    },
    "privileged": {
      "type": "boolean"
    },
    "privilegedReason": {
      "type": "string"
    },
    "seekPermission": {
      "type": "boolean"
    }
  },
  "required": [
    "data",
    "protocolIDJSON",
    "keyID"
  ],
  "$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.

Creates an HMAC using wallet keys.

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| data | array of number | Yes | Data bytes |  |
| protocolIDJSON | string | Yes | JSON array [securityLevel, protocolString] |  |
| keyID | string | Yes |  |  |
| counterparty | string | 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": {
    "data": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "description": "Data bytes"
    },
    "protocolIDJSON": {
      "type": "string",
      "description": "JSON array [securityLevel, protocolString]"
    },
    "keyID": {
      "type": "string"
    },
    "counterparty": {
      "type": "string"
    },
    "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"
      ]
    }
  },
  "required": [
    "data",
    "protocolIDJSON",
    "keyID"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
```

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