One token. Every chain. All the yield.
PolyLiquid bundles stETH + rETH + sAVAX into a single ERC-4626 vault token (PLY), auto-rebalances with Chainlink oracles, and glides across chains through Chainlink CCIP.
Pain-point | Details |
---|---|
Fragmented liquid-staking tokens | Users juggle multiple LSTs, each with its own discount/premium and UI. |
Risky cross-chain moves | Traditional bridges remain the #1 hack vector and require clunky wrap → bridge → unwrap flows. |
Manual yield management | APRs shift minute-to-minute; harvesting and re-staking by hand wastes gas and leaves yield on the table. |
Opaque collateral | Holders rarely know if their LSTs are 100 % backed at any given block. |
How PolyLiquid fixes it | What we use |
---|---|
Single basket token (PLY) holding stETH, rETH, sAVAX | ERC-4626 vault |
Always-on auto-compounding toward the best APR | Chainlink Data Streams + Automation |
One-click, audited bridging | Chainlink CCIP router |
Live collateral checks | Chainlink Proof-of-Reserves |
Hedging & no-loss lottery for extra yield and fun | Polymarket + Chainlink VRF |
Architecture: Vault ↔ Data Streams ↔ Automation ↔ CCIP ↔ Polymarket.
💡 | Feature |
---|---|
Unified staking basket | Deposit once; hold PLY instead of three separate LSTs. |
Real-time yield chasing | Re-weights every hour to whichever LST outperforms. |
Secure cross-chain mobility | Seamless Fuji ⇄ Sepolia ⇄ Base transfers with CCIP. |
Proof-backed assurance | Live “100 %-backed” badge on every network. |
Interactive yield games | Free lottery tickets funded by weekly vault yield. |
Dashboard | Deposit Flow | CCIP Modal |
---|---|---|
![]() |
![]() |
![]() |
Node >= 16 # 🟢 test on v18
npm > 8 # or yarn / pnpm
1 — Clone & Install
git clone https://github.com/your-org/polyliquid.git
cd polyliquid
npm install
2 — Configure .env
PRIVATE_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
SEPOLIA_RPC_URL=https://1rpc.io/sepolia
FUJI_RPC_URL=https://api.avax-test.network/ext/bc/C/rpc
BASE_SEPOLIA_RPC_URL=https://sepolia.base.org
ETHERSCAN_API_KEY=
SNOWTRACE_API_KEY=
BASESCAN_API_KEY=
AUTOMATION_UPKEEP_ID=
VRF_SUBSCRIPTION_ID=
FUNCTIONS_SUB_ID=
3 — Compile • Test • Deploy
npm run compile
npm run test
npm run deploy:fuji # or :sepolia / :base-sepolia
⸻
🌐 Networks
Chain Chain ID Deployed PLY
Avalanche Fuji 43113 0x…
Ethereum Sepolia 11155111 0x…
Base Sepolia 84532 0x…
⸻
📁 Directory Layout
polyliquid/
├── contracts/ # Vault, Router, Lottery, Oracles
├── scripts/ # Deploy & helper scripts
├── test/ # Hardhat + chai tests
├── ignition/ # Hardhat Ignition modules
├── app/ # Next.js + wagmi dashboard
└── hardhat.config.ts
⸻
🛠 Common Scripts
npm run deploy:fuji # Deploy to Fuji
npm run verify:fuji # Verify on Snowtrace
npm run node # Local Hardhat node
npm run size # Contract byte-size checker
⸻
🤝 Contributing
Pull requests welcome—please add tests and run npm run lint before submitting.
📜 License
MIT © 2025 PolyLiquid contributors
## 🛡️ Security
- Never commit your `.env` file or private keys to version control
- Use test networks for development and testing
- Consider using hardware wallets for mainnet deployments