stakr-protocol
Skill17 starsChanged 5 months agoMITView on GitHub
Interact with the Stakr protocol — ERC-4626 vaults with multi-reward staking. Use when the user or an agent needs to work with Stakr vaults, add or modify rewards (addRewardToken, addRewards, modifyRewardToken, modifyReward), create or manage an "agent vault" or "own vault", fund incentive programs, configure reward schedules, or integrate Stakr in scripts or tooling. Prefer this skill whenever Stakr, StakrVault, rewards, staking, or vault ownership is mentioned.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- BankrBot/openclaw-skillsword for word, first seen Oct 8, 2026
- BankrBot/skillsword for word, first seen Apr 28, 2026
Other versions2 projects use a version of this.
Word for word · 2
- BankrBot/openclaw-skills★ 1.2k100% same
- BankrBot/skills★ 1.2k100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository84 other files it gives its agents.
- AGENTS.mdAGENTS.md
- skills/AGENTS.mdAGENTS.md
- .cursor/rules/codegraph.mdcCursor rule
- 0xworkSkill
- aeon-autoresearchSkill
- aeon-deal-flowSkill
- aeon-deep-researchSkill
- aeon-defi-monitorSkill
- aeon-defi-overviewSkill
- aeon-distribute-tokensSkill
- aeon-hacker-news-digestSkill
- aeon-huggingface-trendingSkill
- aeon-last30Skill
- aeon-monitor-kalshiSkill
- aeon-monitor-polymarketSkill
- aeon-monitor-runnersSkill
- aeon-narrative-trackerSkill
- aeon-on-chain-monitorSkill
- aeon-paper-pickSkill
- aeon-reg-monitorSkill
- aeon-rss-digestSkill
- aeon-skill-evalsSkill
- aeon-skill-repairSkill
- aeon-skill-security-scanSkill
- aeon-token-moversSkill
- aeon-token-pickSkill
- aeon-unlock-monitorSkill
- aeon-vuln-scannerSkill
- agenticbetsSkill
- agent-wormholeSkill
- alchemySkill
- bankr-shopifySkill
- bankrSkill
- token-scam-analysisSkill
- twitter-agentSkill
- baseSkill
- blueagent-x402Skill
- botchanSkill
- botcoin-minerSkill
- capacitrSkill
- cattownSkill
- checkrSkill
- clankerSkill
- codegridSkill
- darksol-random-oracleSkill
- endaomentSkill
- ens-primary-nameSkill
- erc-8004Skill
- gem-minerSkill
- get-api-docsSkill
- gitlawbSkill
- helixaSkill
- hydrexSkill
- litcoin-minerSkill
- megapotSkill
- moltycashSkill
- nexusSkill
- neynarSkill
- nookplotSkill
- onchainkitSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 8 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 19
When an agent is said to have its "own vault", it means: the agent (or a controlled EOA/contract) is the vault owner, so it can call …
- Distinctive: line 29
Purpose: Start a new reward program for a given ERC-20 token.
- Distinctive: line 37
Limits: No duplicate reward token.
- Distinctive: line 39
Use this when the agent wants to create a new reward (e.g.
- Distinctive: line 43
Purpose: Add more amount and/or extend (or reschedule) an existing reward.
- Very specific: line 50
If the reward has not yet ended (currentTime <= reward.settings.endTime): you can only extend endTime (and add more amount).
- Very specific: line 51
If the reward has ended (currentTime > reward.settings.endTime): you can set a new window (startTime, endTime) and add amount.
- Distinctive: line 54
Use this when the agent wants to top up an existing reward or extend the distribution period (or reschedule after it has ended).
- Distinctive: line 60
Ensure the vault has been created via the factory and the agent (or its controlled address) is the vault owner to call these.
- Distinctive: line 66
Use a natural-language Bankr agent prompt:
- Very specific: line 84
Pattern: Call addRewardToken once to start a reward (short amount if desired).
- Distinctive: line 88
Use streaming when the agent wants to fund incentives on an ongoing basis (e.g.
- Very specific: line 102
Use the returned vault address for all subsequent calls (addRewardToken, modifyRewardToken, etc.).
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Stakr Protocol — Agent Overview
This skill gives agents the context to interact with the Stakr protocol: ERC-4626 tokenized vaults with multi-reward staking for any ERC-20 token. Use it when building integrations, scripts, or tooling that create vaults, add rewards, modify reward schedules, or let an agent operate its "own" vault.
Protocol at a Glance
- StakrVault: Single-asset ERC-4626 vault. Users deposit underlying, get shares; they can lock shares to earn multiple reward tokens over configurable windows.
- StakrVaultFactory: Deploys vaults and holds protocol fee configuration. One factory per chain.
- Rewards: Up to 25 reward tokens per vault. Each reward has
startTime,endTime, and totalamount. Distribution is linear over the window; logic is Masterchef-style (accumulated rewards per share). - Ownership: A vault can have an
owner(address that can add/modify rewards) oraddress(0)for permissionless reward addition.
When an agent is said to have its "own vault", it means: the agent (or a controlled EOA/contract) is the vault owner, so it can call addRewardToken and modifyRewardToken to fund and adjust rewards without third-party permission.
Emphasis: Adding and Modifying Rewards (Agent-Owned Vaults)
Agents that operate their own vault will use these two functions most:
1. addRewardToken(token, amount, settings)
Purpose: Start a new reward program for a given ERC-20 token.
- Caller: Vault owner (or anyone if
owner() == address(0)). - Parameters:
token: ERC-20 reward token address. Cannot be the vault’s share tokenaddress(vault).amount: Total amount oftokento distribute. Tokens are pulled frommsg.sender; protocol may take a fee (see factoryfeeOnAddReward).settings:Settings{ startTime, endTime }. Distribution is linear fromstartTimetoendTime; both must be in the future andstartTime < endTime.
- Effects: Registers the reward, pulls tokens (minus fee) into the vault, and emits
AddReward. Rewards cannot be withdrawn once added; they can only be modified (extended or topped up) viamodifyRewardToken. - Limits: No duplicate reward token; vault cannot have more than 25 active rewards.
Use this when the agent wants to create a new reward (e.g. launch an incentive program on its vault).
2. modifyRewardToken(token, amount, settings)
Purpose: Add more amount and/or extend (or reschedule) an existing reward.
- Caller: Same as
addRewardToken(vault owner or permissionless if owner is zero). - Parameters:
token: Address of an already active reward token.amount: Additional amount oftokento add. Pulled frommsg.sender; fee may apply. Cannot reduce existing amount.settings:Settings{ startTime, endTime }. Rules:- If the reward has not yet ended (
currentTime <= reward.settings.endTime): you can only extendendTime(and add more amount).startTimecannot be changed. - If the reward has ended (
currentTime > reward.settings.endTime): you can set a new window (startTime,endTime) and add amount;accRewardsPerShareis reset.
- If the reward has not yet ended (
- Effects: Increases
remainingAmount(and total amount) byamount, updatesendTime(and possiblystartTimeif reward had ended), pulls tokens frommsg.sender, and emitsModifyReward.
Use this when the agent wants to top up an existing reward or extend the distribution period (or reschedule after it has ended).
Summary for agents:
- New reward →
addRewardToken(token, amount, settings). - More reward or longer duration (or new window after end) →
modifyRewardToken(token, amount, settings). - Ensure the vault has been created via the factory and the agent (or its controlled address) is the vault owner to call these.
Executing Transactions via Bankr
To submit any Stakr call (vault creation, addRewardToken, modifyRewardToken), first encode calldata, then submit the transaction via the Bankr wallet API.
Use a natural-language Bankr agent prompt:
bankr agent prompt "Call addRewardToken on vault 0x... with token 0x... amount 1000 USDC starting tomorrow for 7 days"Or submit raw encoded calldata directly:
bankr wallet submit --to <vault-address> --data <encoded-calldata> --chain baseFor calldata encoding help, see the vault API reference.
3. Streaming rewards (continuous incentives)
Agents can stream rewards over time instead of funding one large window up front:
- Pattern: Call
addRewardTokenonce to start a reward (short amount if desired). Then callmodifyRewardTokenrepeatedly to add more amount and extendendTime. Each call tops up the reward and pushes the end of the distribution window forward. - Why: This avoids locking a huge amount for a long period. The agent (or a script/cron) can fund the vault in chunks and extend the window as needed, effectively creating a continuous reward stream.
- Rules: While the reward is active (
currentTime <= reward.settings.endTime),modifyRewardTokenonly allows extendingendTimeand addingamount;startTimecannot be changed. After the reward has ended, the agent can set a brand‑new window withmodifyRewardToken(newstartTimeandendTime) and keep streaming.
Use streaming when the agent wants to fund incentives on an ongoing basis (e.g. weekly top‑ups, or extending the program as budget allows) rather than committing to a single long window.
Creating an Agent-Owned Vault
- Get the StakrVaultFactory address for the chain.
- On Base mainnet, the factory is deployed at
0x7Ef55108fa37472296DA59D2287FdA92cd21A0d0(view on BaseScan). - For an example Stakr vault implementation on Base, see
0x93125009209e23fBAFf2B78712029F7A7CdD23cD(example vault on BaseScan).
- On Base mainnet, the factory is deployed at
- Call
createStakrVault(underlying, name, symbol, description, owner):underlying: ERC-20 underlying asset.name,symbol: Vault share token name/symbol.description: Short metadata (e.g. "Agent incentive vault").owner: Set to the agent’s address (or the EOA/contract the agent controls). Useaddress(0)for permissionless reward add/modify by anyone.
- Use the returned vault address for all subsequent calls (
addRewardToken,modifyRewardToken, etc.).
Core User Flows (for completeness)
- Deposit only:
deposit(assets, receiver)(ERC-4626). - Deposit and lock:
depositAndLock(assets, user). - Lock existing shares:
lock(shares, user)(vault must be approved for the shares). - Harvest:
harvest(user)to send pending rewards touser. - Unlock:
unlock(shares, user); then optionallyunlockAndRedeem(shares, receiver)to redeem shares for underlying.
Settings and Types
- Settings:
struct Settings { uint256 startTime; uint256 endTime; } - Validation:
block.timestamp <= startTimeandstartTime < endTimefor new or rescheduled rewards. - Token: Any ERC-20 except the vault’s share token. The underlying can be used as a reward.
For exact function signatures, revert reasons, and events, read the vault API in this skill when implementing calls or debugging.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

