Tribute Minion

TributeMinion is a helper contract for making tribute proposals

  • Provides contract to approve ERC-20 transfers
  • Provides simple function/interface to make single proposal type


There is a TributeMinion contract deployed to each supported network.



Create Tribute Proposal

  1. Make a submitTributeProposal function call to the TributeMinion contract
function submitTributeProposal(
Baal baal,
address token,
uint256 amount,
uint256 shares,
uint256 loot,
uint32 expiration,
string memory details
  • msg.sender is member tributing/requesting shares/loot
  • baal is the DAO we are tributing too
  • token - ERC-20 tokenAddress
  • amount of tribute, shares, loot in Wei
  • expiration is epoch time, same as in baal submitProposal
  • details - proposal details schema we use
  1. TributeMinion contract encodes ERC-20 token transfers and makes the proposal against the baal contract
  2. Subgraph catches the normal submitProposal event to create proposal entity
  3. TributeMinion emits additional event that we catch and add the following fields to the proposal entity:
    • tributeOffered
    • tributeToken
    • tributeTokenSymbol
    • tributeTokenDecimals
    • tributeMinionRecipient