> ## Documentation Index
> Fetch the complete documentation index at: https://docs.turnkey.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bitcoin

> This page provides examples of policies governing Bitcoin signing.

Note: see the [language section](/concepts/policies/language#bitcoin) for more details. For context on Bitcoin transaction reinsertion, see the [Bitcoin network support](/networks/bitcoin) page

#### Allow signing Bitcoin transactions ONLY if all outputs are being sent to a certain address

```json theme={"system"}
{
  "policyName": "Enable bitcoin transactions to be sent to <BITCOIN_ADDRESS>",
  "effect": "EFFECT_ALLOW",
  "condition": "bitcoin.tx.outputs.all(o, o.address == <BITCOIN_ADDRESS>)"
}
```

#### Allow signing Bitcoin transactions restricting output values

```json theme={"system"}
{
  "policyName": "Allow signing bitcoin transactions only if all outputs have value < 200000 satoshis",
  "effect": "EFFECT_ALLOW",
  "condition": "bitcoin.tx.outputs.all(o, o.value < 200000)"
}
```

#### Allow signing Bitcoin transactions only if ALL inputs are spending a particular UTXO (this key is only allowed to spend one input)

```json theme={"system"}
{
  "policyName": "Only allow spending of a single bitcoin transaction input",
  "effect": "EFFECT_ALLOW",
  "condition": "bitcoin.tx.inputs.all(i, i.tx_id == <TX_ID_OF_UTXO> && i.vout == <VOUT_OF_UTXO>)"
}
```

#### Cap the maximum fee

```json theme={"system"}
{
  "policyName": "Allow signing Bitcoin transactions only if fee is under 10000 satoshis",
  "effect": "EFFECT_ALLOW",
  "condition": "bitcoin.tx.fee <= 10000"
}
```

#### Deny if fee exceeds a threshold

```json theme={"system"}
{
  "policyName": "Deny signing Bitcoin transactions if fee exceeds 50000 satoshis",
  "effect": "EFFECT_DENY",
  "condition": "bitcoin.tx.fee > 50000"
}
```
