diff --git a/docs/guides/governance/managing.md b/docs/guides/governance/managing.md index e79643df..4e2fe904 100644 --- a/docs/guides/governance/managing.md +++ b/docs/guides/governance/managing.md @@ -121,6 +121,12 @@ type NervousSystemParameters = record { }; ``` +:::caution[Changing the SNS token transfer fee] +Do not use `ManageNervousSystemParameters.transaction_fee_e8s` to change the SNS token transfer fee. This field updates only Governance's stored parameter, not the SNS ledger canister. Worse, because Governance uses this stored value as the fee for its own neuron-operation transfers (disbursing, splitting, staking maturity, and so on), setting it to a value that differs from the ledger's actual fee will cause those transfers to be rejected by the ledger (`BadFee`), breaking neuron operations. + +To change the actual ledger transfer fee, submit a [`ManageLedgerParameters`](#manageledgerparameters) proposal with `transfer_fee` set. On successful execution, the ledger fee is updated and Governance's `transaction_fee_e8s` is synced to the same value automatically. +::: + For a description of each parameter and its effect, see the [SNS settings reference](../../references/sns-settings.md). ### ManageSnsMetadata @@ -155,6 +161,8 @@ quill send message.json Updates ledger parameters: transfer fee, token name, token symbol, or token logo. Fields set to `null` remain unchanged. +Use `transfer_fee` here to change the SNS token transfer fee; this is the only proposal that updates the actual fee charged by the ledger. On successful execution, it also syncs Governance's `NervousSystemParameters.transaction_fee_e8s` to the same value, so a separate `ManageNervousSystemParameters` proposal is not needed. + ```bash quill sns \ make-proposal $PROPOSAL_NEURON_ID \ diff --git a/docs/references/sns-settings.md b/docs/references/sns-settings.md index 66e83cda..a7d0778a 100644 --- a/docs/references/sns-settings.md +++ b/docs/references/sns-settings.md @@ -43,7 +43,7 @@ For background, see [SNS framework](../concepts/sns-framework.md). | Parameter | Type | Description | |---|---|---| -| `transaction_fee_e8s` | `nat64` | Per-transfer fee on the SNS ledger, in e8s. Does not apply to minting or burning. | +| `transaction_fee_e8s` | `nat64` | Governance's stored copy of the per-transfer ledger fee, in e8s. Does not apply to minting or burning. Do not set this field via `ManageNervousSystemParameters` to change the fee: it updates only Governance's copy, not the ledger. Change the fee with a `ManageLedgerParameters` proposal instead, which updates the ledger and syncs this field automatically (see [Managing an SNS](../guides/governance/managing.md#manageledgerparameters)). | ## Voting reward settings