Fundraising Evolved - Control, Transparency, and Real-World Results
ZUNI tackles the limitations of traditional fundraising platforms by offering a decentralized solution with a unique twist: real-world credential verification.
Here's how ZUNI makes fundraising easier and more impactful:
Control who gets rewarded: Define clear criteria for who can claim tokens from your "smart vault." This ensures funds go towards your specific goals. Verified contributions: Integrate with Ethereum Attestation Service to ensure contributions and rewards are based on verifiable credentials like licenses, certificates, or even proof of identity. Transparency and efficiency: Track all contributions and rewards securely on the ZUNI vault. This builds trust and simplifies the process for both organizers and participants.
zuni-smart-vault/
│
├── contract/
│ ├── src/
│ │ ├── interfaces/
│ │ │ ├── ISmartVault.sol
│ │ ├── libraries/
│ │ │ ├── Parser.sol
│ │ ├── Common.sol
│ │ ├── SmartVault.sol
│ │ ├── VaultResolver.sol
│ ├── scripts/
│ ├── test/
│ ├── foundry.toml
│ ├── package.json
│ ├── ...
│
├── ui/
│ ├── app/
│ ├── components/
│ │ ├── account
│ │ ├── vault
│ │ ├── shadcn
│ │ ├── ...
│ │
│ ├── constants/
│ ├── hooks/
│ ├── public/
│ ├── stats/
│ ├── types
│ ├── utils/
│ ├── package.json
│ ├── tsconfig.json
│ ├── ...
│
├── README.md
└── package.json
- User Dashboard: View all of vaults.
- Create Vault: Easily create new vaults with customizable parameters.
- Contribute to Vaults: Make contributions to existing vaults.
- Claim Rewards: Claim rewards from vaults.
- Vault Management: Create and manage vaults on the Ethereum blockchain.
- Contribution Tracking: Track contributions and balances for each vault.
- Network:
Base
,Base Sepolia
Contract Address SmartVault 0x365be3e45B591423E5b867A7dE04ccEA67ca67e7
VaultResolver 0x0B4034DdCBfF142c7479591a571A11379114ad9e
- Node.js v18
- Bun
- Foundry
-
Clone the repo
git clone [email protected]:zuni-lab/zuni-smart-vault.git
-
Copy
.env.example
to.env
:cp .env.example .env
-
Add
.env
file with the following content:-
NEXT_PUBLIC_EAS_ADDRESS
: Ethereum Attestation Service address -
NEXT_PUBLIC_SCHEMA_REGISTRY_CONTRACT_ADDRESS
: Schema Registry contract address -
NEXT_PUBLIC_SMART_VAULT_ADDRESS
: Smart Vault contract address -
NEXT_PUBLIC_VAULT_SCHEMA_UUID
: Vault schema UUID on EAS -
NEXT_PUBLIC_WALLET_CONNECT_ENV_ID
: Dynamic Wallet Connect environment ID -
NEXT_PUBLIC_ALCHEMY_API_KEY
: Alchemy API key -
Eg: on Base network
NEXT_PUBLIC_EAS_ADDRESS=0x4200000000000000000000000000000000000021 NEXT_PUBLIC_SCHEMA_REGISTRY_CONTRACT_ADDRESS=0x4200000000000000000000000000000000000020 NEXT_PUBLIC_SMART_VAULT_ADDRESS=0x365be3e45B591423E5b867A7dE04ccEA67ca67e7 NEXT_PUBLIC_VAULT_SCHEMA_UUID=0xed7706fecfa661e98b5c8bd39672fa4e12ad2013bef191f65bab88ad7929a5ea NEXT_PUBLIC_WALLET_CONNECT_ENV_ID=719c2407-cf7c-4350-aec7-f49de1d7bb0c NEXT_PUBLIC_ALCHEMY_API_KEY=_kri18bG3_Mlmbk0h1P53dFZXPgH0AYe
-
- Run:
bun install
for install all packages - Run:
bun dev
for start dev environment - Run:
bun build
for build your project - Run:
bun start
for start your built project - Run:
bun lint
for checking error and fix it
cd contract
bun install
-
Copy
.env.example
to.env
:cp .env.example .env
-
Add
.env
file with the following content:BASE_MAINNET_RPC
: Base Mainnet RPC URLBASE_SEPOLIA_RPC
: Base Sepolia RPC URLAPI_KEY_BASESCAN
: Basescan API key for verifying contractsETH_FROM
: Deployer address
-
Run commands:
source .env forge script script/Deploy.s.sol --rpc-url $BASE_MAINNET_RPC --account <deployer_account> --broadcast --verify
-
Lint contracts:
bun run lint
-
Run tests:
bun run test
We welcome contributions! Please follow these steps to contribute:
- Fork the repository
- Create a new branch (
git checkout -b feature-branch
) - Make your changes
- Commit your changes (
git commit -m 'Add some feature'
) - Push to the branch (git push origin feature-branch)
- Create a new Pull Request
The primary license for ZUNI - Smart Vault contracts is the MIT License, see LICENSE
. However, there are exceptions:
- Many files in
contracts/test/
andcontracts/scripts/
remain unlicensed (as indicated in their SPDX headers).