fetched.doga field studyno. 01


fetch

Notes on a token that pays attention to how long you have been standing still.

$FETCH is an Ethereum token. Its rewards are not split evenly: they are split by how long each holder has gone without moving a coin. This page explains the whole thing, slowly, in seven short chapters.

Subject $FETCH, Ethereum Market Uniswap v4, ETH/FETCH Supply 1,000,000,000, fixed Status not deployed

Chapter I

The idea, in one paragraph

Hold $FETCH and a clock starts. The longer that clock runs, the larger your share of everything the token pays out — starting at 1.00× and rising in a straight line to 2.00× once the clock has run its full length. Send or sell so much as a single coin and the clock goes back to zero. That is the entire idea. Everything below is detail.

The rewards are paid in $FETCH, and they are bought on the open market with ETH that trading itself produced. Nobody prints them and nobody hands them out by decision. The next chapter is the three steps that make that happen.


Chapter II

How it works, in three steps

The mechanism is a loop with three moves in it. Nothing else happens.

  1. Someone buys, and a cut of their ETH is set aside

    When a buy comes through the pool, a fixed percentage of the ETH going in is kept back by the pool's hook contract. Selling is not charged.1

  2. Anyone can spend that ETH on the open market

    A public function — fetch() — takes the ETH that has piled up and buys $FETCH with it, through the same pool everyone else trades on. Anyone may call it, and whoever does keeps a small tip out of the tokens bought.2

  3. The tokens that were bought go to holders, weighted by streak

    The rest is credited to every holder in proportion to balance × streak multiplier — so a long-held bag counts for up to twice what the same bag counts for on the day it was bought. You pull your credit whenever you like.3

a buy comes in ETH → FETCH the hook keeps a cut of that ETH fetch() spends it buying FETCH credited to holders × streak multiplier 1. 2. 3. 4. and holders are the people trading, so it runs again
Figure 1 — the loop. Drawn by hand; not a screenshot of anything. Sells contribute nothing to the pot and are not charged by the hook.

Chapter III

The streak, and how it breaks

A streak is one number: the timestamp your current hold began. Everything else is read off it. The multiplier walks a straight line from 1.00× at the start to 2.00× at the end of the ramp, and holds there.4

There is no staircase and no tier to time. An hour of holding is worth an hour of holding whether it is your first or your last — which means there is no threshold to game and no cliff to sit under.

Breaking it is cheap and instant, which is the point: the multiplier is paying for something that is genuinely hard to fake, namely the decision not to move.

Figure 2 · scroll to run the clock

day 0 · 1.00× holding · warming 2.00× a coin leaves back to 1.00×
Figure 2 — one hold, drawn as a trail. Thickness and warmth are the multiplier; the break is a sell. It is an illustration: nothing in it is read from a chain, because the token is not deployed. Where the trail moves, it follows your scroll position against an assumed ramp length. If your system asks for reduced motion, the same figure is drawn still.

Chapter IV

Why buying more does not inherit an old streak

An obvious trick suggests itself: park a dust balance, let it age for a month, then buy a large position into the same wallet and collect at 2.00× from the first minute. It does not work, and the reason is worth understanding.

Incoming tokens are averaged into the clock by size. A tiny old balance carries almost no weight against a large new one, so the blended start lands next to today, not next to last month. The aged dust buys you a rounding error.5

dust aged 30 days a real position bought today blended start ≈ today weighted by size
Figure 3 — size-weighted receipt, drawn to scale for a dust balance one thousandth the size of the buy. The blended start moves by roughly a thousandth of the dust's age.

The same rule has an edge worth naming plainly: because receipts are averaged in, anyone can nudge a stranger's streak backwards by sending them tokens. Doing real damage costs a gift about the size of the target's whole position, to move a reward weighting by at most a factor of two — so it is an expensive way to be annoying, and the alternative rule would reopen the aged-dust hole above.


Chapter V

Where the rewards actually come from

Nothing is minted. There is no treasury allocation feeding the rewards and no schedule releasing them. Every token that reaches a holder was bought on the open market with ETH that trading produced.

The cut is taken from the ETH side of a buy, before the swap prices it, and it is held as a claim against the pool rather than moved anywhere — which is what lets a trade go through even in states where an ordinary transfer might not. Sells put nothing in. Anyone may also send ETH into the pot voluntarily.

Then the pack goes out. fetch() is deliberately public: it does not wait on a team wallet, a keeper bot, or a multisig signing a transaction. Anyone who wants the tip can push the button, and the market buy lands on the same pool everybody else trades on, at the same price.

Rewards are pulled, not pushed. Your credit accrues whether or not you ever touch the contract, and claim() moves it to your wallet when you ask. A second public function, sync(), books a matured streak into your recorded share without you having to trade — and anyone can call it for anyone, so a matured holder is never stuck.6

Why anyone would want this token

The honest answer, without a price prediction attached: the mechanism turns trading volume into a standing bid for the token, and hands the tokens that bid buys to the people who have held longest. That gives holding a return that is denominated in the thing itself, and it gives selling a second cost on top of the price — you go back to the end of the queue. Whether that is worth anything depends entirely on whether people trade it.


Chapter VI

The token itself

$FETCH is a plain ERC-20 on Ethereum with a fixed supply, minted once when the contract is created. There is no mint function afterwards. It is not a share, a claim on a treasury, or a governance seat; the only thing it does is the mechanism described above.

Fixed by the contract · constants read from the source, not measurements
Supply1,000,000,000 FETCH, minted once
Where the supply startsminted to a single wallet, which seeds the pool from it · that wallet draws no rewards, ever
Streak multiplier1.00× → 2.00×, linear
Cut on sellsnone
Cut on buysset at deployment · can never exceed 4.00% of the ETH in
Caller's tip on fetch()set at deployment · can never exceed 4.00% of the tokens bought
Ramp to the full multiplierset at deployment · between 1 hour and 365 days
Reward payoutpull — claim() when you want it
MarketUniswap v4 · ETH/FETCH

The four unset numbers above are not a euphemism for “to be announced later and quietly”. The contract enforces the ceilings whatever they are set to, and the values themselves go on this page and into the verified source before the pool opens.


Chapter VII

What is not true yet

This is a design document for something that has not shipped. In the interest of not being another page that implies otherwise:

Standing, as of 4 August 2026

There is no contract address.
Nothing is deployed on Ethereum or anywhere else. There is no pool, no liquidity, and nothing to buy. When there is, the address and the pool will be printed here and nowhere else first.
There is no external audit.
The contracts have an internal review and an automated test suite — 96 tests covering the unit, invariant and mainnet-fork suites, all passing on 4 August 2026 — and that is not the same thing as an audit and should not be read as one. An independent review is required before anything is deployed.
Four parameters are unchosen.
The cut, the tip, the ramp length and the per-call spend cap. See the table above for the ceilings the contract enforces regardless. The size of the opening liquidity is not decided either.
There are no accounts anywhere else.
No exchange listing, no group chat, no social account, no sale, no allocation, no presale. Anything currently claiming to be this project somewhere else is not this project.

If you came here from a link promising you could buy something, the link was lying to you. This page will change when that changes.


Notes

  1. The cut is taken inside the pool's hook on the ETH input leg of a buy and held as an ERC-6909 claim against the pool manager rather than transferred out. Sells return from the fee path without accruing anything.
  2. fetch() has no access control. It reverts if the cooldown has not elapsed, if the pot is empty, if the pool has no liquidity, or if the buy would not clear the slippage floor. The tip is a percentage of the tokens the call bought, capped by the contract at 4.00%.
  3. Credit is tracked with a per-share accumulator over balance × multiplier, so a distribution costs the same gas whether there are ten holders or ten thousand. Recorded shares are updated when an address is touched, which is what keeps each distribution computed over a fixed total.
  4. In the source: MULT_BASE = 100 and MULT_PEAK = 200 against a denominator of 100, interpolated linearly across streakRamp, which is bounded to between 1 hours and 365 days.
  5. Worked example: a balance of 1,000 FETCH aged 30 days receives 1,000,000 FETCH today. The blended start moves back from today by 30 days × 1,000 ÷ 1,001,000 — about 43 minutes.
  6. sync() takes an address argument and is callable by anyone, so a holder who never sends another transaction can still have a matured streak booked. claim() does it implicitly for the caller.