+
-Once the minimum threshold is met, rewards will continue to be distributed to staked accounts as long as there is a balance in the rewards account even if it falls below the initial minimum threshold. The reward rate will initially be set to zero. The Hedera Council will vote and update the reward rate when the Hedera Staking Reward Program goes live. The latest reward rate can be found [here](https://hedera.com/blog/hedera-governing-council-votes-to-approve-changes-to-staking-algorithm).
-
-## **Staking Rewards**
-
-In Phase I, the staking reward rate will initially be zero. The Hedera Council will determine when the Hedera ecosystem has reached a minimum viable set of integrations to enable staking rewards. Once this is determined, the council (through CoinCom) will vote to update the reward rate, and subsequently, the mainnet will be updated with the agreed-upon reward rate.
-
-Any account can elect to stake to a node or another account. The **minimum staking period** is the minimum amount of time an account needs to be staked to a consensus node before the account is eligible to earn rewards. The minimum staking period is **one day (24 hours).** The staking period begins at midnight UTC and ends at midnight UTC. The Hedera Council defines the staking period. The earned rewards are not transferred to the staked account immediately after an account has been staked for one full staking period. Please see the Staking Reward Distribution section for what scenarios trigger the payment of a reward.
-
-Accounts staked for less than the defined minimum staking period are not eligible to earn rewards for that period. Nodes and accounts accumulate stake and rewards per whole HBAR. Fractions are rounded down. When a node is deleted, it returns zero rewards.
+
-This change simplifies the process without altering the actual cost of transactions for users.
+### Example 1: Fee Collection in Action (Crypto Transfer)
+
+Let's look at a standard `CRYPTO TRANSFER` transaction to see how the fee is collected.
+
+**Transaction Link:** [https://hashscan.io/mainnet/transaction/1771485699.125401461](https://hashscan.io/mainnet/transaction/1771485699.125401461)
+
+In this transaction, account `0.0.10231006` sends a small amount of HBAR to `0.0.37`. The HBAR transfers clearly show the fee consolidation:
+
+| Account | Amount | Description |
+| :--- | :--- | :--- |
+| `0.0.10231006` | **-0.00102456ℏ** | Payer (Sent transfer + fee) |
+| `0.0.37` | **+0.00000009ℏ** | Receiver (Node 34) |
+| **`0.0.802`** | **+0.00102447ℏ** | **Fee Collection Account** |
+
+
+### Example 2: Fee Collection Across All Transaction Types
+
+The HIP-1259 fee collection mechanism applies to all transaction types, not just crypto transfers. Let's look at a `SUBMIT MESSAGE` transaction to see the same streamlined process.
+
+**Transaction Link:** [https://hashscan.io/mainnet/transaction/1771486013.122401000](https://hashscan.io/mainnet/transaction/1771486013.122401000)
+
+#### Transaction Details
+
+- **ID:** `0.0.85243@1771485974.183471116`
+- **Type:** `SUBMIT MESSAGE`
+- **Fee:** `0.00902194ℏ`
+
+#### HBAR Transfers Breakdown
+
+This transaction submitted a message to the Hedera Consensus Service. Notice how simple the HBAR transfers are:
+
+| Account | Amount | Description |
+| :--- | :--- | :--- |
+| `0.0.85243` | **-0.00902194ℏ** | Payer (Paid the transaction fee) |
+| **`0.0.802`** | **+0.00902194ℏ** | **Fee Collection Account** |
+
+That's it. The entire fee is cleanly transferred to account `0.0.802`. There are no other transfers related to the fee in this transaction, making the record simple and easy to understand.
+
+### Before vs. After HIP-1259
| Aspect | Before HIP-1259 | After HIP-1259 |
| :--- | :--- | :--- |
@@ -71,11 +115,6 @@ This change simplifies the process without altering the actual cost of transacti
| **Network Overhead** | Higher, due to multiple balance updates per transaction. | Lower, improving overall network throughput. |
| **Block Stream** | Larger and more complex. | Smaller and more efficient, reducing costs for mirror nodes. |
-| Error | Code | Cause | Solution |
|---|---|---|---|
BATCH_LIST_EMPTY | 388 | Submitting a batch with no inner transactions | Add at least one inner transaction to the batch |
BATCH_LIST_CONTAINS_DUPLICATES | 389 | The batch contains duplicate inner transactions | Ensure each inner transaction in the batch is unique |
BATCH_TRANSACTION_IN_BLACKLIST | 390 | An inner transaction is of a type that's not allowed in batches | Only use allowed transaction types in batches |
INNER_TRANSACTION_FAILED | 391 | One or more inner transactions failed during execution | Check the specific error for the inner transaction and fix the issue |
BATCH_KEY_SET_ON_NON_INNER_TRANSACTION | 393 | `BatchKey` is set on the outer transaction | Only set BatchKey on inner transactions, not on the outer batch transaction |
INVALID_BATCH_KEY | 394 | The `BatchKey` is missing or invalid | Ensure all inner transactions have a valid `BatchKey` set |
INVALID_NODE_ACCOUNT_ID | 341 | Inner transaction has a nodeAccountID other than 0.0.0 | Use the batchify() method which automatically sets nodeAccountID to 0.0.0 |