Jerry Finance, a cutting-edge Web3 payroll service, unifies FIAT and crypto salary payments while offering employees flexible payment options and frictionless onboarding through non-custodial smart contract accounts created by employers.
Jerry Finance is a visionary platform that transforms payroll management by harnessing the power of Web3 technology. Our groundbreaking solution seamlessly integrates FIAT and crypto salary payments, addressing the pain points of traditional payroll systems and paving the way for a more efficient and flexible process. With Jerry Finance, employers can easily onboard employees into the crypto ecosystem by creating non-custodial smart contract accounts on their behalf. This frictionless onboarding process eliminates the complexities and barriers often associated with crypto adoption. Our platform empowers employees with unparalleled payment freedom, allowing them to choose from various payment methods such as bank transfers, crypto wallets, or streamed salaries. Moreover, they can select their preferred currency or tokens, providing a personalized payment experience. Jerry Finance is designed to be user-friendly and familiar, enabling employees to access their accounts using their corporate email addresses. This intuitive approach ensures a smooth transition for users, bridging the gap between traditional and decentralized systems. We recognize the importance of organization and efficiency in payroll management. That's why Jerry Finance features ENS company subdomains, streamlining employee contract accounts and payment processes. Additionally, our bulk scheduled payments functionality saves time and reduces gas costs, making payroll management more efficient and cost-effective. By revolutionizing payroll management with Web3 innovation, Jerry Finance fosters trust and growth in the digital era. Our platform enables businesses to adapt to the ever-evolving financial landscape, offering a robust, flexible, and future-proof solution. Experience the transformative power of Jerry Finance and redefine your payroll management today.
On the smart contract side, we focused on the user story for the payment recipient. Specifically, the recipients will use AA smart contract wallets powered by Safe Wallet so the payroll service has unified integration surface. Because AA makes wallet programmable, recipients retain the freedom on what they would like to do whenever payment is received. For example, they could hook it up with Monerium to automatically offramp it to a bank account.
For this hackathon, we implemented an automatic swap function so that user could receive any payment in any cryptocurrency of their choice by piping the payment through UniswapV3. We implemented the Autoswap Module, which allows the wallet owner to set desired tokens and source tokens for swapping. The module utilizes execTransactionFromModule
function provided by the Safe Wallet to bypass its own security controls and execute token swaps via the Uniswap V3 Router.
npx hardhat run scripts/deploy.ts --network polygon
setDesiredToken()
from the Safe wallet.setSourceToken()
from the Safe wallet.
e.g. https://app.safe.global/matic:0x04A55848D38EDec988A6F2287B8E00718E14ab14/transactions/tx?id=multisig_0x04A55848D38EDec988A6F2287B8E00718E14ab14_0x43fdaa9d4e9c81826a977d877ee73f159e0209f9857ad500bb68f332cfe3c590unsetSourceToken()
from the Safe wallet.Whenever an allowlisted source token is received, anyone could swap them into desired token by
executeAutoswap()
, providing the Safe address, token to swap, and the amount to swap.npx hardhat run scripts/autoswap.ts --network polygon
e.g. https://polygonscan.com/tx/0x2842461e19f4c84203e760b723abe91536ba5f2e8ec9075445cdc0419374c770 In the context payroll service, the payroll administrator could push this transaction automatically as a contract with their payee. It is also easy to set up relayer / MEV incentives such that an external party will be motivated to facilitate these transactions.
In fact, it is very much in company's interest to use this set up instead of company actively swapping the tokens before sending to payees. That is because company would have incur taxable event and additional account burden if the settlement currency hits company's book. In this setup, the company's payment currency first lands in user's wallet and company is simply facilitating non-custodial blockchain interactions as approved by the user.
We have used NuxtJS v3 with Vuetify 3 for the webdevelopment. To implement the registration/login features we have used Safe Auth Kit together with Web3Auth for the login providers.
jerryfi
folder in the repository. yarn install
to install all the dependencies yarn dev
to run the server in your local machine