# GP 21: BOB inventory reduction

{% hint style="success" %}
This proposal was confirmed and executed:

* [Arbitrum tx](https://arbiscan.io/tx/0x8bd2884b4f75d02fcd4a7b46ad64565898a180a19d65b20c31a16f1f23c300a7)
* [BNB Chain tx](https://bscscan.com/tx/0xc6f6386130b4bddebfc57fd697c4513e32210c907c73e2a8f37dc770557c621d)
* [Ethereum Mainnet tx](https://etherscan.io/tx/0x8ba56eac51fb63318b9c104df7398daa90c0eb38e6dd3798c58237d2ebfecbbe)
* [Optimism tx](https://optimistic.etherscan.io/tx/0x96a44dd35199522f3a4e18006ae00e667b5ca9cc44df3cfe661d15ed7673bb2b)
* [Polygon tx](https://polygonscan.com/tx/0x87db50a91731239243309cad303b62dc3b439732639155626053cfeabe8a531b)
  {% endhint %}

### Proposal Objective

Continue the overall reduction of BOB inventory with reductions on all 5 networks.

### Proposal Details

The overall decrease of total supply follwoing this proposal is **-4,660,000 BOB** (**5,000,000 BOB** → **340,000 BOB**)**.**

#### Arbitrum (1m → 10k)

1. Deallocate **990,000 BOB (1,000,000 BOB → 10,000 BOB)** from the **BOB/USDC 0.01%** inventory position on Uniswap V3

#### BNB Chain (1m → 10k)

1. Deallocate **490,000 BOB (500,000 BOB → 10,000 BOB)** from the **BOB/USDC 0.01%** inventory position on Uniswap V3
2. Deallocate **500,000 BOB (500,000 BOB → 0 BOB)** from the **BOB/USDT 0.01%** inventory position on Uniswap V3

#### Mainnet (1m → 20k)

1. Deallocate **980,000 BOB (1,000,000 BOB → 20,000 BOB)** from the **BOB/USDC 0.01%** inventory position on Uniswap V3.

#### Optimism (1m → 100k)

1. Deallocate **900,000 BOB (1,000,000 BOB → 100,000 BOB)** from the **BOB/USDC 0.01%** inventory position on Uniswap V3.

#### Polygon (1m → 200k)

1. Deallocate **800,000 BOB (1,000,000 BOB → 200,000 BOB)** from the **BOB/USDC 0.01%** inventory position on Uniswap V3.

### Arbitrum

Transaction uses `delegatecall` to [`0xCDAD0ad4DD1F614a6502043Ef546e447b25Ffb9`](https://arbiscan.io/address/0xCDAD0ad4DD1F614a6502043Ef546e447b25Ffb99#code) to efficiently facilitate the complex inventory management process.

Transaction [#5](https://app.safe.global/transactions/tx?safe=arb1:0xd4a3D9Ca00fa1fD8833D560F9217458E61c446d8\&id=multisig_0xd4a3D9Ca00fa1fD8833D560F9217458E61c446d8_0xdbe514ab2d21d0428bb42e89755d1ed43d705ad9d67684ae4eb78282c634711e) in the Safe on Arbitrum contains the following sequence of actions:

1. Withdraw 99% (**\~990,000 BOB/USDC**) of **BOB/USDC 0.01%** Uniswap V3 inventory LP with its fees.
2. Swap obtained **USDC** to **BOB** via Uniswap V3.
3. Burn **BOB** obtained from inventory position principal.

### BNB Chain

Transaction uses `delegatecall` to  [`0xF321a98DFFe0c790A84BbE754811f3918a431ab9`](https://bscscan.com/address/0xF321a98DFFe0c790A84BbE754811f3918a431ab9#code) to efficiently facilitate the complex inventory management process.

Transaction [#13](https://app.safe.global/transactions/tx?id=multisig_0xd4a3D9Ca00fa1fD8833D560F9217458E61c446d8_0x0da4a9906438ed3c616c0dafa5722bf0dd34b876b110a0c4a03ab91f56fe3918\&safe=bnb:0xd4a3D9Ca00fa1fD8833D560F9217458E61c446d8) in the Safe on BNB Chain contains the following sequence of actions:

1. Withdraw 100% (**\~500,000 BOB/USDT**) of **BOB/USDT 0.01%** Uniswap V3 inventory LP with its fees.
2. Withdraw 98% (**\~490,000 BOB/USDC**) of **BOB/USDC 0.01%** Uniswap V3 inventory LP with its fees.
3. Swap obtained **USDT** to **USDC** via Uniswap V3.
4. Swap obtained **USDC** to **BOB** via Uniswap V3.
5. Burn **BOB** obtained from inventory position principal.

### Mainnet

Transaction uses `delegatecall` to  [`0x1F9843C88EFC073cB0E33B9E138cFF5b9efa039B`](https://etherscan.io/address/0x1F9843C88EFC073cB0E33B9E138cFF5b9efa039B#code)to efficiently facilitate the complex inventory management process.

Transaction [#18](https://app.safe.global/transactions/tx?id=multisig_0xd4a3D9Ca00fa1fD8833D560F9217458E61c446d8_0x6598e5c898ebafdd7430ac1490d16442060985e1fdf14ca49b131e3f8d55c602\&safe=eth:0xd4a3D9Ca00fa1fD8833D560F9217458E61c446d8) in the Safe on Mainnet contains the following sequence of actions:

1. Withdraw 98% (**\~980,000 BOB/USDC**) of **BOB/USDC 0.01%** Uniswap V3 inventory LP with its fees.
2. Swap obtained **USDC** to **BOB** via Uniswap V3.
3. Burn **BOB** obtained from inventory position principal.

### Optimism

Transaction uses `delegatecall` to  [`0x3c28Fb3AA25239E6a35A6a36757d38fe9303F21C`](https://optimistic.etherscan.io/address/0x3c28Fb3AA25239E6a35A6a36757d38fe9303F21C#code) to efficiently facilitate the complex inventory management process.

Transaction [#18](https://app.safe.global/transactions/tx?id=multisig_0x14fc6a1a996A2EB889cF86e5c8cD17323bC85290_0xde713e31812e929ec9d250b5c75d2055ba94f6b134fad4e94e8bcc2cac25dec3\&safe=oeth:0x14fc6a1a996A2EB889cF86e5c8cD17323bC85290) in the Safe on Optimism contains the following sequence of actions:

1. Withdraw 90% (**\~900,000 BOB/USDC**) of **BOB/USDC 0.01%** Uniswap V3 inventory LP with its fees.
2. Swap obtained **USDC** to **BOB** via Uniswap V3.
3. Burn **BOB** obtained from inventory position principal.

### Polygon

Transaction uses `delegatecall` to  [`0x74eB277f968490981857c71A410a9bAF568658cb`](https://polygonscan.com/address/0x74eB277f968490981857c71A410a9bAF568658cb#code) to efficiently facilitate the complex inventory management process.

Transaction [#38](https://app.safe.global/transactions/tx?id=multisig_0xd4a3D9Ca00fa1fD8833D560F9217458E61c446d8_0x6c1172b196533945c02db26d2c32da10192a4a602eb99107831efd7f495beb3f\&safe=matic:0xd4a3D9Ca00fa1fD8833D560F9217458E61c446d8) in the Safe on Polygon contains the following sequence of actions:

1. Withdraw 80% (**\~800,000 BOB/USDC**) of **BOB/USDC 0.01%** Uniswap V3 inventory LP with its fees.
2. Swap obtained **USDC** to **BOB** via Uniswap V3.
3. Burn **BOB** obtained from inventory position principal.

### Additional verification

1. Check the code of <https://arbiscan.io/address/0xCDAD0ad4DD1F614a6502043Ef546e447b25Ffb99#code>
2. Check the code of <https://bscscan.com/address/0xF321a98DFFe0c790A84BbE754811f3918a431ab9#code>
3. Check the code of <https://etherscan.io/address/0x1F9843C88EFC073cB0E33B9E138cFF5b9efa039B#code>
4. Check the code of <https://optimistic.etherscan.io/address/0x3c28Fb3AA25239E6a35A6a36757d38fe9303F21C#code>
5. Check the code of <https://polygonscan.com/address/0x74eB277f968490981857c71A410a9bAF568658cb#code>
6. Check the token transfers in Tenderly simulation:
   1. [Arbitrum #5](https://dashboard.tenderly.co/public/safe/safe-apps/simulator/1b7ff590-691f-4816-9530-c65ef5f5791f)
   2. [BNB Chain #13](https://dashboard.tenderly.co/public/safe/safe-apps/simulator/5968049c-ac60-489b-abfd-0309cc5e85ea)
   3. [Mainnet #18](https://dashboard.tenderly.co/public/safe/safe-apps/simulator/b97c90ae-ea86-4b53-9110-2e9f49ed921e)
   4. [Optimism #18](https://dashboard.tenderly.co/public/safe/safe-apps/simulator/66a5cc6a-2504-4755-b3d5-9eeed4d0113a)
   5. [Polygon #38](https://dashboard.tenderly.co/public/safe/safe-apps/simulator/aaef0286-d2eb-471b-ae97-72a8dfc2c1b7)
7. Check the following script with safe contract execution - <https://gist.github.com/k1rill-fedoseev/4e3ad34b58df31ae34a6a306fc2f01ac>
   1. `forge test --match-path ./script/scripts/VerifySafeTx_Gov45.t.sol --ffi -vvvv`
   2. Make sure `jq` CLI is installed


---

# Agent Instructions: 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://bob-docs.zkbob.com/bob-dao/governance/protocol-governance/gp-21-bob-inventory-reduction.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.
