## TLDR * Allow contracts to take an optional input when creating challenge: strategy or vault * If the address is specified, treat it like ERC4626, verify if the underlying asset is the challenge token * deposit into the vault, and store the responding `share` the user entitled for this challenge * when claiming, swap the share back to the original token by `withdraw` with receiver being the user ## Details * What if withdraw fail (no liquidity in lending protocol for example) -> transfer the share back for users?
TLDR
sharethe user entitled for this challengewithdrawwith receiver being the userDetails