# Hypergraph, the state kernel — Mercury LMS > `@fiberfx/hypergraph` 4.0.0: Mercury's state kernel. A scheduler and graph executor for a model's units (store, event, effect) and their wiring, with fork scopes, effects and one observation surface. No dependencies, no React. ## Read this when You write or change state in a Mercury app: a store, an event, an effect, their wiring, or a scope for a test or a server render. This page is the course's landing; the API by name follows in the reference. ## The contract (tier: Preview — built, 4.0.0 not yet published) - Units: `store(init, config?)`, `event()`, `effect(handler)`. - Wiring: `sample({clock, source, filter, fn, target})`, `combine`, `split`, `attach`, `merge`, `restore`, and `on`, `reset`, `map`, `filter`, `filterMap`, `prepend`. - Scopes: `fork`, `allSettled`, `scopeBind`, `snapshot`, `apply`, `diff`, `dispose`. - `watch(unit, fn, {scope})`, `kindOf(x)`, `setCarrier`, `HypergraphError`. - Subpaths: `@fiberfx/hypergraph`, `@fiberfx/hypergraph/node` (`nodeCarrier`), `@fiberfx/hypergraph/inspect` (`inspect`, `describe`). `/hyperscript` and `/hmr` are planned and not exported. ## Minimal example ```ts import { event, store } from "@fiberfx/hypergraph"; const increment = event(); export const $count = store(0, { name: "$count" }).on(increment, (count, by) => count + by); ``` ## Never emit `createStore`, `createEvent`, `createEffect`, `createDomain`, `guard`, `forward`, `createApi`, `withFactory`, `is`, and any import from `effector` or `effector-react`. They are not Mercury's names. ## Errors A refusal is a `HypergraphError` with a `code`: `pure-call`, `derived-call`, `derived-target`, `disposed-scope`, `reset-reason`. ## Next - The site: /llms.txt - This page as Markdown: /hypergraph.md