commit fd1d0b54eaa526d0849522b4467e89a171146c8d parent 341c174581f38fd409f6b19e59f639f170ce5eb9 Author: triesap <tyson@radroots.org> Date: Fri, 20 Feb 2026 23:27:10 +0000 contract: add sdk contract charter Diffstat:
| A | contract/README.md | | | 32 | ++++++++++++++++++++++++++++++++ |
1 file changed, 32 insertions(+), 0 deletions(-)
diff --git a/contract/README.md b/contract/README.md @@ -0,0 +1,32 @@ +# Rad Roots SDK contract charter + +## purpose + +The Rad Roots SDK contract defines the public, cross-language interface for interacting with the Rad Roots network profile on nostr. + +This contract is the compatibility boundary for external integrators. + +## principles + +- rust is the canonical contract source. +- exported sdk surfaces are intentionally narrower than the full rust workspace. +- deterministic transforms must be generated from canonical implementations. +- language runtimes may implement networking natively if conformance is preserved. +- contract evolution is semver-governed and must remain machine-verifiable. + +## scope + +The sdk contract includes only public interoperability primitives: + +- event models and kind constants +- identity and trade model surfaces +- canonical tag and codec transforms +- schema and conformance fixtures + +The sdk contract excludes app/runtime/storage implementation crates. + +## governance + +- all contract changes require conformance updates. +- all contract exports must be reproducible from source. +- release automation must publish contract metadata and artifact checksums.