Whistles

Tell each bucket when to move.

Shepherds steer a sheepdog with whistles. In Sheepdog, a whistle (a trigger) tells a bucket of ETH or tokens when to spend, and a stay sets its limits.

Sheepdog, the border collie mascot, sitting in a blue bandana.

The core idea

Buckets wait. Whistles tell them when.

  1. STEP 1

    The vault fills its buckets

    Every run splits new ETH or tokens into buckets, such as holder rewards, buy and burn, or a floor fund.

  2. STEP 2

    Each bucket has one whistle

    The whistle is the bucket’s rule for when to spend. A bucket with no whistle spends on every run.

  3. STEP 3

    The keeper spends the bucket

    When the whistle blows, the Sheepdog keeper spends the bucket, inside the stays the owner set and the limits the contract enforces.

Who listens? The Sheepdog keeper checks every whistle around the clock and records the token’s price for the floor and dip whistles. It only runs vaults whose owner turned on automatic mode. Owners can also spend any bucket by hand.

Steady

Spend as ETH comes in.

These whistles keep money moving. Use them when holders should see something from every run.

Default

Every-round whistle

The bucket spends each time the vault runs.

WHENThe vault runsTHENSpend the whole bucket, or up to a set amount

Example: holders get their share from every run.

Checked by the keeperWorks withHolder rewardsBuy and burnBuy and holdToken burn
The details

A bucket with no whistle uses this one, and holder-reward buckets always do. How often it blows depends on the vault’s pace, one of the stays below.

Vault-wide

Gather whistle

The vault waits until enough ETH or tokens have arrived, so rounds are worth claiming.

WHENAt least your amount has come in since the last runTHENRun the vault and fill the buckets

Example: run only after 0.5 ETH, or 1M tokens, has arrived.

Checked by the keeperWorks withThe whole vault
The details

Unassigned funds and funds returned from holder rounds count toward the amount. Whistles that spend ETH already saved in a bucket, such as the floor whistle, don’t wait for it.

Patient

Save it, then buy at the right moment.

These buckets fill on every run and wait. When the market reaches the level the owner picked, ETH buckets buy the token and token buckets burn.

Market cap

Floor whistle

Spends when the token’s market cap drops to your level.

WHENThe market cap, averaged over 30 minutes, is at or below your level in USDTHENBuy the token with the saved ETH, or burn the saved tokens

Example: buy when the market cap is $500k or lower.

Checked by the keeperWorks withBuy and burnBuy and holdToken burn
The details

Market cap is the price in USD times the supply outside the dead address. The 30-minute average stops a single trade from blowing the whistle. If price data is missing or stale, the whistle stays quiet.

Price drop

Dip whistle

Spends when the price falls a set percentage below its recent high.

WHENThe price is your % below its highest point in the last 7 days, or a window you pickTHENBuy the token with the saved ETH, or burn the saved tokens

Example: buy when the price is 20% below its 7-day high.

Checked by the keeperWorks withBuy and burnBuy and holdToken burn
The details

The high is the highest price Sheepdog recorded for the bucket’s pool in the window. The whistle compares it with that pool’s current price. If price data is missing, the whistle stays quiet.

Stays

Limits that hold when a whistle blows.

A shepherd uses a stay to stop the dog. In Sheepdog, stays set the limits on every whistle, and the contract enforces some of them itself.

Stay

Ceiling

Never buy above a market cap you set.

IFThe market cap is above your ceilingTHENThe contract refuses the buy

Example: never buy above $2M.

Checked on chainWorks withBuy and burnBuy and hold
The details

The contract checks the ceiling before every swap, using the Chainlink ETH/USD price and the network status feed. If either is stale or down, the buy is refused.

Stay

Spend cap

Choose how much a whistle may spend each time it blows.

IFThe whistle blowsTHENSpend the whole bucket, or at most your amount

Example: spend at most 0.2 ETH per run and let the rest wait.

Checked by the keeperWorks withEvery whistle
The details

With a cap, a large bucket spends in steps over several runs, which keeps each buy smaller.

Stay

Pace

Set how often the vault may run and how much the keeper may move.

IFThe interval since the last run has not passedTHENNo run happens yet

Example: run at most once an hour, with up to 1 ETH per run.

Checked on chainWorks withThe whole vault
The details

The keeper only runs vaults with an interval of at least 10 minutes and a cap per run. Its spending allowance refills over the interval, so even a stolen keeper key can’t move more than the cap.

Stay

Slippage guard

Every buy sets a minimum number of tokens to receive.

IFFewer tokens would arrive than the minimumTHENThe swap is cancelled

Example: accept at most 3% less than the quote, the default.

Checked on chainWorks withBuy and burnBuy and hold
The details

Sheepdog quotes the pool just before each buy and the contract enforces the minimum. Buys of tokens other than the project token are skipped when the price impact is above 10%.

Coming next

New ways to pay holders.

These pair a weekly whistle with new holder rules. They use the same vaults and buckets, so nobody has to move funds.

Coming next

Top-holder rewards

Pay the largest holders of the token.

WHENOnce a weekTHENReward the top holders
The details

Choose how many wallets count, or a minimum balance. This whistle is planned and not available yet.

Coming next

Biggest-buy rewards

Pay the wallet with the largest buy of the period.

WHENOnce a weekTHENReward the biggest buy
The details

The reward comes from the holder bucket of that round. This whistle is planned and not available yet.

For the team and the community

Pick your whistles and let the dog work.

Open a vault, fund it with ETH,
and give every bucket its whistle.

Open a vault

A whistle is a rule. It does not guarantee a price.

WAITING FOR THE WHISTLE.