Skip to content

Venkat5599/Initpay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

InitPay

InitPay

Multi-Chain Crypto Payroll for Global Teams on Initia

Live on Initia Verified Solidity


πŸ“‹ Project Overview

InitPay is a comprehensive payroll platform that enables companies to pay employees across EVM, Move, and Wasm chains in a single transaction. Built on Initia's interwoven architecture, it eliminates bridge risks while providing advanced DeFi features for modern workforce management.

What It Does

  • Batch Payments - Pay 100+ employees in one transaction with 1% fee
  • Payment Streaming - Real-time salary streaming, employees earn per second
  • Lucky Pool Lottery - Team bonus pools with provably fair winner selection
  • Salary Staking - Lock salary to earn 5-30% APY based on lock period
  • Salary NFTs - Tokenize future earnings for instant liquidity
  • P2P Salary Swaps - Trade shifts and salary with colleagues
  • Intent-Based Routing - Natural language payment processing

Key Innovation

Unlike traditional payroll systems (single-chain, slow, expensive), InitPay uses Initia's interwoven architecture for true multi-chain payments without bridge risks.

Traditional Payroll:  Company β†’ Bridge β†’ Wait β†’ Employee (risky, slow)
With InitPay:         Company β†’ Initia β†’ Instant β†’ Employee (safe, fast)

No bridge hacks. No waiting. No complexity.


🌐 Why This Matters for Initia

The Multi-Chain Payroll Problem

The x402 protocol and Initia's interwoven architecture enable seamless cross-chain operations. Payroll is the perfect use case to showcase this capability.

What We Bring to Initia

Benefit Impact
Showcases Interwoven Power First real-world payroll use case demonstrating cross-VM payments
Drives Enterprise Adoption Companies need payroll - massive TAM with viral growth potential
Network Effects More employees = more chains = more liquidity
DeFi Integration Combines payments with staking, NFTs, streaming - full ecosystem showcase

Market Need

  • $500B global payroll market
  • 10M+ crypto-native companies by 2027
  • 3-5% wire transfer fees (we charge 1%)
  • 3-5 days settlement time (we're instant)
  • All of these need multi-chain support that can't be bridged safely

πŸš€ Deployment Information

Live Contracts on Initia MiniEVM Testnet

Contract Address Verified
PayrollDistributor 0xD8B9D7C3b20e2981004dDDb702e41c9A552C5f88 βœ… View Code
IntentSwap 0xD98359F3E80d11703267ff75f03bA4E1B4f7B58d βœ… View Code
PayrollStreamingV2 0x0787e6ebF537664b5a0E8a627f12c4861d54ED44 βœ… View Code
LuckyPool 0x05Ef28B338B1521837Ccb8B4fDb74b2075D7D7F9 βœ… View Code
SalaryStaking 0x5F06943c9E0284a8D6C06963f8201BF8f3700Baf βœ… View Code
SalaryNFT 0xEa6AfEd01C696cF24Db388666902af5dE42Afd57 βœ… View Code
SalarySwap 0x4671D31d6acbef0C76363a437b944375b484A523 βœ… View Code

Network Details

Network:     Initia MiniEVM Testnet
Chain ID:    2124225178762456
RPC URL:     https://jsonrpc-evm-1.anvil.asia-southeast.initia.xyz
Explorer:    https://scan.testnet.initia.xyz/evm-1
Currency:    INIT

Deploy Your Own

# 1. Clone the repository
git clone https://github.com/Venkat5599/Initpay.git
cd Initpay

# 2. Install dependencies
cd contracts
forge install

# 3. Configure environment
cp .env.example .env
# Edit .env with your private key

# 4. Deploy to Initia Testnet
forge script script/Deploy.s.sol:Deploy \
  --rpc-url https://jsonrpc-evm-1.anvil.asia-southeast.initia.xyz \
  --broadcast --legacy

# 5. Deploy feature contracts
forge script script/DeployStreaming.s.sol:DeployStreaming --rpc-url https://jsonrpc-evm-1.anvil.asia-southeast.initia.xyz --broadcast --legacy
forge script script/DeployLuckyPool.s.sol:DeployLuckyPool --rpc-url https://jsonrpc-evm-1.anvil.asia-southeast.initia.xyz --broadcast --legacy
forge script script/DeployStaking.s.sol:DeployStaking --rpc-url https://jsonrpc-evm-1.anvil.asia-southeast.initia.xyz --broadcast --legacy
forge script script/DeployNFT.s.sol:DeployNFT --rpc-url https://jsonrpc-evm-1.anvil.asia-southeast.initia.xyz --broadcast --legacy
forge script script/DeploySwap.s.sol:DeploySwap --rpc-url https://jsonrpc-evm-1.anvil.asia-southeast.initia.xyz --broadcast --legacy

πŸ“– How to Use the Platform

Option 1: Web Interface (Easiest!)

Visit the live demo at https://initpay-frontend.vercel.app

# 1. Connect MetaMask to Initia Testnet
#    - Network: Initia MiniEVM Testnet
#    - RPC: https://jsonrpc-evm-1.anvil.asia-southeast.initia.xyz
#    - Chain ID: 2124225178762456

# 2. Get test INIT from faucet

# 3. Try any feature:
#    - Batch Payments: Pay multiple employees
#    - Payment Streaming: Create real-time salary streams
#    - Lucky Pool: Create lottery pools
#    - Salary Staking: Lock salary for APY
#    - Salary NFTs: Tokenize future earnings
#    - P2P Swaps: Trade shifts with colleagues

Option 2: Direct Contract Interaction

Execute Batch Payment

// Solidity - Pay multiple employees
interface IPayrollDistributor {
    function distributePayroll(
        address[] calldata recipients,
        uint256[] calldata amounts
    ) external payable;
}

IPayrollDistributor payroll = IPayrollDistributor(0xD8B9D7C3b20e2981004dDDb702e41c9A552C5f88);

address[] memory employees = new address[](3);
employees[0] = 0xAlice...;
employees[1] = 0xBob...;
employees[2] = 0xCharlie...;

uint256[] memory salaries = new uint256[](3);
salaries[0] = 1000 ether; // 1000 INIT
salaries[1] = 1500 ether;
salaries[2] = 2000 ether;

payroll.distributePayroll{value: 4500 ether}(employees, salaries);

Create Payment Stream

// Create a stream that pays 1000 INIT over 30 days
interface IPayrollStreaming {
    function createStream(
        address employee,
        uint256 duration,
        string calldata targetChain
    ) external payable returns (bytes32 streamId);
}

IPayrollStreaming streaming = IPayrollStreaming(0x0787e6ebF537664b5a0E8a627f12c4861d54ED44);

bytes32 streamId = streaming.createStream{value: 1000 ether}(
    employeeAddress,
    30 days,
    "initia-evm"
);

// Employee can withdraw earned amount anytime
streaming.withdraw(streamId);

Stake Salary for APY

// Stake 100 INIT for 90 days to earn 12% APY
interface ISalaryStaking {
    function stake(uint256 lockPeriod) external payable;
}

ISalaryStaking staking = ISalaryStaking(0x5F06943c9E0284a8D6C06963f8201BF8f3700Baf);

staking.stake{value: 100 ether}(90 days);

Option 3: JavaScript/TypeScript Integration

import { ethers } from 'ethers';

// Connect to contracts
const PAYROLL_ADDRESS = '0xD8B9D7C3b20e2981004dDDb702e41c9A552C5f88';
const PAYROLL_ABI = [
  'function distributePayroll(address[] recipients, uint256[] amounts) payable',
  'function depositFunds() payable',
];

const provider = new ethers.BrowserProvider(window.ethereum);
const signer = await provider.getSigner();
const payroll = new ethers.Contract(PAYROLL_ADDRESS, PAYROLL_ABI, signer);

// Batch payment
const recipients = ['0xAlice...', '0xBob...'];
const amounts = [
  ethers.parseEther('1000'),
  ethers.parseEther('1500')
];

const tx = await payroll.distributePayroll(recipients, amounts, {
  value: ethers.parseEther('2500')
});
await tx.wait();
console.log('Payroll distributed:', tx.hash);

Contract Functions Reference

Function Description Access
distributePayroll(recipients, amounts) Batch pay multiple employees Anyone
createStream(employee, duration, chain) Create payment stream Anyone
withdraw(streamId) Withdraw earned salary Stream recipient
stake(lockPeriod) Stake salary for APY Anyone
tokenizeSalary(amount, maturityDate) Create salary NFT Anyone
createOffer(requestAmount, description, duration) Create P2P swap offer Anyone
acceptOffer(offerId) Accept swap offer Anyone

πŸ›‘οΈ Feature Details

All features are deployed and functional on Initia testnet.

Feature Description Contract Address
Batch Payments Pay 100+ employees in one transaction. 1% platform fee. 0xD8B9...5f88
Payment Streaming Real-time salary streaming. Employees earn per second, withdraw anytime. 0x0787...ED44
Lucky Pool Team lottery pools. Provably fair winner selection using blockchain randomness. 0x05Ef...D7F9
Salary Staking Lock salary for 30-365 days. Earn 5-30% APY based on lock period. 0x5F06...0Baf
Salary NFTs Tokenize future salary into tradeable NFTs. Get instant liquidity. 0xEa6A...Fd57
P2P Swaps Trade shifts and salary with colleagues. 1% swap fee. 0x4671...A523
Intent Routing Natural language payment processing (coming soon). 0xD983...B58d

Feature Examples

Batch Payment:
  Input:  Pay Alice 1000 INIT, Bob 1500 INIT, Charlie 2000 INIT
  Result: All 3 payments executed in one transaction
  Fee:    45 INIT (1% of 4500 INIT total)

Payment Streaming:
  Input:  Stream 1000 INIT to Alice over 30 days
  Result: Alice earns 0.000385 INIT per second
  Action: Alice can withdraw earned amount anytime

Lucky Pool:
  Input:  10 employees Γ— 10 INIT entry = 100 INIT pot
  Result: One random winner selected on-chain
  Prize:  98 INIT (2% platform fee)

Salary Staking:
  Input:  Stake 100 INIT for 90 days
  Result: Earn 12% APY (12 INIT after 90 days)
  Action: Withdraw anytime (10% penalty if early)

Salary NFT:
  Input:  Tokenize 1000 INIT payable in 30 days
  Result: NFT created, tradeable on marketplace
  Value:  ~980 INIT today (2% time discount)

P2P Swap:
  Input:  Offer Friday shift (500 INIT) for Monday shift (500 INIT)
  Result: Colleague accepts, instant swap
  Fee:    5 INIT (1% of 500 INIT)

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                              USER/COMPANY                                β”‚
β”‚                    (Web App, Mobile, or Direct Call)                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                     β”‚
                                     β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         InitPay Frontend (React)                         β”‚
β”‚                                                                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                 β”‚
β”‚  β”‚ Batch Pay    β”‚  β”‚ Streaming    β”‚  β”‚ Lucky Pool   β”‚                 β”‚
β”‚  β”‚ Dashboard    β”‚  β”‚ Dashboard    β”‚  β”‚ Dashboard    β”‚                 β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜                 β”‚
β”‚         β”‚                  β”‚                  β”‚                         β”‚
β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                         β”‚
β”‚                            β”‚                                            β”‚
β”‚                            β–Ό                                            β”‚
β”‚                   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                   β”‚
β”‚                   β”‚ Wagmi + Ethers  β”‚                                   β”‚
β”‚                   β”‚ (Web3 Layer)    β”‚                                   β”‚
β”‚                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜                                   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      Initia MiniEVM Testnet                              β”‚
β”‚                                                                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚                    PayrollDistributor                             β”‚  β”‚
β”‚  β”‚              0xD8B9D7C3b20e2981004dDDb702e41c9A552C5f88          β”‚  β”‚
β”‚  β”‚                                                                   β”‚  β”‚
β”‚  β”‚  β€’ Batch payments (1% fee)                                       β”‚  β”‚
β”‚  β”‚  β€’ Fund management                                               β”‚  β”‚
β”‚  β”‚  β€’ Employee tracking                                             β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚                   PayrollStreamingV2                              β”‚  β”‚
β”‚  β”‚              0x0787e6ebF537664b5a0E8a627f12c4861d54ED44          β”‚  β”‚
β”‚  β”‚                                                                   β”‚  β”‚
β”‚  β”‚  β€’ Real-time salary streaming                                    β”‚  β”‚
β”‚  β”‚  β€’ Per-second earnings                                           β”‚  β”‚
β”‚  β”‚  β€’ Withdraw anytime                                              β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚                      LuckyPool                                    β”‚  β”‚
β”‚  β”‚              0x05Ef28B338B1521837Ccb8B4fDb74b2075D7D7F9          β”‚  β”‚
β”‚  β”‚                                                                   β”‚  β”‚
β”‚  β”‚  β€’ Lottery pools                                                 β”‚  β”‚
β”‚  β”‚  β€’ Provably fair draws                                           β”‚  β”‚
β”‚  β”‚  β€’ Team bonuses                                                  β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚                    SalaryStaking                                  β”‚  β”‚
β”‚  β”‚              0x5F06943c9E0284a8D6C06963f8201BF8f3700Baf          β”‚  β”‚
β”‚  β”‚                                                                   β”‚  β”‚
β”‚  β”‚  β€’ Lock salary for APY (5-30%)                                   β”‚  β”‚
β”‚  β”‚  β€’ Time-locked periods                                           β”‚  β”‚
β”‚  β”‚  β€’ Early withdrawal penalty                                      β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚                      SalaryNFT                                    β”‚  β”‚
β”‚  β”‚              0xEa6AfEd01C696cF24Db388666902af5dE42Afd57          β”‚  β”‚
β”‚  β”‚                                                                   β”‚  β”‚
β”‚  β”‚  β€’ Tokenize future salary                                        β”‚  β”‚
β”‚  β”‚  β€’ Tradeable NFTs                                                β”‚  β”‚
β”‚  β”‚  β€’ Instant liquidity                                             β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚                      SalarySwap                                   β”‚  β”‚
β”‚  β”‚              0x4671D31d6acbef0C76363a437b944375b484A523          β”‚  β”‚
β”‚  β”‚                                                                   β”‚  β”‚
β”‚  β”‚  β€’ P2P shift trading                                             β”‚  β”‚
β”‚  β”‚  β€’ Salary swaps                                                  β”‚  β”‚
β”‚  β”‚  β€’ Flexible work                                                 β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

οΏ½ Project Structure

Initpay/
β”œβ”€β”€ contracts/              # Solidity smart contracts
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ PayrollDistributor.sol
β”‚   β”‚   β”œβ”€β”€ PayrollStreamingV2.sol
β”‚   β”‚   β”œβ”€β”€ LuckyPool.sol
β”‚   β”‚   β”œβ”€β”€ SalaryStaking.sol
β”‚   β”‚   β”œβ”€β”€ SalaryNFT.sol
β”‚   β”‚   └── SalarySwap.sol
β”‚   └── script/             # Deployment scripts
β”œβ”€β”€ frontend/               # Next.js + React app
β”‚   β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ components/
β”‚   └── lib/
β”œβ”€β”€ backend/                # Backend services (optional)
└── docs/                   # Documentation

πŸ“š Documentation


πŸ–₯️ Run the Frontend Demo

# 1. Clone and install
git clone https://github.com/Venkat5599/Initpay.git
cd Initpay/frontend
npm install --legacy-peer-deps

# 2. Start development server
npm run dev

# 3. Open http://localhost:3000

# 4. Connect MetaMask to Initia Testnet
#    - Network: Initia MiniEVM
#    - RPC: https://jsonrpc-evm-1.anvil.asia-southeast.initia.xyz
#    - Chain ID: 2124225178762456

# 5. Get test INIT from faucet

# 6. Try all 7 features!

πŸ§ͺ Testing

# Run full test suite
cd contracts
forge test

# Test specific contract
forge test --match-contract PayrollDistributor

# Test with gas reporting
forge test --gas-report

# Deploy and test on testnet
forge script script/demo-full-flow.s.sol \
  --rpc-url https://jsonrpc-evm-1.anvil.asia-southeast.initia.xyz \
  --broadcast --legacy

πŸ”— Links

Resource URL
Live Demo https://initpay-frontend.vercel.app
GitHub https://github.com/Venkat5599/Initpay
Explorer View Contracts
Initia Docs docs.initia.xyz

πŸ› οΈ Tech Stack

  • Smart Contracts: Solidity 0.8.20
  • Development: Foundry, Forge, Cast
  • Frontend: Next.js 15, React 19, TypeScript
  • Styling: Tailwind CSS, shadcn/ui
  • Web3: Wagmi, Viem, Ethers.js
  • Blockchain: Initia MiniEVM (Testnet)
  • Deployment: Vercel

πŸ“ˆ Roadmap

  • Core contracts deployed & verified
  • Batch payments working
  • Payment streaming
  • Lucky Pool lottery
  • Salary staking
  • Salary NFTs
  • P2P swaps
  • Frontend dashboard
  • Documentation
  • Live deployment on Vercel πŸŽ‰
  • Security audit
  • Mainnet deployment
  • Multi-token support (ERC20)
  • Mobile app
  • API for integrations

Built for Initia INITIATE Hackathon 2026 πŸ†

Track: DeFi

Revolutionizing Crypto Payroll on Initia

About

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors