Beta on Robinhood Chain. The pool is capped at 1 ETH. The contracts have not been audited by a firm. Chit's operator key can move what is in the pool, up to that cap. The caps stay until a professional audit is complete.

Chit
CHIT token 0xD523A627030509021cC39B6d7C8543417D3E50D8

Session keys

Give your bot a key that can only do what you said.

Anyone running a bot today hands it their wallet key. Here you keep the wallet. You fund a small account of your own, and you hand the bot a session: which contract, which function, how much ETH per trade and in total, until when. Pause it or revoke it from your wallet in one transaction. Chit is not in the loop: no operator, no service, nothing of yours held.

Your account
—
ETH in it
—
Status
—
Figures

Connect your wallet to see your account.

Fund it

ETH goes from your wallet to your account. Only your sessions can spend it, only within their rules; you take the rest back any time.

Tokens in this account. Only you can take them out.

A token not listed?

Tokens the bot bought sit in this account. Only you can take them out.

Grant a session

The bot's key is the address its process signs with. It pays its own gas; your account pays the trades.

The bot can only swap, through the Uniswap router, within the limits below.

Details

Contract: the Universal Router, 0x8876789976decbfcbbbe364623c63652db8c0904. Function: execute (0x3593564c), the swap call, and nothing else; this page never leaves it blank, since blank lets the key call any function of that contract.

Your sessions

Read from the chain, never from us. Pause holds a key; revoke ends it for good.

No sessions yet on this device. A session granted elsewhere shows up once you paste its key above and press Refresh.

For your bot

One call. The account executes it with its own ETH; the bot's key only signs.

account.execute(target, valueWei, calldata)   // from the key you granted
canExecute(key, target, selector, value)      // ask first, it says why not

The SDK is src/fleet/session-keys.ts in the repo: the ABI, the encoders, and canExecute so a bot never pays gas for a refusal.