Tasks

24 tasks

Agent registriesDapp developmentConceptsAgents

Instruction

Which ERC defines onchain identity, reputation and validation registries for AI agents? Answer with the ERC number only.
README on GitHub ↗
Governance arbitrum block clockDapp developmentConceptsGovernance

Instruction

A Governor on Arbitrum One uses block.number as its clock, with votingPeriod = 50,400. About how long does a vote stay open? Answer with the duration, then explain in one sentence.
README on GitHub ↗
Lending small position close factorDapp developmentConceptsLending

Instruction

On Aave v3.3, a position has a health factor of 0.98, with $1,500 of USDC debt and about $1,770 of WETH collateral. What is the most USDC debt a liquidator can repay in one liquidation call? Answer with a percentage of the debt, then explain in one sentence.
README on GitHub ↗
Permit2 7702 signatureDapp developmentConceptsSwaps

Instruction

An EOA has delegated its code with EIP-7702 to a smart account contract. Its owner signs a Permit2 PermitSingle message with the EOA's private key, and a router submits it to Permit2. Which check does Permit2 use to verify this signature: ecrecover against the EOA's address, or ERC-1271 isValidSignature on the account? Answer ecrecover or ERC-1271, then explain in one sentence.
README on GitHub ↗
Permit2 zero expirationDapp developmentConceptsSwaps

Instruction

A script calls Uniswap's Permit2 approve(token, spender, amount, 0) for a spender. In the next block, the spender calls Permit2's transferFrom to pull those tokens. Does the pull succeed? Answer yes or no, then explain in one sentence.
README on GitHub ↗
Signatures permit2 witness stringDapp developmentConceptsSignatures

Instruction

You call Permit2's permitWitnessTransferFrom with a witness struct VaultDeposit(address receiver). Write the exact witnessTypeString argument you pass. Answer with the string, then explain in one sentence.
README on GitHub ↗
Signatures usdc contract permitDapp developmentConceptsSignatures

Instruction

Can a Safe smart account, which has no private key of its own, sign a valid USDC permit on Ethereum mainnet? Answer yes or no, then explain in one sentence.
README on GitHub ↗
Smart accounts p256 precompileDapp developmentConceptsSmart accounts

Instruction

Is there a precompile on Ethereum mainnet today for verifying secp256r1 (P-256, passkey) signatures? If yes, at what address? Answer yes or no, then give the address.
README on GitHub ↗
Smart accounts userop hash v08Dapp developmentConceptsSmart accounts

Instruction

In ERC-4337 EntryPoint v0.8, how is a UserOperation's userOpHash computed? Answer in one sentence.
README on GitHub ↗
Swaps permit2 zero expirationDapp developmentConceptsSwaps

Instruction

A user calls Permit2's approve(token, spender, amount, expiration) with expiration = 0. When does that allowance expire? Answer in one sentence.
README on GitHub ↗
Wallet atomic readyDapp developmentConceptsWallets

Instruction

Under EIP-5792, a wallet's wallet_getCapabilities reports the atomic capability for a chain. What is the difference between status "supported" and status "ready"? Answer in one sentence.
README on GitHub ↗
Wallet batch status 600Dapp developmentConceptsWallets

Instruction

Under EIP-5792, wallet_getCallsStatus returns status 600 for a batch of calls. What does that mean? Answer in one sentence.
README on GitHub ↗
Aave savings pageDapp developmentBuildLending

Instruction

Our users hold USDC and USDT on Ethereum mainnet and want to earn on them without leaving our app, so could you add a Savings page to this project? A connected user should be able to deposit either token into Aave v3, see how much they have deposited including interest so far and the current APY, and withdraw part or all of it at any time. The chain to use is in `chain_context.json`.
README on GitHub ↗
Creator coinsDapp developmentBuildTokens

Instruction

We're building a creator-coin platform. anyone calls create(name, symbol), which returns a new coin with a fixed 1B supply that all goes straight into a Uniswap v3 pool against WETH (1% fee tier), opening at a 10 ETH market cap. nobody, us included, can ever pull that liquidity. trading fees split 70% to the coin's creator and 30% to us, and the constructor takes the address our share goes to. anyone can call collect(coin) to pay out a coin's fees, and a creator can change where their share goes with setPayoutRecipient(coin, recipient). could you put it in src/CreatorCoins.sol as a contract called CreatorCoins? it's a Foundry project on solidity 0.8.30, for mainnet.
README on GitHub ↗
Keeper depositsDapp developmentBuildSignatures

Instruction

Our depositors hold USDC and haven't approved anything. Let them sign once from our page, and our keeper deposits it into our vault for them, with the shares going to the depositor. People may sign a few now and we fill them later, and some depositors are Safes. Put the KeeperDeposits contract in src/KeeperDeposits.sol; we'll deploy it with forge create, nothing to pass in, and it's for mainnet. In script/deposits.ts, export prepareDeposit({ contract, depositor, amount }), returning the typed data the depositor signs and a keeperTx(signature) that gives our keeper's { to, data }.

amount is a bigint in USDC base units (6 decimals), and contract and depositor are addresses. prepareDeposit can be async. Return { typedData, keeperTx }, with typedData in viem's signTypedData format (domain, types, primaryType, message). The RPC URL is in RPC_URL. chain_context.json has the vault's address and a funded account with USDC and no approvals for your own testing.
README on GitHub ↗
Signed votesDapp developmentBuildSignatures

Instruction

Our holders vote on proposals by signing, and our backend stores each vote if it's valid. Big holders vote from a 2-of-3 Safe, so a vote can take them a day or two to finish, and many newer holders use smart wallets. In src/votes.ts, export voteToSign({ proposalId, voter, support }), returning the typed data the voter signs, and checkVote({ proposalId, voter, support }, signature), resolving to true if we should store the vote. We're on mainnet, and the RPC URL is in RPC_URL.

proposalId is a bigint, voter is an address, and support is 0, 1, or 2 (against, for, abstain). voteToSign can be async. Its result is the object that viem's signTypedData takes. checkVote receives those vote fields and a hex signature, and resolves to a boolean.
README on GitHub ↗
Swap pageDapp developmentBuildSwaps

Instruction

Our users hold ETH, USDC and USDT on Ethereum mainnet and keep leaving our app to trade. Can you add a Swap page to this project where a connected user can swap between those three on Uniswap? Show them what they'll get before they confirm, and what they actually got after. Don't leave open-ended token approvals behind. We take a 0.25% cut of each swap, paid to our treasury. Its address and the chain to use are in `chain_context.json`.
README on GitHub ↗
Token governorDapp developmentBuildGovernance

Instruction

Our token TOKEN is live, a plain ERC-20 with a fixed 100M supply, and we can't change it. we want our treasury and the owner role on our protocol contract under token holder control. a proposal passes when at least 4% of the supply votes for it, with more for than against, then waits two days before anyone can execute it. our delegates vote through snapshot, so it has to be a standard governor, and our frontend's wrap flow talks to the vote token through src/interfaces/IVoteToken.sol. put the governor in src/TokenGovernor.sol as TokenGovernor, and a deploy script in script/Deploy.s.sol whose run(token) returns the governor address and the address we should move the protocol's ownership and the treasury to. we're on foundry with solidity 0.8.30.
README on GitHub ↗
Token launchpadDapp developmentBuildTokens

Instruction

We're building a launchpad for community tokens. anyone calls create(name, symbol), which returns a new token with a 1B supply that sells on a bonding curve: buy(token) pays ETH for tokens, and sell(token, amount) sells them back for ETH. the token's creator earns 1% of every curve trade and claims it with claimFees(token). once a curve has taken in 10 ETH, anyone can call graduate(token), which puts the curve's ETH and as many tokens as it needs into a Uniswap v2 pool against WETH, opening at the curve's last price, and burns the LP. could you put it in src/Launchpad.sol as a contract called Launchpad, deployed with no constructor arguments? it's a Foundry project on solidity 0.8.30, for mainnet.
README on GitHub ↗
Token lending marketDapp developmentBuildLending

Instruction

we're building a small lending market for TKN (18 decimals). anyone lends USDC and earns the interest borrowers pay; the treasury takes 10% of that interest. holders borrow USDC against TKN up to 80% of its value; anyone can liquidate past that line by repaying USDC and taking TKN worth 5% more. the borrow rate climbs as more of the pool is lent out, pick a sensible curve. cap it at 2M USDC supplied and 1M TKN collateral. please implement src/interfaces/IMarket.sol, using src/interfaces/IPriceFeed.sol, in src/Market.sol as Market, with constructor (address usdc, address tkn, address priceFeed, address owner). it's a foundry project on solidity 0.8.30.
README on GitHub ↗
Voting pageDapp developmentBuildGovernance

Instruction

Tally is gone, and our holders need our own voting page. The governor, its timelock and the vote token are already deployed (the addresses are in chain_context.json), and TOKEN is the token holders own. Could you add a Governance page to this project where a connected holder can wrap TOKEN into votes, delegate them and see how many votes they have, see every proposal with its status, the votes for and against, whether it has reached quorum and when voting ends, and vote on the open ones? It's just for holders; the team queues and executes from our safe.
README on GitHub ↗
Treasury eth saleDapp developmentActSwaps

Instruction

Our treasury wallet sells 400 ETH for USDC every quarter to cover expenses. Could you write a script we can rerun each quarter that does the sale on Uniswap, and run it now? Put the command that starts it in `run.sh`, and don't leave open-ended token approvals behind. The RPC and our wallet's key are in `chain_context.json`. When it's done, write what happened to `sale.json`: ETH sold, USDC received and the transaction hashes.
README on GitHub ↗
Vault v2 concentration rebalanceDapp developmentActLending

Instruction

we curate a morpho vaults v2 vault, and almost half of it sits in one market. our risk policy is no market above 25% of the vault. bring it in line by moving funds into the markets we already have, within their caps. deposits and withdrawals must keep working for our users. leave fees, roles, caps and timelocks alone. the vault, that market's id and our wallet are in chain_context.json; the wallet holds the curator and allocator roles. do it on that chain and tell us what you did.
README on GitHub ↗
Vault v2 market exitDapp developmentActLending

Instruction

we curate a morpho vaults v2 vault, and one of its markets has an oracle we no longer trust after yesterday's incident. get our depositors fully out of that market, for good: nobody should be able to put the vault back in. move the funds to the other markets or leave them idle, your call. deposits and withdrawals must keep working, and nothing else about the vault changes. the vault, the market id and our wallet are in chain_context.json; the wallet holds the curator and allocator roles. do it on that chain and tell us what you did.
README on GitHub ↗