Using underlying pool tokens

How pools use underlying tokens for staking, earning rewards, and voting.

A vital feature of all Power Index pools is using underlying tokens for voting and staking across various DeFi protocols to receive rewards.

Underlying Tokens: The ERC20 tokens held by a pool.

We distinguish the following types of protocols (and their tokens) by the method of voting and receiving rewards:

  1. protocols that do not require the transfer of tokens to a special contract for voting and receiving rewards (e.g., COMP, UNI);

  2. protocols that require the transfer of tokens to a special smart contract for voting and receiving rewards (e.g., YFI, MKR);

  3. protocols that allow voting without transferring tokens to a special smart contract but make it possible to lock tokens in the contract and receive additional rewards (e.g., AAVE, SUSHI).

For "Type 1" we use "Direct voting scheme". In this case, Power Pool Governance calls the PowerIndexPoolController.sol via callVotingByPool(), which calls the PowerIndexPool.sol via callVoting() method.

We have implemented the "Direct voting scheme" and deployed it to Ethereum Main Network. MixBytes and Pessimistic audited the code.

For "Type 2" and "Type 3" we use "Wrapper scheme". In this case, PowerIndexPoolController.sol wraps the underlying token to WrappedPiErc20.sol and transfers WrappedPiErc20.sol tokens to the pool. WrappedPiErc20.sol contract stakes the underlying tokens into the corresponding protocol contract (e.g., Aave Safety Module, Sushibar, etc.).

We have implemented the "Wrapper scheme," now the code is being audited and not yet deployed.