Skip to content

Route your fees. Get one token.

Everything you need to plug an app into a jar, in a few minutes of reading.

How it works

TJAR is the Uniswap Token Jar, the engine Uniswap uses for its own protocol fees. Four steps, all onchain.

1

Fees land in your jar

Your jar is a plain address. Send it fees in any token, from any app or contract.

2

The jar has a price

You set it in one token, like 100 USDC. Autopilot can keep it close to what the jar holds.

3

A searcher buys it all

The first searcher to pay the price takes everything inside, in one transaction.

4

You receive one token

The payment goes straight to your address, or to the burn address.

Launch without code

One wallet, one transaction, two more if you want Autopilot.

  1. 01

    Pick a chain

    Robinhood Chain, Ethereum, Base, Arbitrum, Optimism, BNB Chain or Polygon.

  2. 02

    Choose what you receive

    USDC, ETH, or paste any token address, including your own.

  3. 03

    Choose where it goes

    Your wallet by default, a treasury, or the burn address.

  4. 04

    Set a starting price

    We suggest $100 worth. Autopilot adjusts it as the jar fills.

  5. 05

    Sign

    The TJAR Factory deploys your jar and its releaser. You own both.

Open the launcherPrefer a contract call? It is one line:
// TJAR Factory, same address on all seven chains
factory(0xfAc70EEEE259F2140CBbB8e3157b75A52ce39fee)
  .deploy(token, recipient, price, owner, configSetter, salt)
  returns (jar, releaser)

Uniswap API fees

If you build swaps on the Uniswap API, your jar can be the fee recipient. Every swap fee lands in it, in whatever token was traded.

POST https://trade-api.gateway.uniswap.org/v1/quote
{
  "tokenIn": "...",
  "tokenOut": "...",
  "amount": "...",
  "integratorFees": [
    { "recipient": "0xYourJar", "bips": 25 }
  ]
}

Any other app

Wallets, bots, launchpads: send fees to the jar address like to any wallet. Native coins work too.

Uniswap v2 style pools

Set the jar as the factory's feeTo. Protocol fees accrue to it as LP tokens.

Your own token

Set your token as the jar's price. Every release becomes a buyback, paid by the searcher, at no cost to you.

Price it in your token

Paste your token address in the launcher. Searchers buy it on the market to release your jar.

Keep it in treasury

Send the payment to your treasury and grow it with every release.

Or burn it

One tap sends every payment to 0x…dEaD. Supply goes down each time the jar is released.

Autopilot safety

Autopilot is a small contract you deploy and own. It can move your jar's price. It can never move your money. Enforced onchain.

It moves the price, nothing else

Each change re-reads your token, your recipient and the release size from the jar and writes them back unchanged. Your money can never be redirected.

Inside your range

You set a floor and a ceiling. By default they sit 4x below and 4x above your starting price.

Small steps only

At most 10% per change by default. The contract refuses anything above 50%.

Slowly

At least 1 hour between two changes by default, never less than 60 seconds.

Never on stale data

Every change names the jar's current nonce. If the jar was released or edited in between, the change fails.

Yours to take back

Pause it, change its range or its pilot, or remove it in one transaction. Your jar keeps working without it.

// Remove Autopilot at any time, as the jar owner
releaser.setConfigSetter(address(0))

Public API

Read-only JSON, no key, rate limited per IP. Chains by id, addresses in lowercase, amounts as atomic strings, values in USD.

Explorer totals

Jars, value held, jars ready now, releases and volume converted.

curl https://jarvest.org/api/stats

List jars

Filter by chain, source or owner, sort by value, profit, recent or releases. Paginate with cursor.

curl "https://jarvest.org/api/jars?chain=4663&sort=profit&ready=1&limit=20"

One jar

Contents with USD values, the best release, history, inflows, Autopilot state.

curl https://jarvest.org/api/jars/4663/0x2ac03e14cfe755426daaee0a4994184ce81482f8

Searchers

Leaderboard of releasers with what they paid and took.

curl "https://jarvest.org/api/searchers?limit=50"

Any token

Symbol, decimals and price of any ERC-20, read onchain.

curl https://jarvest.org/api/tokens/4663/0x5fc5360d0400a0fd4f2af552add042d716f1d168

Recommended price

What Autopilot would set the jar's price to right now.

curl "https://jarvest.org/api/autopilot/recommend?chain=4663&jar=0x2ac03e14cfe755426daaee0a4994184ce81482f8"

Track a jar

Add any TJAR jar to the explorer. We check it onchain first.

curl -X POST https://jarvest.org/api/jars/track \
  -H "content-type: application/json" \
  -d '{"chainId":4663,"address":"0xYourJar"}'