What does it cost? Less than $0.05 in USDC covers everything. Each step has a network fee of about a quarter of a cent, and the 0.01 USDC you deposit comes back to you.
Wallet shows a warning? Is this safe?
Open Quest is brand new and lives on a free GitHub address, so automatic wallet scanners sometimes flag it until it has a history. That is a guess by a machine, not a finding. Here is exactly what this page can ask your wallet to do, and nothing else:
- Join: one call to
join(). - Deposit: allow exactly 0.01 USDC (never an unlimited amount), then deposit it. You can take it back at any time.
- Withdraw, claim the badge, register a quest: one call each.
It never asks you to sign a message, never asks for your recovery phrase, and your wallet shows every transaction before you confirm it. Don't take our word for it: read the source code, the security notes, or check the contracts on the explorer: . You can also run this page yourself from the repository.
Connect your wallet to begin.
The path
Community quests
Anyone can add a quest to the registry. These are quests written by other people. They are shown here for you to try, and they never change your badge.
Add your own quest
A quest is any contract that can answer one question: "has this wallet done it?" Write one, register it, and every app that reads the registry can show it. No permission needed. Read the builder guide.
// 1. Write a quest: one function that says "has this wallet done it?"
contract HolderQuest is IQuest {
IERC20Balance public immutable token;
uint256 public immutable minBalance;
constructor(IERC20Balance t, uint256 m) { token = t; minBalance = m; }
function check(address user) external view returns (bool) {
return token.balanceOf(user) >= minBalance;
}
}
// 2. Register it. Anyone can.
registry.registerQuest(
address(quest), "Holder quest", "Hold at least 1 USDC.");
Register a quest
Already deployed your quest? Register it here. This sends one transaction from your wallet (about a third of a cent). It is public and permanent, so check your contract first.