# Tool Contract
A tool contract declares a callable operation's canonical name, purpose, input schema, normalized output, errors, permissions, side effects, and version. Contracts allow several hosts or languages to expose the same behavior without depending on identical implementations.
The X formula—canonical name + input rules + normalized output + error behavior + shared fixtures—is a direct project-specific expression of this modern term.
Related: [[wiki/Portable Contract|Portable Contract]], [[wiki/Capability Registry|Capability Registry]], [[wiki/Structured Outputs|Structured Outputs]], [[wiki/Conformance Testing|Conformance Testing]].
Source: [OpenAI — Function calling](https://platform.openai.com/docs/guides/function-calling)