Synapse Client SDK v2.0.5: SAP Integration Bridge & SDK Refactor
Synapse Client SDK v2.0.5 removes the monolithic SAP implementation from the client SDK and introduces a lightweight bridge to the dedicated Synapse SAP SDK.

We’ve released Synapse Client SDK v2.0.5, introducing a major architectural refactor aimed at simplifying the SDK and improving how SAP integrates with the Synapse stack.
The biggest change in this release is the removal of the monolithic SAP implementation from the client SDK. Instead, SAP functionality is now accessed through a lightweight bridge that connects the client to the dedicated Synapse SAP SDK.
This results in a much cleaner separation between network connectivity and protocol logic, while keeping the base SDK smaller and easier to maintain.
Evolution of the SDK Architecture
Earlier versions of the Synapse Client SDK included a full SAP implementation directly inside the package.
Over time this grew into roughly 4,000 lines of protocol logic, spread across several modules responsible for:
- instruction building
- service discovery
- capability registries
- validation systems
- subnetwork construction
- on-chain persistence adapters
While this design worked well early on, it also meant the client SDK carried responsibilities that belonged to the protocol layer itself.
As the Synapse ecosystem expanded, this coupling made the codebase harder to maintain and increased the footprint of the SDK for projects that didn’t need SAP functionality.
Version 2.0.5 addresses this by separating those responsibilities and moving SAP logic into its own dedicated SDK.
A Modular Synapse Stack
With this release, the architecture of the Synapse developer stack becomes much clearer.
The Synapse Client SDK now focuses on what it was originally designed for:
- Synapse RPC connectivity
- endpoint resolution
- developer utilities and integrations
Meanwhile, the implementation of the Synapse Agent Protocol lives in its own package:
@oobe-protocol-labs/synapse-sap-sdk
Instead of embedding SAP functionality internally, the client now integrates through a lightweight bridge layer.
This modular structure keeps the client SDK lean while allowing the SAP protocol to evolve independently.
Introducing SynapseAnchorSap
To connect the client SDK with the SAP SDK, this release introduces a new bridge class: SynapseAnchorSap.
This acts as the entry point for SAP integrations when using the Synapse client.
Key capabilities include:
- automatic Synapse endpoint resolution
- lazy initialization of the SAP client
- simplified setup for SAP-enabled applications
- compatibility with existing Synapse client instances
Developers can now enable SAP functionality without embedding protocol logic directly in their applications.
Simplifying the Client SDK
As part of this refactor, several SAP-related components were removed from the client SDK, including:
- SAPInstructionBuilder
- SAPDiscovery
- SAPCapabilityRegistry
- SAPValidator
- SubnetworkBuilder
- OnChainPersistenceAdapter
- related SAP helper types
These implementations now live in the Synapse SAP SDK, which serves as the canonical implementation of the Synapse Agent Protocol.
This change significantly reduces the complexity of the client SDK and avoids duplicated protocol logic across packages.
New Developer Utilities
Version 2.0.5 also introduces several utilities designed to make integration easier, especially for modern JavaScript frameworks.
SynapseAnchorSap.fromSynapseClient()
A factory method that allows developers to initialize SAP using an existing SynapseClient RPC connection, eliminating duplicate configuration.
createSapProvider()
A Hot Module Reloading–safe singleton provider designed primarily for Next.js server environments.
This prevents multiple SAP instances from being created when server routes reload during development.
createSapContextBlueprint()
A frontend integration blueprint that enables applications to create SAP contexts without importing React directly into the SDK.
This keeps the SDK framework-agnostic while still making frontend integrations straightforward.
SAP SDK Integration
With v2.0.5, SAP functionality is provided by the dedicated package:
@oobe-protocol-labs/synapse-sap-sdk
The client SDK now interacts with SAP through the SynapseAnchorSap bridge instead of embedding protocol logic internally.
In practice this means:
- the Synapse Client SDK handles RPC connectivity
- the SAP SDK implements the Synapse Agent Protocol
Recent updates to the SAP SDK — including compatibility improvements for modern JavaScript environments — are covered in the dedicated article:
Optional Dependencies
Another improvement in v2.0.5 is the introduction of optional peer dependencies.
The following packages are now optional:
- SAP SDK
- Anchor
- Solana web3.js
Projects that only rely on Synapse RPC functionality do not need to install these dependencies, helping keep the SDK lightweight and reducing bundle size.
Migration Guide
Projects using SAP functionality through earlier versions of the client SDK should migrate to the new modular architecture.
Basic steps:
Install the SAP SDK:
npm install @oobe-protocol-labs/synapse-sap-sdk
Initialize SAP through SynapseAnchorSap, and connect it to your existing SynapseClient instance.
This replaces the legacy embedded implementation with the new bridge architecture.
Why This Refactor Matters
The Synapse stack is designed to support autonomous AI agents operating on-chain.
As more developers build agents, services, and coordination systems on top of Synapse, maintaining a modular architecture becomes increasingly important.
This refactor enables:
- clearer separation between infrastructure and protocol layers
- smaller SDK footprint
- easier long-term maintenance
- cleaner integration patterns for developers
By moving protocol logic into a dedicated SDK and keeping the client focused on connectivity, the Synapse developer stack becomes more scalable as the ecosystem grows.
Links
Synapse Client SDK
GitHub https://github.com/OOBE-PROTOCOL/synapse-client-sdk
npm https://www.npmjs.com/package/@oobe-protocol-labs/synapse-client-sdk
Release Notes https://github.com/OOBE-PROTOCOL/synapse-client-sdk/releases/tag/v2.0.5