About the project
The problem
In Bolivia, people save in informal group funds — pasanakus. It works socially but pays nothing, and the money is only as safe as whoever holds it.
Crypto could pay yield on exactly that behavior. Onboarding kills it: a new user opens a wallet, a friend sends them USD₮, and then they are stuck. They cannot move their own money because gas is paid in a second asset they do not have, cannot buy locally, and were never told about. That is where every non-crypto user stops.
What Chanchito does
You create a chanchito — a piggy bank with a goal, a term and a number of seats. Friends join and deposit USD₮.
The money sits still until the last seat is taken. Only then does the term start and the funds go to yield. This is deliberate: nobody should earn a different return because they happened to join first.
At maturity everyone withdraws principal plus their share of the yield, proportional to what they put in.
Leave early and you get 100% of your principal back — you only forfeit the yield you had earned. That forfeited yield is split in equal parts among the people who stayed, not proportionally: the person who put in $10 and stayed gets the same as the one who put in $500.
Why WDK gasless is the product, not an optimization
We built the wallet layer twice. The first version used a standard EVM wallet and it was unusable for our actual user: every action demanded ETH.
With @tetherto/wdk-wallet-evm-7702-gasless:
- The fee is paid in USD₮, the same token being saved. One balance, one
mental model.
- `approve` + `join` travel as a single operation via EIP-7702 batching, so
the user signs once instead of twice.
- The address does not change. 7702 delegates an existing account instead
of creating a smart-contract wallet, so a wallet that already received funds keeps working.
Verified on Sepolia: after a deposit, the account's ETH balance was unchanged. The user never touched ETH.
A real transaction from the app, showing three movements under one hash:
| to | amount | what |
|---|---|---|
| recipient | $2.0000 | the transfer |
| treasury | $0.0500 | Chanchito's service fee |
| paymaster | $0.5810 | gas, paid in USD₮ |
What is actually on-chain
PoolVault— share-based accounting (ERC-4626-style with a virtual offset
against inflation attacks). Activates on fill, distributes at maturity, handles early exit with dual accounting so the equal-parts bonus never mixes with proportional yield.
SocialRegistry— usernames and friendships, so people send money to
@rodri instead of 42 hex characters.
AaveAdapter— reads the live deposit rate from Aave v3 with
getReserveData, converting from RAY to basis points.
- Every product rule has a test in the contracts repo.
Honest limitations
- Runs on Sepolia. Not audited, not mainnet.
- The Aave adapter works but the demo does not use it. Aave's Sepolia
stablecoin reserves are over their supply cap, so supply() reverts. We verified the adapter against LINK, then deployed a mock adapter reporting 4.5% — which is close to what Aave actually pays on mainnet (3.30% for USD₮, read live while writing this).
- The $1 per completed chanchito fee is designed and documented but not yet
deployed. It has to be deducted at settlement: charging it in its own transaction would cost more gas than the fee itself.
How Chanchito makes money
| amount | when | |
|---|---|---|
| App usage | $1 per chanchito | at settlement, on maturity |
| Transfers | 0.25%, min $0.05, max $1 | on each send |
| Early exit | 10% of forfeited yield | only if someone leaves |
The transfer fee is a flat percentage with a floor and a cap, not a tiered schedule. A hard tier breaks itself: if sends under $1,000 paid 0.05% and above paid 0.5%, sending $999 twice would cost ten times less than sending $1,998 once. With a floor and a cap the curve is continuous and splitting a payment never helps.
The send screen shows all three lines before signing — amount, Chanchito's fee, and network gas. Showing only our own fee would mean more leaves the wallet than we announced.
Stack
Expo SDK 57 / React Native 0.86, NativeWind, TanStack Query, Zustand. Solidity with Hardhat 3 + viem. WDK gasless over a Candide bundler and paymaster on Sepolia.
##GitHub
App: https://github.com/ItzRodri/chanchito-reactnative-app Smart Contracts : https://github.com/ItzRodri/chanchito-hardhat-contracts Web: https://github.com/MauriVC/chanchito / https://chanchito-five.vercel.app/
We have 2 videos with the same explications sorry one its with a minidemo and this is only with explication of the project https://www.youtube.com/watch?v=ScvWQrY1eD8
Hacki