Skep
Every vault in this category says harvested fees raise the share price. None of them says who sends that transaction, or what happens to your yield when nobody finds it worth the gas. Skep pays whoever shows up, out of the harvest, and publishes the vault size below which nobody will.
What a harvest costs, right now
Read from Robinhood Chain at block 56,949,542
- Gas for one
glean() - 184,789
- At 0.3114 gwei, in USDG
- $0.1421
- Smallest harvest worth collecting
- $7.10
- Vault size that reaches it daily at 10% APY
- $25,931
The problem
Yield nobody collects
A vault earns continuously and books it discretely. Booking it is a transaction, and a transaction needs somebody willing to pay for it.
A harvest somebody has to remember
- The share price only moves when a harvest lands, and nothing on the page says when the last one did.
- If the team sends it, your yield depends on their diligence and nobody publishes that.
- If it is open and unpaid, it depends on a stranger deciding your vault is worth their gas.
- Below some size, it is not. Fees sit uncollected and no interface reports it.
A harvest that pays whoever sends it
glean()is open to anybody and pays the caller out of what it books.- The bounty is a proportion, so calling it more often cannot extract more.
- The vault publishes
ripe(),pendingFees()andblocksSinceGlean()as plain views. - The size below which nobody will bother is on this page, not left for you to find out.
The measurement
A small vault waits 25.9 days
One glean costs 184,789 gas — measured by executing it, not estimated. At 0.311 gwei and ETH at $2,468.89, that is $0.1421. A gleaner paid 200 basis points needs a harvest of $7.10 before it is worth sending.
Ten per cent a year, a two per cent bounty, live gas. Move any of those on /ripeness →
How it works
Four calls, and one of them is not yours
Every step is an ordinary transaction you can read on the explorer.
Deposit
You send the asset and receive Comb, a plain ERC-20. Accounting is tracked explicitly, so a stray transfer into the vault cannot move what you are quoted.
Earn
Fee income arrives at the vault. It is not in the share price yet — totalAssets() counts booked assets only, and says so.
Glean
Anybody calls glean(). It books the pending fees, takes the protocol cut, and pays the caller 200 bps for showing up.
Redeem
Burn Comb, take the underlying at the current price. No lockup, no queue — and no fees that have not been gleaned yet.
Why a proportion
Calling it more often cannot take more
The obvious design pays the gleaner a fixed reimbursement, because a fixed amount covers gas at any vault size. It is also drainable: call it every block and each call takes the same absolute fee out of a smaller harvest.
A proportional bounty is cadence-independent. Gleaning once or a thousand times costs depositors exactly 200 basis points of the yield either way, to the wei. That is not an argument — property 11 gives two vaults identical income, gleans one once and the other twenty times, and requires the same answer. The fixed-reimbursement version of this contract is compiled and run against the same suite, and property 11 catches it.
The cost of the choice is on this page rather than hidden: a proportion of a small harvest
does not cover gas, so glean() refuses below a threshold, and a small vault
waits.
ripe() makes.The contract
Executed, not described
Every property below ran on Robinhood Chain at block 56,946,135, through an
eth_call with no to —
the real EVM, no testnet, no funded account, no private key anywhere in this repository.
The name
Named after the thing it replaces
A skep is the domed straw beehive people kept bees in for two thousand years. It has no removable parts, so the only way to get the honey out was to kill the colony that made it. You could have the harvest or you could have the hive.
Langstroth ended that in 1851 by measuring a tolerance. Leave between six and nine millimetres of space and bees keep it clear instead of filling it with wax and propolis — so a frame lifts out, the honey comes with it, and the colony carries on. The invention was not the box. It was the gap.
Which is the same shape as the thing this contract is for: taking the yield out of a position without unwinding the position, and knowing what the tolerance is. How that works, step by step →
Deploy one from your own wallet
No allowlist, no waitlist. The app deploys the contract on this page from your address, simulates every write before it is sent, and never handles a key.