# Namada 上的费用 (Fees on Namada)

为了解决Namada区块空间需求的市场，费用与交易相结合。为了使任何Namada交易被视为有效，必须支付正确的相应费用。确切的费用由用户设置，并且必须大于或等于由治理设置的最低 `gas-price` ，该价格包含在创世纪文件的`gas_cost`下。<br>

***

## 如何支付费用(How fees are paid)&#x20;

当明确声明时，通过`--gas-payer`标志支付燃气费。如果没有指定`--gas-payer`标志，则通过`--signing-keys`标志中的第一个键支付燃气费。

这意味着在交易中

```
namada client transfer \
  --source my-new-acc \
  --target validator-1 \
  --token NAM \
  --amount 10 \
  --signing-keys keysha
```

与`key keysha`关联的账户将被要求支付费用。这意味着尽管账户`accountant`可能有正的NAM余额，但`keysha`需要有关联的NAM以支付交易费用。

用户还可以指定一个`--gas-payer`标志以指定不同的账户来支付费用。这在签署交易的账户没有足够的NAM支付费用的情况下很有用。例如，如果`keysha`的余额为5 NAM，但`accountant`的余额为100 NAM，则以下交易将是有效的：

```
namada client transfer \
  --source my-new-acc \
  --target validator-1 \
  --token NAM \
  --amount 10 \
  --signing-keys keysha \
  --gas-payer keysha2
```

（假设keysha2存在并且在用户的钱包中）

为了测试网目的，我们建议使用[水龙头](/namada-docs-chinese/ji-cheng-zhi-nan-integration-guide/wang-luo-networks/ce-shi-wang-testnets/shi-yong-ce-shi-wang-shui-long-tou-using-the-testnet-faucet.md)来为交易费用提供NAM。

***

## 如何计算费用(How fees are calculated)&#x20;

交易的费用是通过将`gas-limit`乘以gas price来计算的。用户可以指定`--gas-limit`和`--gas-price`。如果两者都没有指定，将使用默认的gas limit和最低gas price。任何交易的默认gas limit当前设置为`20,000`。

最低气体价格设置在创世纪文件的`gas_cost`下。

***

## 如何设置燃气价格和燃气限制 (How to set the gas price and gas limit)

建议根据正在进行的交易来设置`gas-limit`。为了估算特定交易的`gas-limit`，应提供`--dry-run-wrapper`参数。这意味着该交易已经被模拟，但尚未发送到分类账。

例如，以下命令将模拟转账交易，并返回所用的燃气：

```
namadac transfer \
  --source my-new-acc \
  --target validator-1 \
  --token NAM \
  --amount 10 \
  --signing-keys keysha \
  --gas-payer keysha2 \
  --dry-run-wrapper
```

将输出类似于以下内容的结果：

```
Dry-run result: Transaction is valid. Gas used: 1785;
```

这意味着我们可以合理地用2000的`gas-limit`进行此转账交易。

因此，在进行转账时，我们可以如下所示指定`gas-limit`：

```
namadac transfer \
  --source my-new-acc \
  --target validator-1 \
  --token NAM \
  --amount 10 \
  --signing-keys keysha \
  --gas-payer keysha2 \
  --gas-limit 2000
```

如果由于某种原因，我们想支付更高的燃气费，我们也可以如下所示指定：

```
namadac transfer \
  --source my-new-acc \
  --target validator-1 \
  --token NAM \
  --amount 10 \
  --signing-keys keysha \
  --gas-payer keysha2 \
  --gas-limit 2000 \
  --gas-price 0.01
```

这将激励验证者优先考虑那些具有较低燃气价格的交易。

***

## 使用MASP中的令牌支付费用 (Paying fees with tokens in the MASP)

还可以使用MASP支付费用。这样做的目的是确保即使用户在其透明余额中没有NAM，他们仍然可以在链上进行透明交易。这对于用户来说是将资产最大化保留在MASP中的另一个激励。<br>

为了使用MASP支付费用，用户必须指定`--gas-spending-key`标志，并将其设置为钱包中的spending key的别名。这意味着费用将从spending key的隐蔽余额中扣除，并在通过`--gas-payer`支付之前解除到`--gas-payer`（或`--signing-keys`中的第一个key对应的地址）的透明余额。

例如，如果用户在他们的钱包中有一个spending key名为`spending-key-1`，并且他们想使用MASP支付交易费用，他们会运行以下命令：

```
namadac transfer \
  --source keysha \
  --target address-b \
  --token OSMO \
  --amount 10 \
  --gas-payer keysha \
  --gas-spending-key spending-key-1
```

在此示例中，keysha可能只在他们的透明余额中有OSMO余额，但spending-key-1可能在他们的隐蔽余额中有正的NAM余额。在这种情况下，NAM将被解除到keysha的透明余额中，然后用于支付交易费用。<br>

***

## 使用一次性燃气付款人 (Using a disposable gas payer)

还可以使用一次性燃气付款人支付交易费用。这在用户不想透露`--gas-payer`身份的情况下很有用。为了使用一次性燃气付款人，用户必须包括`--disposable-gas-payer`标志，并且还必须指定一个`--gas-spending-key`。这意味着费用将从`--gas-spending-key`的隐蔽余额中扣除，并在由临时地址支付之前解除到临时透明地址的透明余额。

例如，如果用户在他们的钱包中有一个spending key名为`spending-key-1`，并且他们想使用一次性地址支付交易费用，他们会运行以下命令：

```
namadac transfer \
  --source keysha \
  --target address-b \
  --token OSMO \
  --amount 10 \
  --gas-spending-key spending-key-1 \
  --disposable-gas-payer
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tantalum666.gitbook.io/namada-docs-chinese/yong-hu-zhi-nan-user-guide/namada-shang-de-fei-yong-fees-on-namada.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
