TIP-109 Council Transactions

TIP-109 — Council Execution Transactions

Date: 2026-03-31
Network: Ethereum Mainnet (Chain ID: 1)
Council Safe: 0x9F6e831c8F8939DC0C830C6e492e7cEf4f9C2F5f

Overview

This page contains the Safe Transaction Builder JSONs required for the Threshold Council to execute the TIP-109 Bridge Rebate Upgrade flow.

Reference text / rationale: https://forum.threshold.network/t/tip-109-reintroduce-a-tbtc-mint-fee/1171/11

The execution is split into four actions:

  1. Schedule the batched proxy upgrade through Timelock
  2. Execute the batched proxy upgrade after 24 hours
  3. Wire RebateStaking to BridgeGovernance after verification
  4. Activate the 20 bps mint fee in two steps (begin then finalize)

Transaction 1 of 5 — Schedule Batch Upgrade

Description:
Schedule the Timelock batch that upgrades both RebateStaking and Bridge implementations atomically. This transaction starts the 24-hour delay and does not yet modify live proxy logic.

Safe Transaction Builder JSON:

{
  "version": "1.0",
  "chainId": "1",
  "createdAt": 1774912444600,
  "meta": {
    "name": "TIP-109: Schedule Batch Upgrade",
    "description": "Schedule the Timelock batch that upgrades RebateStaking and Bridge proxies atomically.",
    "txBuilderVersion": "1.18.2",
    "createdFromSafeAddress": "0x9F6e831c8F8939DC0C830C6e492e7cEf4f9C2F5f",
    "createdFromOwnerAddress": "",
    "checksum": ""
  },
  "transactions": [
    {
      "to": "0x92f2d8b72a7F6a551Be60b9aa4194248E9B4913D",
      "value": "0",
      "data": "0x8f2a0bb000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000006c03d14dce316ca74379c398d18730621e2a638967dece2ee8de869cb34134a40000000000000000000000000000000000000000000000000000000000015180000000000000000000000000000000000000000000000000000000000000000200000000000000000000000016a76d3cd3c1e3ce843c6680d6b37e9116b5c70600000000000000000000000016a76d3cd3c1e3ce843c6680d6b37e9116b5c7060000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000004499a88ec40000000000000000000000000184739c32edc3471d3e4860c8e39a5f3ff85a450000000000000000000000006e25effc3cc6d84f5df65d87b1cacfae423ccbee0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c49623609d0000000000000000000000005e4861a80b55f035d899f66772117f00fa0e8e7b000000000000000000000000e88f9547ca4ac988e125621917ea312e8e6091cf000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000241ebf670d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    }
  ]
}
```\\\\n
\\\\n
---\\\\n
\\\\n
## Transaction 2 of 5 — Execute Batch Upgrade\\\\n
\\\\n
**Description:**\\\\n
Execute the previously scheduled Timelock batch after the 24-hour delay has elapsed. This upgrades the RebateStaking proxy and the Bridge proxy, and clears the stale Bridge rebateStaking storage value.\\\\n
\\\\n
**Safe Transaction Builder JSON:**\\\\n
```json
{
  "version": "1.0",
  "chainId": "1",
  "createdAt": 1774998844600,
  "meta": {
    "name": "TIP-109: Execute Batch Upgrade",
    "description": "Execute the scheduled Timelock batch after 24 hours. Upgrades RebateStaking and Bridge proxies and clears stale Bridge storage.",
    "txBuilderVersion": "1.18.2",
    "createdFromSafeAddress": "0x9F6e831c8F8939DC0C830C6e492e7cEf4f9C2F5f",
    "createdFromOwnerAddress": "",
    "checksum": ""
  },
  "transactions": [
    {
      "to": "0x92f2d8b72a7F6a551Be60b9aa4194248E9B4913D",
      "value": "0",
      "data": "0xe38335e500000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000006c03d14dce316ca74379c398d18730621e2a638967dece2ee8de869cb34134a4000000000000000000000000000000000000000000000000000000000000000200000000000000000000000016a76d3cd3c1e3ce843c6680d6b37e9116b5c70600000000000000000000000016a76d3cd3c1e3ce843c6680d6b37e9116b5c7060000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000004499a88ec40000000000000000000000000184739c32edc3471d3e4860c8e39a5f3ff85a450000000000000000000000006e25effc3cc6d84f5df65d87b1cacfae423ccbee0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c49623609d0000000000000000000000005e4861a80b55f035d899f66772117f00fa0e8e7b000000000000000000000000e88f9547ca4ac988e125621917ea312e8e6091cf000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000241ebf670d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    }
  ]
}
```\\\\n
\\\\n
---\\\\n
\\\\n
## Transaction 3 of 5 — Wire RebateStaking\\\\n
\\\\n
**Description:**\\\\n
After verifying both upgraded proxies and confirming stale Bridge storage has been cleared, wire the RebateStaking proxy into BridgeGovernance by calling `setRebateStaking(address)`. This is the activation step for the rebate integration.\\\\n
\\\\n
**Safe Transaction Builder JSON:**\\\\n
```json
{
  "version": "1.0",
  "chainId": "1",
  "createdAt": 1775002444600,
  "meta": {
    "name": "TIP-109: Wire RebateStaking",
    "description": "Wire the upgraded RebateStaking proxy into BridgeGovernance after post-upgrade verification passes.",
    "txBuilderVersion": "1.18.2",
    "createdFromSafeAddress": "0x9F6e831c8F8939DC0C830C6e492e7cEf4f9C2F5f",
    "createdFromOwnerAddress": "",
    "checksum": ""
  },
  "transactions": [
    {
      "to": "0xcBCFA3eb5E067173b262ACe62f9dD87f1D2Cc0Cf",
      "value": "0",
      "data": "0xca73c4620000000000000000000000000184739c32edc3471d3e4860c8e39a5f3ff85a45"
    }
  ]
}
```\\\\n
\\\\n
---\\\\n
\\\\n
## Transaction 4 of 5 — Begin 20 bps Mint Fee Update\\\\n
\\\\n
**Description:**\\\\n
Begin the governance-delayed update that sets the deposit treasury fee divisor to `500`, corresponding to a **0.20% (20 bps)** mint fee. This starts the 48-hour delay before finalization.\\\\n
\\\\n
**Safe Transaction Builder JSON:**\\\\n
```json
{
  "version": "1.0",
  "chainId": "1",
  "createdAt": 1775088844600,
  "meta": {
    "name": "TIP-109: Begin Mint Fee Update",
    "description": "Begin the governance-delayed update to set the deposit treasury fee divisor to 500 (20 bps mint fee). Reference: [insert TIP-109 link].",
    "txBuilderVersion": "1.18.2",
    "createdFromSafeAddress": "0x9F6e831c8F8939DC0C830C6e492e7cEf4f9C2F5f",
    "createdFromOwnerAddress": "",
    "checksum": ""
  },
  "transactions": [
    {
      "to": "0xcBCFA3eb5E067173b262ACe62f9dD87f1D2Cc0Cf",
      "value": "0",
      "data": "0x4078dde000000000000000000000000000000000000000000000000000000000000001f4"
    }
  ]
}
```\\\\n
\\\\n
---\\\\n
\\\\n
## Transaction 5 of 5 — Finalize 20 bps Mint Fee Update\\\\n
\\\\n
**Description:**\\\\n
Finalize the deposit treasury fee divisor update after the 48-hour delay has elapsed, activating the **20 bps mint fee** on Bridge deposits.\\\\n
\\\\n
**Safe Transaction Builder JSON:**\\\\n
```json
{
  "version": "1.0",
  "chainId": "1",
  "createdAt": 1775261644600,
  "meta": {
    "name": "TIP-109: Finalize Mint Fee Update",
    "description": "Finalize the governance-delayed mint fee update after 48 hours, activating the 20 bps deposit fee. Reference: [insert TIP-109 link].",
    "txBuilderVersion": "1.18.2",
    "createdFromSafeAddress": "0x9F6e831c8F8939DC0C830C6e492e7cEf4f9C2F5f",
    "createdFromOwnerAddress": "",
    "checksum": ""
  },
  "transactions": [
    {
      "to": "0xcBCFA3eb5E067173b262ACe62f9dD87f1D2Cc0Cf",
      "value": "0",
      "data": "0x2e73df99"
    }
  ]
}
```\\\\n
\\\\n
---\\\\n
\\\\n
## Execution Order\\\\n
1. Sign and execute **Transaction 1**\\\\n
2. Wait **24 hours**\\\\n
3. Sign and execute **Transaction 2**\\\\n
4. Perform post-upgrade verification\\\\n
5. Sign and execute **Transaction 3**\\\\n
6. Wait observation window if desired\\\\n
7. Sign and execute **Transaction 4**\\\\n
8. Wait **48 hours**\\\\n
9. Sign and execute **Transaction 5**\\\\n
\\\\n

## Important Notes\\\\n
- Do not execute Transaction 3 before verifying Transaction 2 results.\\\\n
- Do not execute Transaction 5 before the 48-hour delay from Transaction 4 has elapsed.\\\\n