This is a discussion thread for an informational EIP describing a singleton contract meant to act as a deposit agent.
The basic strategy is deploy a tiny, stateless contract that offers a way for other contracts to accept deposits (Ether, ERC20/721). This is done by having the singleton contract call into the destination contract with information about the deposit before executing the transfer.
This means a user only needs to approve the wrapper contract once and can then deposit to many applications supporting the interface. This is designed to:
- Remove the security implications of approving many application contracts to spend tokens
- Improve user experience when using tokens with applications
- Reduce the number of transactions needed when using the Ethereum network
Draft implementation of the wrapper contract here.