Built on Robinhood Chain

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.

ERC-4626 vault Permissionless harvest Cadence-independent bounty

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
ERC-4626 vault accounting Anyone can harvest 184,789 gas, measured 28/28 properties, executed on chain

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.

Before

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.
After

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() and blocksSinceGlean() 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.

25.9 daysbetween harvests at $1,000 deposited
2.6 daysbetween harvests at $10,000 deposited
6.2 hoursbetween harvests at $100,000 deposited
37 minutesbetween harvests at $1,000,000 deposited

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.

01

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.

02

Earn

Fee income arrives at the vault. It is not in the share price yet — totalAssets() counts booked assets only, and says so.

03

Glean

Anybody calls glean(). It books the pending fees, takes the protocol cut, and pays the caller 200 bps for showing up.

04

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.

A frame of capped honeycomb, sealed cells above and open cells below
Sealed white cappings above, open cells and bees below. A beekeeper takes the capped part and leaves the rest — the same distinction 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.

28/28properties hold on live chain
11sabotages, each confirmed caught
2expected to survive, and each says why
0keys, proxies or API keys

Read what each one asserts →

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.