# DEX and VIP Contract Update: Support Non-proportional Liquidity Provision

**URL:** <https://forum.initia.xyz/t/dex-and-vip-contract-update-support-non-proportional-liquidity-provision/345>\
**Category:** Initia Governance\
**Created:** [July 23, 2025, 5:17am UTC](https://forum.initia.xyz/t/dex-and-vip-contract-update-support-non-proportional-liquidity-provision/345 "2025-07-23T05:17:20Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![joelim](https://yyz1.discourse-cdn.com/flex033/user_avatar/forum.initia.xyz/joelim/32/7_2.png) [@joelim](https://forum.initia.xyz/u/joelim)\
**Post date:** [July 23, 2025, 5:17am UTC](https://forum.initia.xyz/t/dex-and-vip-contract-update-support-non-proportional-liquidity-provision/345/1 "2025-07-23T05:17:20Z")

</div>

* * *

### **1. TL;DR**

This proposal introduces updates to the following components:

- **Initia DEX**
  - Modify `calculate_provide_liqudity_return_amount` to support **non-proportinal liquidity provision**.

- **VIP**
  - Automatically calculate and provide proportional counterparty coins during lock staking (enabled by the new non-proportional support in `0x1::dex`).
  - Add `update_operator_info` function to modify `commission_max_rate` and `commission_max_change_rate` via governance.
  - Add `get_module_store` to expose the module store for `weight_vote`.
  - Add `vote_with_amount` to enable voting with precise amounts.
  - Implement initial snapshot on rollup registration to prevent errors when registration occurs near stage end.

* * *

### **2. Background**

**1. Enable Custom Amount Liquidity Provision**

The InitiaDEX (at `0x1::dex`) currently only supports proportional or single-asset liquidity provision. With this update, the contract will support custom (non-proportional) liquidity provision, allowing users to add liquidity to a pool using custom amounts rather than following the standard ratio that matches the current pool asset ratio.

**2. VIP Lock Staking Compatibility Fix**

The VIP lock staking mechanism requires liquidity to be provided proportionally. However, the new custom liquidity provision feature in `0x1::dex` would allow users to bypass this requirement by staking non-proportional amounts (e.g., providing only INIT when providing liquidity and staking in the INIT-USDC pool).

To preserve the intention of the original VIP lock staking mechanism, this proposal includes a modification to the VIP contract that enforces proportional liquidity provision during VIP lock staking, regardless of the custom amount liquidity provision feature.

**3. Misc**

Additionally, features such as `update_operator_info` and `get_module_store` requested by rollup teams are included in this update.

* * *

### **3. Proposal Details**

The following contracts will be updated:

- `0x1::dex`
- `0x3a886b32a802582f2e446e74d4a24d1d7ed01adf46d2a8f65c5723887e708789::operator`
- `0x3a886b32a802582f2e446e74d4a24d1d7ed01adf46d2a8f65c5723887e708789::tvl_manager`
- `0x3a886b32a802582f2e446e74d4a24d1d7ed01adf46d2a8f65c5723887e708789::vip`
- `0x3a886b32a802582f2e446e74d4a24d1d7ed01adf46d2a8f65c5723887e708789::weight_vote`
- `0x3a886b32a802582f2e446e74d4a24d1d7ed01adf46d2a8f65c5723887e708789::lock_staking`

Relevant PRs:

- [[dex] Support non-proportional provide](https://github.com/initia-labs/movevm/pull/220)
- [[VIP] VIP 1.2.0](https://github.com/initia-labs/vip-contract/pull/54)
- [[Lock Stake] Remove exact provide amount](https://github.com/initia-labs/vip-contract/pull/55)

* * *

### Governance Votes

**Yes**

- You agree with upgrading the InitiaDEX and VIP contracts as outlined in this proposal

**No**

- You disagree with the proposal and do not support the contract changes

**No with Veto**

- You believe this proposal is spam, not relevant, incomplete, or harmful.

**Abstain**

- You do not have a strong opinion either way, but want to count toward quorum.
