project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4

UniRoll

Flexible and automated payroll streaming service based on Cowswap's programmatic orders.

UniRoll

Created At

ETHGlobal Istanbul

Winner of

WalletConnect - Innovation Pool Prize

Prize Pool

Gnosis Chain - Innovate on Gnosis Chain

Prize Pool

CoW Protocol - CoW Programmatic Framework 1st Place

Project Description

Uniroll is essentially a flexible and automated payroll streaming service based on Cowswap's programmatic orders.

  1. The Treasury/Employer/DAO determines the amount and tops up the treasury with their own or any token.
  2. Receivers choose the token and chain of their choice, and then payments are regularly swapped from the treasury's token to the token of the receiver's choice and streamed regularly using programmatic orders. We also planned to bridge them to the chain of the receiver's choice using hooks. However, currently, we could implement and execute only the first part end-to-end, due to time constraints. The second part remains partially completed as of now.

We think this level of personalization and flexibility is required in our diverse world, since contributors/receivers might have preferences for certain tokens or blockchains due to factors like base location, transaction fees, processing times, or personal preferences.

The codebase currently is buggy; for example, ERC-1271 always returns true, so please don't use this in production.

Deployments :

Mainnet : Gnosis, We test in Production :)

  • Payroll(Handler): https://gnosisscan.io/address/0x467751B9224f7828b37e2c242F7c37F1f8b91A0D#readContract
  • Treasury(Owner): https://gnosisscan.io/address/0xdc541fc451c34f8a4ff5f3e21f8f7af224b912cf#tokentxns
  1. Example of Creation of Programmatic Order https://gnosisscan.io/tx/0x7c551dccbac3fbde4dd82c8a612f0342cefe66ca3035cb5304fe3356b680df73
  2. Examples of Execution of Programmatic Order Cow being swapped into USDC and streamed https://gnosisscan.io/address/0xdc541fc451c34f8a4ff5f3e21f8f7af224b912cf#tokentxns Curve being swapped into USDC and streamed https://gnosisscan.io/tx/0x13582ff822cd62065ee7305b76b5c8f3dd1999f8a298b9f3d19843daaec19d5e

How it's Made

We're utilizing Cowswap's latest features—programmatic orders and hooks—for this project. Programmatic orders enable the setting of conditional orders for streams, while post-hooks are used to update the state of a specified receiver. Besides Cowswap contracts, we utilized a standard stack comprising Foundry, Hardhat, Remix, and Gnosis for contract development. For the UI, we used React, Tailwind CSS, Bit, Wagmi, TypeScript, and Vite.

background image mobile

Join the mailing list

Get the latest news and updates