XIP-10

Infinex Protocol Configuration for Alpha

authorRay Zhu, Bilby, Axe
typeparameter-change
networkEthereum & Base
statusApproved
created2023-12-20
updated2023-12-20

Proposal Summary

This XIP specifies the initial value of the variables that will be used for the smart contract deployments on Ethereum Mainnet and Base for the Infinex Alpha.

Specification

Overview

The Infinex Protocol smart contracts will use the variables specified in the InfinexProtocolConfigBeacon for various purposes. The main categories they fall under are:

  • Addresses to point to the right contract deployment
  • Addresses for fee recipients
  • Fees taken on trades and withdrawals

There is also a special note on fee caps.

Keep in mind these parameters can be changed with future governance proposals. Certain high-risk parameters will require the user to opt-in for updates as per XIP-7.

Rationale

As detailed in the previous XIPs (6, 7 & 8) there will be various parameters and settings required for the protocol to function. This includes the latest implementations of smart contract logic, locations and allow list of tokens, fees and more.

This XIP proposes the following values that will be required for the protocol to operate (e.g. contract addresses) and a good baseline for operational parameters (e.g. fees), which can be adjusted later if required.

Technical Specification

The following tables outline the variables that will be used for the Ethereum Mainnet and Base deployments respectively.

Settings for Ethereum Mainnet

Variable name

Description

Value

Trusted forwarder

(_trustedForwarder)

The address of the ERC2771 forwarder contract which can forward messages to the Infinex accounts.

To be determined at deployment. Set to the address of the InfinexERC2771Forwarder contract.

Latest account implementation

(_latestAccountImplementation)

The address of the latest Infinex account implementation contract.

To be determined at deployment. Set to the address of the Infinex account implementation contract.

Initial proxy implementation

(_initialProxyImplementation)

The address of the contract the proxy implementation points to initially. See XIP-8 for more details.

To be determined at deployment. Set to the address of the Initial Proxy Implementation contract.

Revenue pool

(_revenuePool)

The address where non-trading fee revenue is sent to. (This isn't used on L1).

0x979F736d8D5D310f68C938739bC370534De5027A - the address of the Infinex council safe on Mainnet. This is just a placeholder because it can't be set to the zero address.

Trading fee pool

(_tradingFeePool)

The address where trading fee revenue is sent to. (This isn't used on L1).

0x979F736d8D5D310f68C938739bC370534De5027A - the address of the Infinex council safe on mainnet. This is just a placeholder because it can't be set to the zero address.

Default trading fees

(_defaultTradingFees)

The global trading fee structure for each perps market. (This isn't used on L1).

None

User-specific trading fees

(_users & _userSpecificTradingFees)

The user-specific fee structure set for each user and perps market. (This isn't used on L1).

None

User-specific trading fees set

(_users )

A list of flags indicating whether a user has a unique fee structure. (This isn't used on L1).

None

Withdrawal fee

(_withdrawalFee)

The fee denominated in USDC taken on withdrawals. (This isn't used on L1).

0

Circle Bridge

(_circleBridge)

The address of the Circle CCTP bridge.

0xbd3fa81b58ba92a82136038b25adec7066af3155. See Circle developer docs for reference.

Circle Bridge destination domain

(_circleBridgeDestinationDomain)

The destination domain of the target chain for cross-chain transfers.

6 (the domain for Base). See Circle developer docs for reference.

Circle Bridge USDC token address

Upgrades to a new implementation.

0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48. See Circle developer docs for reference.

Latest Synthetix information beacon

The address of the latest Synthetix information beacon contract. (This isn't used on L1).

N/A

Settings for Base

Variable name

Description

Value

Trusted forwarder

(_trustedForwarder)

The address of the ERC2771 forwarder contract which can forward messages to the Infinex accounts.

To be determined at deployment. Set to the address of the InfinexERC2771Forwarder contract.

Latest account implementation

(_latestAccountImplementation)

The address of the latest Infinex account implementation contract.

To be determined at deployment. Set to the address of the Infinex account implementation contract.

Initial proxy implementation

(_initialProxyImplementation)

The address of the contract the proxy implementation points to initially. See XIP-8 for more details.

To be determined at deployment. Set to the address of the Initial Proxy Implementation contract.

Revenue pool

(_revenuePool)

The address where non-trading fee revenue is sent to.

0x24f5A599a40730dc0475eCE8dD41C4D3A4Ba4Bf3 - the address of the Infinex council Safe on Base

Trading fee pool

(_tradingFeePool)

The address where trading fee revenue is sent to.

TO BE DETERMINED. This will need to be created.

Default trading fees

(_defaultTradingFees)

The global trading fee structure for each perps market.

8 bps for both maker and taker fees on ETH and BTC markets.

User-specific trading fees

(_users & _userSpecificTradingFees)

The user-specific fee structure is set for each user and perps market.

None

User-specific trading fees set

(_users)

A list of flags indicating whether a user has a unique fee structure.

None

Withdrawal fee

(_withdrawalFee)

The fee denominated in USDC taken on withdrawals.

$15

Circle Bridge

(_circleBridge)

The address of the Circle CCTP bridge.

0x1682Ae6375C4E4A97e4B583BC394c861A46D8962. See Circle Developer Docs for reference.

Circle Bridge destination domain

(_circleBridgeDestinationDomain)

The destination domain of the target chain for cross-chain transfers.

0 (the domain for Ethereum Mainnet). See Circle developer docs for reference.

Circle Bridge USDC token address

(_circleBridgeUSDCTokenAddress)

Upgrades to a new implementation.

0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913. See Circle developer docs for reference.

Latest Synthetix information beacon

(_latestSynthetixInformationBeacon)

The address of the latest Synthetix information beacon contract. (This isn't used on L1).

N/A

Fee Caps

The following maximum fees have been hardcoded into the accounts to protect customers from accidental or malicious manipulation of fees:

Withdrawal fees will be capped at $USDC 50.

Maker and Taker trading fees are capped at 50 bps.

Copyright

Copyright and related rights waived via CC0.

Contribute to Proposals on GitHub