# Stability \[What the contract covers]

`@indexnetwork/protocol` follows Semantic Versioning. The public contract is
exactly the set of symbols exported from the package root. `package.json`
exports only the root, so deep imports do not resolve at all.

The package defines two tiers:

* **Stable** — the capability classes (`Intents`, `Networks`, `Negotiations`),
  the negotiation rules, the public API helpers, the host interfaces, the
  opportunity presenter and radar graph factory, and shared schemas. A breaking
  change requires a major bump.
* **Experimental** — meant for advanced graph state and internal helpers marked
  `@experimental`, which may change in a minor release. No export carries that
  marker today, so every export is in the stable tier.

Breaking the public surface is allowed and expected at this stage: the major is
bumped, the change is recorded, and in-repo consumers are updated in the same
change.

This page is a stub. The full policy is in
[STABILITY.md](https://github.com/indexnetwork/index/blob/dev/packages/protocol/STABILITY.md);
release history is in the
[changelog](https://github.com/indexnetwork/index/blob/dev/packages/protocol/CHANGELOG.md).
