Skip to content

Latest commit

 

History

History
66 lines (50 loc) · 3.15 KB

README.md

File metadata and controls

66 lines (50 loc) · 3.15 KB

Werk Contracts

Smart contracts built for the Werk platform.

Tests Built with Foundry Follow on X Join Discord

Logo

Werk aims to offer a decentralised platform for freelancers and small companies to run all their operations leveraging the power of web3 as an organisation.

Architecture

Multiple Containers can be deployed, allowing ERC-20 and native tokens (ETH) to be deposited, acting as a user vault. At the same time, a Container can execute arbitrary code on an unlimited number of Modules. This ability enhances the Werk protocol with a modular architecture, providing an opportunity to create an open market of Modules where external players can create and integrate their own use-cases into the protocol.

A module must first be allowlisted through the ModuleKeeper before being made publicly available to Werk users. Currently, due to the high-security risks, only the Werk team can add modules to or remove them from the allowlist.

Once a module is allowlisted, it can be enabled via the enableModule() method available on any Container.

Invoice Module

Our first available module is called InvoiceModule. This module enables users to create on-chain invoices that can be paid using various methods, such as transfer, linear or tranched stream, and have multiple payment assets including any ERC-20 token and native ETH.

The InvoiceModule relies on the Sablier V2 protocol for stream creation and management.

Contribute

Anyone is welcomed to contribute either by creating & proposing a new module or simply opening an issue, starting a discussion or submitting a PR.

If you want to propose a new module, fork this repository and create a new folder inside the src/modules/[module-name] folder following the src/modules/invoice-module module structure. Then, create a new PR with the module logic and a detailed description of its capabilities.

License

The primary license for Werk contracts is the GNU General Public License v3.0 (GPL-3.0-or-later), see LICENSE. However, many files in test/ are unlicensed.