How does Rumpel work?

Rumpel allows users to wrap each earned point into a Rumpel Point Token via a personal Rumpel Wallet, a Safe Multisig. As points accrue, the Rumpel Oracle validates offchain point balances and updates user allowances for Point Token minting. When/if the project announces an airdrop, point tokens can be redeemed for their underlying airdrop share, including any future vesting allotments via Redemption Rights.

Key components

Point Token

A Rumpel Point Token (or pToken) is a token that represents an offchain point and its future rewards. They map 1:1 or 1:1000 (kilo) with the points earned by users' wallets.

It's a standard ERC20 minted by users who've accrued points through their Rumpel wallet. After a project announces an airdrop, point tokens can be redeemed by their holders for some reward token through the Rumpel Vault. For airdrops subject to vesting, Rumpel imparts special Redemption Rights to ensure that pTokens are never unbacked.

Wallet

Rumpel Wallet is a personalized Safe where users can earn points. It is enhanced with a special Rumpel Module and Rumpel Guard. Users can create and manage previously-whitelisted strategies within their Rumpel Wallets, and points accumulate directly in the wallet.

As points accrue, the Rumpel Oracle validates offchain point balances and pushes minting allowance updates to the Rumpel Vault.

Users can then mint Point Tokens against their Wallets point balances and sell them at any time.

Rumpel Guard

Rumpel prevents users from claiming rewards for points that they've previously sold as point tokens by restricting all actions, except for those previously whitelisted.

Controlled by the admin, the Guard holds a whitelist of <address>.<functionSelector> calls.

Moreover, the Guard can permanently allow a call, e.g. USDC.transfer, to give guarantees around which actions a user will always be able to take with their Safe.

Rumpel Module

The Rumpel Module enables the admin to take actions on a user's behalf. Specifically to:

  • Claim reward tokens after the external protocol releases them

  • Transfer the reward tokens to the Vault for pToken redemption

It's expected that both of these actions will generally be done atomically, so that reward tokens don't sit in the user's wallet.

The Rumpel Module also includes an irreversible blocklist that restricts which actions can be taken, e.g. USDC.transfer, to give guarantees around what can't be done on behalf of a user's Safe.

Oracle

An offchain client that validates Rumpel wallet point balances and updates the pToken minting and redemption allowances in the Rumpel Vault.

The Oracle clients push pToken minting allowances via a Merkle root at a 3-5 day cadence, delayed by 3+ days to minimize faulty Oracle data.

Rumpel runs distinct clients to diversify implementation risk and has plans to progressively decentralize this component.

Vault

The Rumpel Vault is the contract where all pToken minting/burning occurs. It recieves updates from the Rumpel Oracle on pToken minting allowances and information on pToken redemption.

After an airdrop is announced, the Oracle updates the pToken redemption logic in the Vault. Next, Rumpel claims all reward tokens on behalf of users and sweeps them into the Vault. Finally, depending on any redemption affordances, pToken holders can redeem for the underlying reward asset.

Unabridged Point Token Lifecycle

Minting

Burning / Redemptions

Last updated