Slack
The assistant answers questions about the workspace’s watched contracts and sets things up for the people in it. It lives in Slack and Telegram; there is no chat panel in the app.
1. Connect
Open Settings → Message destinations and select Connect Slack workspace. Approve the app for your Slack workspace. The same connection carries alerts and reports.
Telegram: Direct message or Connect Telegram group links a chat with the contract.dev bot, which confirms in the chat. A linked chat speaks for the workspace the same way.
2. Bring it into a channel
Add the app to a channel: /invite @contract.dev in the channel, or pick the channel in the app with Add a channel when you make a monitor or report. Then mention it there.
| Where | |
|---|---|
| A mention in a channel | @contract.dev …. The answer is posted in the channel; the conversation continues in the thread under it. |
| A direct message | Answered in the DM. |
| A reply in a thread | Where the assistant has already answered, every reply in that thread reaches it. |
/contractdev <question> | Answered where it was asked. |
A long answer is sent as several messages, the rest threaded under the first.
3. Ask
@contract.dev how does the USDC market compute interest?
@contract.dev the ten biggest deposits this week, and who made them
@contract.dev which markets hold less than they must?
@contract.dev who is 0x…, and what has it done across our contracts?
@contract.dev which monitors are breached?| Question | What it reads |
|---|---|
| How a contract or protocol works | The contracts’ verified source: the authors’ notes, what a contract inherits, the functions the answer turns on, read whole. It says which contract it read. |
| A figure a contract computes: a rate, utilisation, a position | The contract’s views, now or at a past block, with the formula it used. |
| Rank or total across a group | The group’s columns, and any view read on every member now. |
| The biggest deposits, swaps or liquidations and who made them | The contracts’ recent events, each priced on its own day, with the wallet and the signer when it differs. |
| Open rounds, loans or proposals | A table’s rows. |
| Transactions, transfers, wallets over a window | The transactions, token movements and wallets behind the contracts, with the window before for comparison. |
| Monitors, alerts, reports | Their states, episodes and runs. |
Who is 0x… | Names, ENS, contract or wallet on each chain, live holdings, its activity inside the workspace. |
A name in a question (“the USDC market”, “our vaults”) is resolved against what the workspace holds. When nothing close is watched, the answer says so.
4. Set things up
Ask for a monitor, a report, a metric, a table, a group or a contract to be watched, and it is saved at once. The reply says what was made, with links.
@contract.dev set up our protocol
@contract.dev watch 0x… on Ethereum as Treasury
@contract.dev alert #risk when a market's held falls below its required reserve
@contract.dev tell me when a swap over $1M lands on the ETH/USDC pool
@contract.dev every morning at 9: active wallets, transactions, TVL and our fees
@contract.dev let me know every time someone deposits| Ask for | It makes |
|---|---|
| ”Set up our protocol” | The starter: a group, about five tracked numbers, one or two event metrics or a table, control-change monitors, a few alerts and a daily report, built from the contracts already watched. |
| ”Watch every pool the factory deployed, as a group called Pools” | A group with a factory rule. Every pool the factory ever made joins in the background; new ones join as they are deployed. |
”Add a column to Markets: totalAssets(), in asset()” | A group column, priced in each market’s own asset. |
| ”Alert when a market’s held falls below its required reserve” | One monitor per market, judged on the column. |
| ”Our pools’ swap fees in dollars, per pool” | An event metric over Swap. |
| ”A table of withdrawal rounds: Requested, Paid, Outstanding and a Stage” | A table with event columns, a formula column and a status column. |
| ”Tell me when a swap over $1M lands” | An event metric of each swap’s dollar size, and a monitor on it. |
| ”Let me know every time someone deposits” | An each-time report, bundled hourly. |
| ”Every morning at 9: active wallets, transactions, TVL” | A daily report. |
- Ask to see it first (“show me first”, “draft it”) and you get a card with Confirm and Cancel. Nothing is saved until Confirm. A card nobody confirms expires after a day.
- When something is missing or ambiguous, the assistant asks one short question: which contract, which threshold, which destination. It never guesses a threshold.
- When one request would create more than 25 things, it says how many and asks first.
- Alerts and reports go to the channel the conversation is in, unless you name another (“#alerts”, “here”). In a DM, the workspace’s only destination, if it has one. With none, the object is still created and shows in the app until a destination is linked.
- Nothing replays history: a new monitor fires on new events, a new each-time report sends from now on.
Who can do what
Anyone in a connected channel can ask questions.
Setting things up needs a workspace member with write access. The person is matched to the workspace by the email on their Slack profile. A viewer, or someone who is not a member, gets answers and is told that setting something up needs a member with write access. In a linked Telegram chat, anyone in the chat may ask and confirm.
How it answers
- Every number comes from a read the assistant made. It does not estimate, extrapolate or recall a figure, an address or a token’s decimals.
- How a contract works is told in the words of its source. It adds no qualifier the source does not state and takes a contract’s role from its code, never from its name.
- A breakdown is reported whole (“7 breached, 81 with no fresh reading”), never the striking part alone.
- Each figure says which window it covers. “Today” and “this week” are rolling windows ending now.
- A list longer than 25 rows gives the first 25 and links the page in the app that lists them all.
- Times are in your Slack timezone where Slack provides it, otherwise the timezone the workspace’s reports run on.
Not yet
- Pause, change or delete a monitor or a report. Say which one and it tells you where to do it in the app.
- Read what a contract calls out to (its dependencies).
- A monitor that waits for one event to be answered by another. Add one under Monitoring.
- Gas spent in dollars; revenue other than swap fees at a pool’s fee tier; swap volume for Curve or Balancer pools (counted, not sized).