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.

Grant a session

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

Your sessions

Read from the chain, never from us. Pause holds a key; revoke ends it for good. What a key can do is what its rules name, with the account's ETH inside the caps: the router's one function with the beta's defaults, or any function of any contract you name if you leave the selector blank, a token's own transfer included, so name only what the bot needs. "Let it sell" is one more thing you grant: without it the key cannot call sell, so the tokens the account holds go back to ETH only by your hand; with it the key can sell what the account holds back into the account, at the price of the pool it names, and turning it off is complete, since nothing of a sale outlives the call.

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.