@oobe-protocol-labs/synapse-client-sdk 1.0.0-beta → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1733) hide show
  1. package/CHANGELOG.md +89 -0
  2. package/README.md +428 -1242
  3. package/dist/cjs/ai/gateway/index.d.ts +380 -0
  4. package/dist/cjs/ai/gateway/index.d.ts.map +1 -0
  5. package/dist/cjs/ai/gateway/index.js +800 -0
  6. package/dist/cjs/ai/gateway/index.js.map +1 -0
  7. package/dist/cjs/ai/gateway/marketplace.d.ts +202 -0
  8. package/dist/cjs/ai/gateway/marketplace.d.ts.map +1 -0
  9. package/dist/cjs/ai/gateway/marketplace.js +352 -0
  10. package/dist/cjs/ai/gateway/marketplace.js.map +1 -0
  11. package/dist/cjs/ai/gateway/pricing.d.ts +149 -0
  12. package/dist/cjs/ai/gateway/pricing.d.ts.map +1 -0
  13. package/dist/cjs/ai/gateway/pricing.js +256 -0
  14. package/dist/cjs/ai/gateway/pricing.js.map +1 -0
  15. package/dist/cjs/ai/gateway/session.d.ts +191 -0
  16. package/dist/cjs/ai/gateway/session.d.ts.map +1 -0
  17. package/dist/cjs/ai/gateway/session.js +352 -0
  18. package/dist/cjs/ai/gateway/session.js.map +1 -0
  19. package/dist/cjs/ai/gateway/types.d.ts +324 -0
  20. package/dist/cjs/ai/gateway/types.d.ts.map +1 -0
  21. package/dist/cjs/ai/gateway/types.js +22 -0
  22. package/dist/cjs/ai/gateway/types.js.map +1 -0
  23. package/dist/cjs/ai/gateway/validator.d.ts +128 -0
  24. package/dist/cjs/ai/gateway/validator.d.ts.map +1 -0
  25. package/dist/cjs/ai/gateway/validator.js +208 -0
  26. package/dist/cjs/ai/gateway/validator.js.map +1 -0
  27. package/dist/cjs/ai/gateway/x402/client.d.ts +274 -0
  28. package/dist/cjs/ai/gateway/x402/client.d.ts.map +1 -0
  29. package/dist/cjs/ai/gateway/x402/client.js +470 -0
  30. package/dist/cjs/ai/gateway/x402/client.js.map +1 -0
  31. package/dist/cjs/ai/gateway/x402/facilitator.d.ts +169 -0
  32. package/dist/cjs/ai/gateway/x402/facilitator.d.ts.map +1 -0
  33. package/dist/cjs/ai/gateway/x402/facilitator.js +292 -0
  34. package/dist/cjs/ai/gateway/x402/facilitator.js.map +1 -0
  35. package/dist/cjs/ai/gateway/x402/index.d.ts +81 -0
  36. package/dist/cjs/ai/gateway/x402/index.d.ts.map +1 -0
  37. package/dist/cjs/ai/gateway/x402/index.js +137 -0
  38. package/dist/cjs/ai/gateway/x402/index.js.map +1 -0
  39. package/dist/cjs/ai/gateway/x402/paywall.d.ts +148 -0
  40. package/dist/cjs/ai/gateway/x402/paywall.d.ts.map +1 -0
  41. package/dist/cjs/ai/gateway/x402/paywall.js +269 -0
  42. package/dist/cjs/ai/gateway/x402/paywall.js.map +1 -0
  43. package/dist/cjs/ai/gateway/x402/registry.d.ts +86 -0
  44. package/dist/cjs/ai/gateway/x402/registry.d.ts.map +1 -0
  45. package/dist/cjs/ai/gateway/x402/registry.js +294 -0
  46. package/dist/cjs/ai/gateway/x402/registry.js.map +1 -0
  47. package/dist/cjs/ai/gateway/x402/types.d.ts +407 -0
  48. package/dist/cjs/ai/gateway/x402/types.d.ts.map +1 -0
  49. package/dist/cjs/ai/gateway/x402/types.js +143 -0
  50. package/dist/cjs/ai/gateway/x402/types.js.map +1 -0
  51. package/dist/cjs/ai/index.d.ts +15 -11
  52. package/dist/cjs/ai/index.d.ts.map +1 -1
  53. package/dist/cjs/ai/index.js +70 -14
  54. package/dist/cjs/ai/index.js.map +1 -1
  55. package/dist/cjs/ai/tools/index.d.ts +83 -0
  56. package/dist/cjs/ai/tools/index.d.ts.map +1 -0
  57. package/dist/cjs/ai/tools/index.js +378 -0
  58. package/dist/cjs/ai/tools/index.js.map +1 -0
  59. package/dist/cjs/ai/tools/protocols/index.d.ts +87 -0
  60. package/dist/cjs/ai/tools/protocols/index.d.ts.map +1 -0
  61. package/dist/cjs/ai/tools/protocols/index.js +108 -0
  62. package/dist/cjs/ai/tools/protocols/index.js.map +1 -0
  63. package/dist/cjs/ai/tools/protocols/jupiter/index.d.ts +8 -0
  64. package/dist/cjs/ai/tools/protocols/jupiter/index.d.ts.map +1 -0
  65. package/dist/cjs/ai/tools/protocols/jupiter/index.js +15 -0
  66. package/dist/cjs/ai/tools/protocols/jupiter/index.js.map +1 -0
  67. package/dist/cjs/ai/tools/protocols/jupiter/schemas.d.ts +11 -0
  68. package/dist/cjs/ai/tools/protocols/jupiter/schemas.d.ts.map +1 -0
  69. package/dist/cjs/ai/tools/protocols/jupiter/schemas.js +386 -0
  70. package/dist/cjs/ai/tools/protocols/jupiter/schemas.js.map +1 -0
  71. package/dist/cjs/ai/tools/protocols/jupiter/tools.d.ts +55 -0
  72. package/dist/cjs/ai/tools/protocols/jupiter/tools.d.ts.map +1 -0
  73. package/dist/cjs/ai/tools/protocols/jupiter/tools.js +86 -0
  74. package/dist/cjs/ai/tools/protocols/jupiter/tools.js.map +1 -0
  75. package/dist/cjs/ai/tools/protocols/metaplex/index.d.ts +8 -0
  76. package/dist/cjs/ai/tools/protocols/metaplex/index.d.ts.map +1 -0
  77. package/dist/cjs/ai/tools/protocols/metaplex/index.js +14 -0
  78. package/dist/cjs/ai/tools/protocols/metaplex/index.js.map +1 -0
  79. package/dist/cjs/ai/tools/protocols/metaplex/schemas.d.ts +11 -0
  80. package/dist/cjs/ai/tools/protocols/metaplex/schemas.d.ts.map +1 -0
  81. package/dist/cjs/ai/tools/protocols/metaplex/schemas.js +247 -0
  82. package/dist/cjs/ai/tools/protocols/metaplex/schemas.js.map +1 -0
  83. package/dist/cjs/ai/tools/protocols/metaplex/tools.d.ts +45 -0
  84. package/dist/cjs/ai/tools/protocols/metaplex/tools.d.ts.map +1 -0
  85. package/dist/cjs/ai/tools/protocols/metaplex/tools.js +163 -0
  86. package/dist/cjs/ai/tools/protocols/metaplex/tools.js.map +1 -0
  87. package/dist/cjs/ai/tools/protocols/raydium/index.d.ts +8 -0
  88. package/dist/cjs/ai/tools/protocols/raydium/index.d.ts.map +1 -0
  89. package/dist/cjs/ai/tools/protocols/raydium/index.js +15 -0
  90. package/dist/cjs/ai/tools/protocols/raydium/index.js.map +1 -0
  91. package/dist/cjs/ai/tools/protocols/raydium/schemas.d.ts +11 -0
  92. package/dist/cjs/ai/tools/protocols/raydium/schemas.d.ts.map +1 -0
  93. package/dist/cjs/ai/tools/protocols/raydium/schemas.js +202 -0
  94. package/dist/cjs/ai/tools/protocols/raydium/schemas.js.map +1 -0
  95. package/dist/cjs/ai/tools/protocols/raydium/tools.d.ts +50 -0
  96. package/dist/cjs/ai/tools/protocols/raydium/tools.d.ts.map +1 -0
  97. package/dist/cjs/ai/tools/protocols/raydium/tools.js +84 -0
  98. package/dist/cjs/ai/tools/protocols/raydium/tools.js.map +1 -0
  99. package/dist/cjs/ai/tools/protocols/shared.d.ts +143 -0
  100. package/dist/cjs/ai/tools/protocols/shared.d.ts.map +1 -0
  101. package/dist/cjs/ai/tools/protocols/shared.js +183 -0
  102. package/dist/cjs/ai/tools/protocols/shared.js.map +1 -0
  103. package/dist/cjs/ai/tools/zod/index.d.ts +35 -0
  104. package/dist/cjs/ai/tools/zod/index.d.ts.map +1 -0
  105. package/dist/cjs/ai/tools/zod/index.js +57 -0
  106. package/dist/cjs/ai/tools/zod/index.js.map +1 -0
  107. package/dist/cjs/ai/tools/zod/types.d.ts +25 -0
  108. package/dist/cjs/ai/tools/zod/types.d.ts.map +1 -0
  109. package/dist/cjs/ai/tools/zod/types.js +260 -0
  110. package/dist/cjs/ai/tools/zod/types.js.map +1 -0
  111. package/dist/cjs/core/client.d.ts +186 -0
  112. package/dist/cjs/core/client.d.ts.map +1 -0
  113. package/dist/cjs/core/client.js +250 -0
  114. package/dist/cjs/core/client.js.map +1 -0
  115. package/dist/cjs/core/errors.d.ts +81 -0
  116. package/dist/cjs/core/errors.d.ts.map +1 -0
  117. package/dist/cjs/core/errors.js +109 -0
  118. package/dist/cjs/core/errors.js.map +1 -0
  119. package/dist/cjs/core/transport.d.ts +106 -0
  120. package/dist/cjs/core/transport.d.ts.map +1 -0
  121. package/dist/cjs/core/transport.js +181 -0
  122. package/dist/cjs/core/transport.js.map +1 -0
  123. package/dist/cjs/core/types.d.ts +490 -0
  124. package/dist/cjs/core/types.d.ts.map +1 -0
  125. package/dist/cjs/core/types.js +77 -0
  126. package/dist/cjs/core/types.js.map +1 -0
  127. package/dist/cjs/das/client.d.ts +122 -0
  128. package/dist/cjs/das/client.d.ts.map +1 -0
  129. package/dist/cjs/das/client.js +173 -0
  130. package/dist/cjs/das/client.js.map +1 -0
  131. package/dist/cjs/das/index.d.ts +10 -0
  132. package/dist/cjs/das/index.d.ts.map +1 -0
  133. package/dist/cjs/das/index.js +26 -0
  134. package/dist/cjs/das/index.js.map +1 -0
  135. package/dist/cjs/das/methods/get-asset-batch.d.ts +26 -0
  136. package/dist/cjs/das/methods/get-asset-batch.d.ts.map +1 -0
  137. package/dist/cjs/das/methods/get-asset-batch.js +24 -0
  138. package/dist/cjs/das/methods/get-asset-batch.js.map +1 -0
  139. package/dist/cjs/das/methods/get-asset-proof-batch.d.ts +26 -0
  140. package/dist/cjs/das/methods/get-asset-proof-batch.d.ts.map +1 -0
  141. package/dist/cjs/das/methods/get-asset-proof-batch.js +24 -0
  142. package/dist/cjs/das/methods/get-asset-proof-batch.js.map +1 -0
  143. package/dist/cjs/das/methods/get-asset-proof.d.ts +26 -0
  144. package/dist/cjs/das/methods/get-asset-proof.d.ts.map +1 -0
  145. package/dist/cjs/das/methods/get-asset-proof.js +24 -0
  146. package/dist/cjs/das/methods/get-asset-proof.js.map +1 -0
  147. package/dist/cjs/das/methods/get-asset.d.ts +26 -0
  148. package/dist/cjs/das/methods/get-asset.d.ts.map +1 -0
  149. package/dist/cjs/das/methods/get-asset.js +24 -0
  150. package/dist/cjs/das/methods/get-asset.js.map +1 -0
  151. package/dist/cjs/das/methods/get-assets-by-authority.d.ts +45 -0
  152. package/dist/cjs/das/methods/get-assets-by-authority.d.ts.map +1 -0
  153. package/dist/cjs/das/methods/get-assets-by-authority.js +27 -0
  154. package/dist/cjs/das/methods/get-assets-by-authority.js.map +1 -0
  155. package/dist/cjs/das/methods/get-assets-by-creator.d.ts +48 -0
  156. package/dist/cjs/das/methods/get-assets-by-creator.d.ts.map +1 -0
  157. package/dist/cjs/das/methods/get-assets-by-creator.js +27 -0
  158. package/dist/cjs/das/methods/get-assets-by-creator.js.map +1 -0
  159. package/dist/cjs/das/methods/get-assets-by-group.d.ts +48 -0
  160. package/dist/cjs/das/methods/get-assets-by-group.d.ts.map +1 -0
  161. package/dist/cjs/das/methods/get-assets-by-group.js +27 -0
  162. package/dist/cjs/das/methods/get-assets-by-group.js.map +1 -0
  163. package/dist/cjs/das/methods/get-assets-by-owner.d.ts +52 -0
  164. package/dist/cjs/das/methods/get-assets-by-owner.d.ts.map +1 -0
  165. package/dist/cjs/das/methods/get-assets-by-owner.js +28 -0
  166. package/dist/cjs/das/methods/get-assets-by-owner.js.map +1 -0
  167. package/dist/cjs/das/methods/get-signatures-for-asset.d.ts +61 -0
  168. package/dist/cjs/das/methods/get-signatures-for-asset.d.ts.map +1 -0
  169. package/dist/cjs/das/methods/get-signatures-for-asset.js +27 -0
  170. package/dist/cjs/das/methods/get-signatures-for-asset.js.map +1 -0
  171. package/dist/cjs/das/methods/get-token-accounts.d.ts +58 -0
  172. package/dist/cjs/das/methods/get-token-accounts.d.ts.map +1 -0
  173. package/dist/cjs/das/methods/get-token-accounts.js +27 -0
  174. package/dist/cjs/das/methods/get-token-accounts.js.map +1 -0
  175. package/dist/cjs/das/methods/index.d.ts +17 -0
  176. package/dist/cjs/das/methods/index.d.ts.map +1 -0
  177. package/dist/cjs/das/methods/index.js +33 -0
  178. package/dist/cjs/das/methods/index.js.map +1 -0
  179. package/dist/cjs/das/methods/search-assets.d.ts +29 -0
  180. package/dist/cjs/das/methods/search-assets.d.ts.map +1 -0
  181. package/dist/cjs/das/methods/search-assets.js +28 -0
  182. package/dist/cjs/das/methods/search-assets.js.map +1 -0
  183. package/dist/cjs/das/types.d.ts +257 -0
  184. package/dist/cjs/das/types.d.ts.map +1 -0
  185. package/dist/cjs/das/types.js +3 -0
  186. package/dist/cjs/das/types.js.map +1 -0
  187. package/dist/cjs/grpc/index.d.ts +10 -0
  188. package/dist/cjs/grpc/index.d.ts.map +1 -0
  189. package/dist/cjs/grpc/index.js +26 -0
  190. package/dist/cjs/grpc/index.js.map +1 -0
  191. package/dist/cjs/grpc/parser/decoder.d.ts +117 -0
  192. package/dist/cjs/grpc/parser/decoder.d.ts.map +1 -0
  193. package/dist/cjs/grpc/parser/decoder.js +605 -0
  194. package/dist/cjs/grpc/parser/decoder.js.map +1 -0
  195. package/dist/cjs/grpc/parser/geyser-parser.d.ts +184 -0
  196. package/dist/cjs/grpc/parser/geyser-parser.d.ts.map +1 -0
  197. package/dist/cjs/grpc/parser/geyser-parser.js +279 -0
  198. package/dist/cjs/grpc/parser/geyser-parser.js.map +1 -0
  199. package/dist/cjs/grpc/parser/index.d.ts +12 -0
  200. package/dist/cjs/grpc/parser/index.d.ts.map +1 -0
  201. package/dist/cjs/grpc/parser/index.js +46 -0
  202. package/dist/cjs/grpc/parser/index.js.map +1 -0
  203. package/dist/cjs/grpc/parser/programs.d.ts +69 -0
  204. package/dist/cjs/grpc/parser/programs.d.ts.map +1 -0
  205. package/dist/cjs/grpc/parser/programs.js +273 -0
  206. package/dist/cjs/grpc/parser/programs.js.map +1 -0
  207. package/dist/cjs/grpc/parser/types.d.ts +344 -0
  208. package/dist/cjs/grpc/parser/types.d.ts.map +1 -0
  209. package/dist/cjs/grpc/parser/types.js +13 -0
  210. package/dist/cjs/grpc/parser/types.js.map +1 -0
  211. package/dist/cjs/grpc/transport.d.ts +96 -0
  212. package/dist/cjs/grpc/transport.d.ts.map +1 -0
  213. package/dist/cjs/grpc/transport.js +164 -0
  214. package/dist/cjs/grpc/transport.js.map +1 -0
  215. package/dist/cjs/grpc/types.d.ts +51 -0
  216. package/dist/cjs/grpc/types.d.ts.map +1 -0
  217. package/dist/cjs/grpc/types.js +9 -0
  218. package/dist/cjs/grpc/types.js.map +1 -0
  219. package/dist/cjs/index.d.ts +42 -27
  220. package/dist/cjs/index.d.ts.map +1 -1
  221. package/dist/cjs/index.js +54 -51
  222. package/dist/cjs/index.js.map +1 -1
  223. package/dist/cjs/kit/index.d.ts +94 -0
  224. package/dist/cjs/kit/index.d.ts.map +1 -0
  225. package/dist/cjs/kit/index.js +196 -0
  226. package/dist/cjs/kit/index.js.map +1 -0
  227. package/dist/cjs/rpc/index.d.ts +9 -0
  228. package/dist/cjs/rpc/index.d.ts.map +1 -0
  229. package/dist/cjs/rpc/index.js +25 -0
  230. package/dist/cjs/rpc/index.js.map +1 -0
  231. package/dist/cjs/rpc/methods/get-account-info.d.ts +37 -0
  232. package/dist/cjs/rpc/methods/get-account-info.d.ts.map +1 -0
  233. package/dist/cjs/rpc/methods/get-account-info.js +34 -0
  234. package/dist/cjs/rpc/methods/get-account-info.js.map +1 -0
  235. package/dist/cjs/rpc/methods/get-balance.d.ts +28 -0
  236. package/dist/cjs/rpc/methods/get-balance.d.ts.map +1 -0
  237. package/dist/cjs/rpc/methods/get-balance.js +28 -0
  238. package/dist/cjs/rpc/methods/get-balance.js.map +1 -0
  239. package/dist/cjs/rpc/methods/get-block-commitment.d.ts +28 -0
  240. package/dist/cjs/rpc/methods/get-block-commitment.d.ts.map +1 -0
  241. package/dist/cjs/rpc/methods/get-block-commitment.js +23 -0
  242. package/dist/cjs/rpc/methods/get-block-commitment.js.map +1 -0
  243. package/dist/cjs/rpc/methods/get-block-height.d.ts +27 -0
  244. package/dist/cjs/rpc/methods/get-block-height.d.ts.map +1 -0
  245. package/dist/cjs/rpc/methods/get-block-height.js +27 -0
  246. package/dist/cjs/rpc/methods/get-block-height.js.map +1 -0
  247. package/dist/cjs/rpc/methods/get-block-production.d.ts +37 -0
  248. package/dist/cjs/rpc/methods/get-block-production.d.ts.map +1 -0
  249. package/dist/cjs/rpc/methods/get-block-production.js +30 -0
  250. package/dist/cjs/rpc/methods/get-block-production.js.map +1 -0
  251. package/dist/cjs/rpc/methods/get-block-time.d.ts +25 -0
  252. package/dist/cjs/rpc/methods/get-block-time.d.ts.map +1 -0
  253. package/dist/cjs/rpc/methods/get-block-time.js +23 -0
  254. package/dist/cjs/rpc/methods/get-block-time.js.map +1 -0
  255. package/dist/cjs/rpc/methods/get-block.d.ts +68 -0
  256. package/dist/cjs/rpc/methods/get-block.d.ts.map +1 -0
  257. package/dist/cjs/rpc/methods/get-block.js +35 -0
  258. package/dist/cjs/rpc/methods/get-block.js.map +1 -0
  259. package/dist/cjs/rpc/methods/get-blocks-with-limit.d.ts +27 -0
  260. package/dist/cjs/rpc/methods/get-blocks-with-limit.d.ts.map +1 -0
  261. package/dist/cjs/rpc/methods/get-blocks-with-limit.js +25 -0
  262. package/dist/cjs/rpc/methods/get-blocks-with-limit.js.map +1 -0
  263. package/dist/cjs/rpc/methods/get-blocks.d.ts +27 -0
  264. package/dist/cjs/rpc/methods/get-blocks.d.ts.map +1 -0
  265. package/dist/cjs/rpc/methods/get-blocks.js +28 -0
  266. package/dist/cjs/rpc/methods/get-blocks.js.map +1 -0
  267. package/dist/cjs/rpc/methods/get-cluster-nodes.d.ts +24 -0
  268. package/dist/cjs/rpc/methods/get-cluster-nodes.d.ts.map +1 -0
  269. package/dist/cjs/rpc/methods/get-cluster-nodes.js +22 -0
  270. package/dist/cjs/rpc/methods/get-cluster-nodes.js.map +1 -0
  271. package/dist/cjs/rpc/methods/get-epoch-info.d.ts +27 -0
  272. package/dist/cjs/rpc/methods/get-epoch-info.d.ts.map +1 -0
  273. package/dist/cjs/rpc/methods/get-epoch-info.js +27 -0
  274. package/dist/cjs/rpc/methods/get-epoch-info.js.map +1 -0
  275. package/dist/cjs/rpc/methods/get-epoch-schedule.d.ts +24 -0
  276. package/dist/cjs/rpc/methods/get-epoch-schedule.d.ts.map +1 -0
  277. package/dist/cjs/rpc/methods/get-epoch-schedule.js +22 -0
  278. package/dist/cjs/rpc/methods/get-epoch-schedule.js.map +1 -0
  279. package/dist/cjs/rpc/methods/get-fee-for-message.d.ts +28 -0
  280. package/dist/cjs/rpc/methods/get-fee-for-message.d.ts.map +1 -0
  281. package/dist/cjs/rpc/methods/get-fee-for-message.js +28 -0
  282. package/dist/cjs/rpc/methods/get-fee-for-message.js.map +1 -0
  283. package/dist/cjs/rpc/methods/get-first-available-block.d.ts +24 -0
  284. package/dist/cjs/rpc/methods/get-first-available-block.d.ts.map +1 -0
  285. package/dist/cjs/rpc/methods/get-first-available-block.js +22 -0
  286. package/dist/cjs/rpc/methods/get-first-available-block.js.map +1 -0
  287. package/dist/cjs/rpc/methods/get-genesis-hash.d.ts +23 -0
  288. package/dist/cjs/rpc/methods/get-genesis-hash.d.ts.map +1 -0
  289. package/dist/cjs/rpc/methods/get-genesis-hash.js +22 -0
  290. package/dist/cjs/rpc/methods/get-genesis-hash.js.map +1 -0
  291. package/dist/cjs/rpc/methods/get-health.d.ts +23 -0
  292. package/dist/cjs/rpc/methods/get-health.d.ts.map +1 -0
  293. package/dist/cjs/rpc/methods/get-health.js +22 -0
  294. package/dist/cjs/rpc/methods/get-health.js.map +1 -0
  295. package/dist/cjs/rpc/methods/get-highest-snapshot-slot.d.ts +27 -0
  296. package/dist/cjs/rpc/methods/get-highest-snapshot-slot.d.ts.map +1 -0
  297. package/dist/cjs/rpc/methods/get-highest-snapshot-slot.js +22 -0
  298. package/dist/cjs/rpc/methods/get-highest-snapshot-slot.js.map +1 -0
  299. package/dist/cjs/rpc/methods/get-identity.d.ts +26 -0
  300. package/dist/cjs/rpc/methods/get-identity.d.ts.map +1 -0
  301. package/dist/cjs/rpc/methods/get-identity.js +22 -0
  302. package/dist/cjs/rpc/methods/get-identity.js.map +1 -0
  303. package/dist/cjs/rpc/methods/get-inflation-governor.d.ts +25 -0
  304. package/dist/cjs/rpc/methods/get-inflation-governor.d.ts.map +1 -0
  305. package/dist/cjs/rpc/methods/get-inflation-governor.js +24 -0
  306. package/dist/cjs/rpc/methods/get-inflation-governor.js.map +1 -0
  307. package/dist/cjs/rpc/methods/get-inflation-rate.d.ts +24 -0
  308. package/dist/cjs/rpc/methods/get-inflation-rate.d.ts.map +1 -0
  309. package/dist/cjs/rpc/methods/get-inflation-rate.js +22 -0
  310. package/dist/cjs/rpc/methods/get-inflation-rate.js.map +1 -0
  311. package/dist/cjs/rpc/methods/get-inflation-reward.d.ts +29 -0
  312. package/dist/cjs/rpc/methods/get-inflation-reward.d.ts.map +1 -0
  313. package/dist/cjs/rpc/methods/get-inflation-reward.js +31 -0
  314. package/dist/cjs/rpc/methods/get-inflation-reward.js.map +1 -0
  315. package/dist/cjs/rpc/methods/get-largest-accounts.d.ts +30 -0
  316. package/dist/cjs/rpc/methods/get-largest-accounts.d.ts.map +1 -0
  317. package/dist/cjs/rpc/methods/get-largest-accounts.js +28 -0
  318. package/dist/cjs/rpc/methods/get-largest-accounts.js.map +1 -0
  319. package/dist/cjs/rpc/methods/get-latest-blockhash.d.ts +36 -0
  320. package/dist/cjs/rpc/methods/get-latest-blockhash.d.ts.map +1 -0
  321. package/dist/cjs/rpc/methods/get-latest-blockhash.js +27 -0
  322. package/dist/cjs/rpc/methods/get-latest-blockhash.js.map +1 -0
  323. package/dist/cjs/rpc/methods/get-leader-schedule.d.ts +27 -0
  324. package/dist/cjs/rpc/methods/get-leader-schedule.d.ts.map +1 -0
  325. package/dist/cjs/rpc/methods/get-leader-schedule.js +28 -0
  326. package/dist/cjs/rpc/methods/get-leader-schedule.js.map +1 -0
  327. package/dist/cjs/rpc/methods/get-max-retransmit-slot.d.ts +23 -0
  328. package/dist/cjs/rpc/methods/get-max-retransmit-slot.d.ts.map +1 -0
  329. package/dist/cjs/rpc/methods/get-max-retransmit-slot.js +21 -0
  330. package/dist/cjs/rpc/methods/get-max-retransmit-slot.js.map +1 -0
  331. package/dist/cjs/rpc/methods/get-max-shred-insert-slot.d.ts +23 -0
  332. package/dist/cjs/rpc/methods/get-max-shred-insert-slot.d.ts.map +1 -0
  333. package/dist/cjs/rpc/methods/get-max-shred-insert-slot.js +21 -0
  334. package/dist/cjs/rpc/methods/get-max-shred-insert-slot.js.map +1 -0
  335. package/dist/cjs/rpc/methods/get-minimum-balance-for-rent-exemption.d.ts +26 -0
  336. package/dist/cjs/rpc/methods/get-minimum-balance-for-rent-exemption.d.ts.map +1 -0
  337. package/dist/cjs/rpc/methods/get-minimum-balance-for-rent-exemption.js +24 -0
  338. package/dist/cjs/rpc/methods/get-minimum-balance-for-rent-exemption.js.map +1 -0
  339. package/dist/cjs/rpc/methods/get-multiple-accounts.d.ts +35 -0
  340. package/dist/cjs/rpc/methods/get-multiple-accounts.d.ts.map +1 -0
  341. package/dist/cjs/rpc/methods/get-multiple-accounts.js +32 -0
  342. package/dist/cjs/rpc/methods/get-multiple-accounts.js.map +1 -0
  343. package/dist/cjs/rpc/methods/get-program-accounts.d.ts +51 -0
  344. package/dist/cjs/rpc/methods/get-program-accounts.d.ts.map +1 -0
  345. package/dist/cjs/rpc/methods/get-program-accounts.js +41 -0
  346. package/dist/cjs/rpc/methods/get-program-accounts.js.map +1 -0
  347. package/dist/cjs/rpc/methods/get-recent-performance-samples.d.ts +24 -0
  348. package/dist/cjs/rpc/methods/get-recent-performance-samples.d.ts.map +1 -0
  349. package/dist/cjs/rpc/methods/get-recent-performance-samples.js +22 -0
  350. package/dist/cjs/rpc/methods/get-recent-performance-samples.js.map +1 -0
  351. package/dist/cjs/rpc/methods/get-recent-prioritization-fees.d.ts +27 -0
  352. package/dist/cjs/rpc/methods/get-recent-prioritization-fees.d.ts.map +1 -0
  353. package/dist/cjs/rpc/methods/get-recent-prioritization-fees.js +22 -0
  354. package/dist/cjs/rpc/methods/get-recent-prioritization-fees.js.map +1 -0
  355. package/dist/cjs/rpc/methods/get-signature-statuses.d.ts +32 -0
  356. package/dist/cjs/rpc/methods/get-signature-statuses.d.ts.map +1 -0
  357. package/dist/cjs/rpc/methods/get-signature-statuses.js +26 -0
  358. package/dist/cjs/rpc/methods/get-signature-statuses.js.map +1 -0
  359. package/dist/cjs/rpc/methods/get-signatures-for-address.d.ts +40 -0
  360. package/dist/cjs/rpc/methods/get-signatures-for-address.d.ts.map +1 -0
  361. package/dist/cjs/rpc/methods/get-signatures-for-address.js +52 -0
  362. package/dist/cjs/rpc/methods/get-signatures-for-address.js.map +1 -0
  363. package/dist/cjs/rpc/methods/get-slot-leader.d.ts +26 -0
  364. package/dist/cjs/rpc/methods/get-slot-leader.d.ts.map +1 -0
  365. package/dist/cjs/rpc/methods/get-slot-leader.js +26 -0
  366. package/dist/cjs/rpc/methods/get-slot-leader.js.map +1 -0
  367. package/dist/cjs/rpc/methods/get-slot-leaders.d.ts +25 -0
  368. package/dist/cjs/rpc/methods/get-slot-leaders.d.ts.map +1 -0
  369. package/dist/cjs/rpc/methods/get-slot-leaders.js +23 -0
  370. package/dist/cjs/rpc/methods/get-slot-leaders.js.map +1 -0
  371. package/dist/cjs/rpc/methods/get-slot.d.ts +26 -0
  372. package/dist/cjs/rpc/methods/get-slot.d.ts.map +1 -0
  373. package/dist/cjs/rpc/methods/get-slot.js +26 -0
  374. package/dist/cjs/rpc/methods/get-slot.js.map +1 -0
  375. package/dist/cjs/rpc/methods/get-stake-activation.d.ts +37 -0
  376. package/dist/cjs/rpc/methods/get-stake-activation.d.ts.map +1 -0
  377. package/dist/cjs/rpc/methods/get-stake-activation.js +33 -0
  378. package/dist/cjs/rpc/methods/get-stake-activation.js.map +1 -0
  379. package/dist/cjs/rpc/methods/get-stake-minimum-delegation.d.ts +24 -0
  380. package/dist/cjs/rpc/methods/get-stake-minimum-delegation.d.ts.map +1 -0
  381. package/dist/cjs/rpc/methods/get-stake-minimum-delegation.js +22 -0
  382. package/dist/cjs/rpc/methods/get-stake-minimum-delegation.js.map +1 -0
  383. package/dist/cjs/rpc/methods/get-supply.d.ts +27 -0
  384. package/dist/cjs/rpc/methods/get-supply.d.ts.map +1 -0
  385. package/dist/cjs/rpc/methods/get-supply.js +28 -0
  386. package/dist/cjs/rpc/methods/get-supply.js.map +1 -0
  387. package/dist/cjs/rpc/methods/get-token-account-balance.d.ts +26 -0
  388. package/dist/cjs/rpc/methods/get-token-account-balance.d.ts.map +1 -0
  389. package/dist/cjs/rpc/methods/get-token-account-balance.js +24 -0
  390. package/dist/cjs/rpc/methods/get-token-account-balance.js.map +1 -0
  391. package/dist/cjs/rpc/methods/get-token-accounts-by-delegate.d.ts +33 -0
  392. package/dist/cjs/rpc/methods/get-token-accounts-by-delegate.d.ts.map +1 -0
  393. package/dist/cjs/rpc/methods/get-token-accounts-by-delegate.js +29 -0
  394. package/dist/cjs/rpc/methods/get-token-accounts-by-delegate.js.map +1 -0
  395. package/dist/cjs/rpc/methods/get-token-accounts-by-owner.d.ts +33 -0
  396. package/dist/cjs/rpc/methods/get-token-accounts-by-owner.d.ts.map +1 -0
  397. package/dist/cjs/rpc/methods/get-token-accounts-by-owner.js +29 -0
  398. package/dist/cjs/rpc/methods/get-token-accounts-by-owner.js.map +1 -0
  399. package/dist/cjs/rpc/methods/get-token-largest-accounts.d.ts +31 -0
  400. package/dist/cjs/rpc/methods/get-token-largest-accounts.d.ts.map +1 -0
  401. package/dist/cjs/rpc/methods/get-token-largest-accounts.js +23 -0
  402. package/dist/cjs/rpc/methods/get-token-largest-accounts.js.map +1 -0
  403. package/dist/cjs/rpc/methods/get-token-supply.d.ts +26 -0
  404. package/dist/cjs/rpc/methods/get-token-supply.d.ts.map +1 -0
  405. package/dist/cjs/rpc/methods/get-token-supply.js +24 -0
  406. package/dist/cjs/rpc/methods/get-token-supply.js.map +1 -0
  407. package/dist/cjs/rpc/methods/get-transaction-count.d.ts +26 -0
  408. package/dist/cjs/rpc/methods/get-transaction-count.d.ts.map +1 -0
  409. package/dist/cjs/rpc/methods/get-transaction-count.js +26 -0
  410. package/dist/cjs/rpc/methods/get-transaction-count.js.map +1 -0
  411. package/dist/cjs/rpc/methods/get-transaction.d.ts +36 -0
  412. package/dist/cjs/rpc/methods/get-transaction.d.ts.map +1 -0
  413. package/dist/cjs/rpc/methods/get-transaction.js +32 -0
  414. package/dist/cjs/rpc/methods/get-transaction.js.map +1 -0
  415. package/dist/cjs/rpc/methods/get-version.d.ts +26 -0
  416. package/dist/cjs/rpc/methods/get-version.d.ts.map +1 -0
  417. package/dist/cjs/rpc/methods/get-version.js +22 -0
  418. package/dist/cjs/rpc/methods/get-version.js.map +1 -0
  419. package/dist/cjs/rpc/methods/get-vote-accounts.d.ts +29 -0
  420. package/dist/cjs/rpc/methods/get-vote-accounts.d.ts.map +1 -0
  421. package/dist/cjs/rpc/methods/get-vote-accounts.js +32 -0
  422. package/dist/cjs/rpc/methods/get-vote-accounts.js.map +1 -0
  423. package/dist/cjs/rpc/methods/index.d.ts +57 -0
  424. package/dist/cjs/rpc/methods/index.d.ts.map +1 -0
  425. package/dist/cjs/rpc/methods/index.js +84 -0
  426. package/dist/cjs/rpc/methods/index.js.map +1 -0
  427. package/dist/cjs/rpc/methods/is-blockhash-valid.d.ts +27 -0
  428. package/dist/cjs/rpc/methods/is-blockhash-valid.d.ts.map +1 -0
  429. package/dist/cjs/rpc/methods/is-blockhash-valid.js +27 -0
  430. package/dist/cjs/rpc/methods/is-blockhash-valid.js.map +1 -0
  431. package/dist/cjs/rpc/methods/minimum-ledger-slot.d.ts +23 -0
  432. package/dist/cjs/rpc/methods/minimum-ledger-slot.d.ts.map +1 -0
  433. package/dist/cjs/rpc/methods/minimum-ledger-slot.js +21 -0
  434. package/dist/cjs/rpc/methods/minimum-ledger-slot.js.map +1 -0
  435. package/dist/cjs/rpc/methods/request-airdrop.d.ts +29 -0
  436. package/dist/cjs/rpc/methods/request-airdrop.d.ts.map +1 -0
  437. package/dist/cjs/rpc/methods/request-airdrop.js +30 -0
  438. package/dist/cjs/rpc/methods/request-airdrop.js.map +1 -0
  439. package/dist/cjs/rpc/methods/send-transaction.d.ts +38 -0
  440. package/dist/cjs/rpc/methods/send-transaction.d.ts.map +1 -0
  441. package/dist/cjs/rpc/methods/send-transaction.js +34 -0
  442. package/dist/cjs/rpc/methods/send-transaction.js.map +1 -0
  443. package/dist/cjs/rpc/methods/simulate-transaction.d.ts +63 -0
  444. package/dist/cjs/rpc/methods/simulate-transaction.d.ts.map +1 -0
  445. package/dist/cjs/rpc/methods/simulate-transaction.js +37 -0
  446. package/dist/cjs/rpc/methods/simulate-transaction.js.map +1 -0
  447. package/dist/cjs/rpc/solana-rpc.d.ts +190 -0
  448. package/dist/cjs/rpc/solana-rpc.d.ts.map +1 -0
  449. package/dist/cjs/rpc/solana-rpc.js +173 -0
  450. package/dist/cjs/rpc/solana-rpc.js.map +1 -0
  451. package/dist/cjs/utils/env.d.ts +49 -0
  452. package/dist/cjs/utils/env.d.ts.map +1 -0
  453. package/dist/cjs/utils/env.js +53 -0
  454. package/dist/cjs/utils/env.js.map +1 -0
  455. package/dist/cjs/utils/helpers.d.ts +92 -87
  456. package/dist/cjs/utils/helpers.d.ts.map +1 -1
  457. package/dist/cjs/utils/helpers.js +104 -235
  458. package/dist/cjs/utils/helpers.js.map +1 -1
  459. package/dist/cjs/utils/index.d.ts +10 -0
  460. package/dist/cjs/utils/index.d.ts.map +1 -0
  461. package/dist/cjs/utils/index.js +26 -0
  462. package/dist/cjs/utils/index.js.map +1 -0
  463. package/dist/cjs/utils/synapse.d.ts +132 -0
  464. package/dist/cjs/utils/synapse.d.ts.map +1 -0
  465. package/dist/cjs/utils/synapse.js +173 -0
  466. package/dist/cjs/utils/synapse.js.map +1 -0
  467. package/dist/cjs/websocket/client.d.ts +97 -177
  468. package/dist/cjs/websocket/client.d.ts.map +1 -1
  469. package/dist/cjs/websocket/client.js +256 -407
  470. package/dist/cjs/websocket/client.js.map +1 -1
  471. package/dist/cjs/websocket/index.d.ts +6 -3
  472. package/dist/cjs/websocket/index.d.ts.map +1 -1
  473. package/dist/cjs/websocket/index.js +21 -5
  474. package/dist/cjs/websocket/index.js.map +1 -1
  475. package/dist/cjs/websocket/types.d.ts +120 -0
  476. package/dist/cjs/websocket/types.d.ts.map +1 -0
  477. package/dist/cjs/websocket/types.js +3 -0
  478. package/dist/cjs/websocket/types.js.map +1 -0
  479. package/dist/docs/assets/highlight.css +24 -24
  480. package/dist/docs/assets/navigation.js +1 -1
  481. package/dist/docs/assets/search.js +1 -1
  482. package/dist/docs/classes/DasClient.html +77 -0
  483. package/dist/docs/classes/GeyserParser.html +89 -0
  484. package/dist/docs/classes/GrpcTransport.html +41 -0
  485. package/dist/docs/classes/HttpTransport.html +29 -0
  486. package/dist/docs/classes/NetworkError.html +15 -13
  487. package/dist/docs/classes/RpcMethodNotFoundError.html +40 -0
  488. package/dist/docs/classes/SolanaError.html +40 -0
  489. package/dist/docs/classes/SolanaRpc.html +171 -0
  490. package/dist/docs/classes/SynapseClient.html +66 -54
  491. package/dist/docs/classes/SynapseError.html +17 -9
  492. package/dist/docs/classes/TimeoutError.html +40 -0
  493. package/dist/docs/classes/UpstreamError.html +19 -11
  494. package/dist/docs/classes/WsClient.html +53 -0
  495. package/dist/docs/enums/AccountRole.html +40 -0
  496. package/dist/docs/enums/SynapseNetwork.html +5 -0
  497. package/dist/docs/enums/SynapseRegion.html +4 -0
  498. package/dist/docs/functions/Epoch-1.html +5 -0
  499. package/dist/docs/functions/Lamports-2.html +5 -0
  500. package/dist/docs/functions/Pubkey-1.html +5 -0
  501. package/dist/docs/functions/Sig.html +5 -0
  502. package/dist/docs/functions/Slot-1.html +5 -0
  503. package/dist/docs/functions/UnixTs.html +5 -0
  504. package/dist/docs/functions/addSignersToTransactionMessage.html +14 -0
  505. package/dist/docs/functions/address-1.html +15 -0
  506. package/dist/docs/functions/airdropFactory.html +9 -0
  507. package/dist/docs/functions/appendTransactionMessageInstruction.html +8 -0
  508. package/dist/docs/functions/appendTransactionMessageInstructions.html +8 -0
  509. package/dist/docs/functions/assertAccountDecoded.html +13 -0
  510. package/dist/docs/functions/assertAccountExists.html +10 -0
  511. package/dist/docs/functions/assertIsAddress.html +7 -0
  512. package/dist/docs/functions/assertIsKeyPairSigner.html +6 -0
  513. package/dist/docs/functions/assertIsKitSignature.html +7 -0
  514. package/dist/docs/functions/assertIsTransactionSigner.html +7 -0
  515. package/dist/docs/functions/autoSelectRegion.html +6 -0
  516. package/dist/docs/functions/base58Encode.html +4 -0
  517. package/dist/docs/functions/blockhash.html +15 -0
  518. package/dist/docs/functions/chunk.html +11 -0
  519. package/dist/docs/functions/commitmentComparator.html +1 -0
  520. package/dist/docs/functions/compileTransaction.html +14 -0
  521. package/dist/docs/functions/compileTransactionMessage.html +8 -0
  522. package/dist/docs/functions/computeBalanceChanges.html +3 -0
  523. package/dist/docs/functions/computeTokenBalanceChanges.html +3 -0
  524. package/dist/docs/functions/createAddressWithSeed.html +6 -0
  525. package/dist/docs/functions/createDefaultRpcSubscriptionsTransport.html +7 -0
  526. package/dist/docs/functions/createDefaultRpcTransport.html +10 -0
  527. package/dist/docs/functions/createDefaultSolanaRpcSubscriptionsChannelCreator.html +5 -0
  528. package/dist/docs/functions/createKeyPairFromBytes.html +12 -0
  529. package/dist/docs/functions/createKeyPairFromPrivateKeyBytes.html +17 -0
  530. package/dist/docs/functions/createKeyPairSignerFromBytes.html +6 -0
  531. package/dist/docs/functions/createKeyPairSignerFromPrivateKeyBytes.html +6 -0
  532. package/dist/docs/functions/createNoopSigner.html +6 -0
  533. package/dist/docs/functions/createRpc.html +3 -0
  534. package/dist/docs/functions/createSignableMessage.html +6 -0
  535. package/dist/docs/functions/createSignerFromKeyPair.html +12 -0
  536. package/dist/docs/functions/createSolanaRpc.html +4 -0
  537. package/dist/docs/functions/createSolanaRpcApi.html +12 -0
  538. package/dist/docs/functions/createSolanaRpcFromTransport.html +3 -0
  539. package/dist/docs/functions/createSolanaRpcSubscriptions.html +4 -0
  540. package/dist/docs/functions/createSolanaRpcSubscriptionsApi.html +1 -0
  541. package/dist/docs/functions/createSolanaRpcSubscriptionsFromTransport.html +3 -0
  542. package/dist/docs/functions/createSolanaRpcSubscriptions_UNSTABLE.html +4 -0
  543. package/dist/docs/functions/createSynapse.html +8 -0
  544. package/dist/docs/functions/createTransactionMessage.html +6 -0
  545. package/dist/docs/functions/decodeAccount.html +9 -0
  546. package/dist/docs/functions/devnet.html +2 -0
  547. package/dist/docs/functions/fetchEncodedAccount.html +9 -0
  548. package/dist/docs/functions/fetchEncodedAccounts.html +11 -0
  549. package/dist/docs/functions/fetchJsonParsedAccount.html +12 -0
  550. package/dist/docs/functions/fetchJsonParsedAccounts.html +14 -0
  551. package/dist/docs/functions/fromKitAddress.html +5 -0
  552. package/dist/docs/functions/generateKeyPair.html +6 -0
  553. package/dist/docs/functions/generateKeyPairSigner.html +7 -0
  554. package/dist/docs/functions/getAccountInfo.html +11 -0
  555. package/dist/docs/functions/getAddressCodec.html +6 -0
  556. package/dist/docs/functions/getAddressComparator.html +1 -0
  557. package/dist/docs/functions/getAddressDecoder.html +6 -0
  558. package/dist/docs/functions/getAddressEncoder.html +5 -0
  559. package/dist/docs/functions/getAddressFromPublicKey.html +5 -0
  560. package/dist/docs/functions/getAsset.html +10 -0
  561. package/dist/docs/functions/getAssetBatch.html +10 -0
  562. package/dist/docs/functions/getAssetProof.html +10 -0
  563. package/dist/docs/functions/getAssetProofBatch.html +10 -0
  564. package/dist/docs/functions/getAssetsByAuthority.html +10 -0
  565. package/dist/docs/functions/getAssetsByCreator.html +10 -0
  566. package/dist/docs/functions/getAssetsByGroup.html +10 -0
  567. package/dist/docs/functions/getAssetsByOwner.html +10 -0
  568. package/dist/docs/functions/getBalance.html +11 -0
  569. package/dist/docs/functions/getBase58Codec.html +26 -0
  570. package/dist/docs/functions/getBase58Decoder.html +10 -0
  571. package/dist/docs/functions/getBase58Encoder.html +11 -0
  572. package/dist/docs/functions/getBase64Codec.html +26 -0
  573. package/dist/docs/functions/getBase64Decoder.html +10 -0
  574. package/dist/docs/functions/getBase64Encoder.html +11 -0
  575. package/dist/docs/functions/getBlock.html +10 -0
  576. package/dist/docs/functions/getBlockCommitment.html +10 -0
  577. package/dist/docs/functions/getBlockHeight.html +10 -0
  578. package/dist/docs/functions/getBlockProduction.html +9 -0
  579. package/dist/docs/functions/getBlockTime.html +10 -0
  580. package/dist/docs/functions/getBlocks.html +12 -0
  581. package/dist/docs/functions/getBlocksWithLimit.html +12 -0
  582. package/dist/docs/functions/getClusterNodes.html +9 -0
  583. package/dist/docs/functions/getEnvironment.html +12 -0
  584. package/dist/docs/functions/getEpochInfo.html +10 -0
  585. package/dist/docs/functions/getEpochSchedule.html +9 -0
  586. package/dist/docs/functions/getFeeForMessage.html +11 -0
  587. package/dist/docs/functions/getFirstAvailableBlock.html +9 -0
  588. package/dist/docs/functions/getGenesisHash.html +9 -0
  589. package/dist/docs/functions/getHealth.html +9 -0
  590. package/dist/docs/functions/getHighestSnapshotSlot.html +9 -0
  591. package/dist/docs/functions/getIdentity.html +9 -0
  592. package/dist/docs/functions/getInflationGovernor.html +10 -0
  593. package/dist/docs/functions/getInflationRate.html +9 -0
  594. package/dist/docs/functions/getInflationReward.html +10 -0
  595. package/dist/docs/functions/getLargestAccounts.html +9 -0
  596. package/dist/docs/functions/getLatestBlockhash.html +10 -0
  597. package/dist/docs/functions/getLeaderSchedule.html +10 -0
  598. package/dist/docs/functions/getMaxRetransmitSlot.html +9 -0
  599. package/dist/docs/functions/getMaxShredInsertSlot.html +9 -0
  600. package/dist/docs/functions/getMinimumBalanceForRentExemption.html +12 -0
  601. package/dist/docs/functions/getMultipleAccounts.html +10 -0
  602. package/dist/docs/functions/getProgramAccounts.html +11 -0
  603. package/dist/docs/functions/getProgramCategory.html +4 -0
  604. package/dist/docs/functions/getProgramDerivedAddress.html +6 -0
  605. package/dist/docs/functions/getRecentPerformanceSamples.html +10 -0
  606. package/dist/docs/functions/getRecentPrioritizationFees.html +10 -0
  607. package/dist/docs/functions/getSignatureStatuses.html +10 -0
  608. package/dist/docs/functions/getSignaturesForAddress.html +12 -0
  609. package/dist/docs/functions/getSignaturesForAsset.html +10 -0
  610. package/dist/docs/functions/getSlot.html +10 -0
  611. package/dist/docs/functions/getSlotLeader.html +10 -0
  612. package/dist/docs/functions/getSlotLeaders.html +11 -0
  613. package/dist/docs/functions/getStakeActivation.html +11 -0
  614. package/dist/docs/functions/getStakeMinimumDelegation.html +10 -0
  615. package/dist/docs/functions/getSupply.html +9 -0
  616. package/dist/docs/functions/getTokenAccountBalance.html +11 -0
  617. package/dist/docs/functions/getTokenAccounts.html +10 -0
  618. package/dist/docs/functions/getTokenAccountsByDelegate.html +11 -0
  619. package/dist/docs/functions/getTokenAccountsByOwner.html +11 -0
  620. package/dist/docs/functions/getTokenLargestAccounts.html +11 -0
  621. package/dist/docs/functions/getTokenSupply.html +11 -0
  622. package/dist/docs/functions/getTransaction.html +10 -0
  623. package/dist/docs/functions/getTransactionCount.html +10 -0
  624. package/dist/docs/functions/getVersion.html +9 -0
  625. package/dist/docs/functions/getVoteAccounts.html +9 -0
  626. package/dist/docs/functions/isAddress.html +6 -0
  627. package/dist/docs/functions/isBlockhashValid.html +11 -0
  628. package/dist/docs/functions/isBrowser.html +3 -0
  629. package/dist/docs/functions/isKeyPairSigner.html +6 -0
  630. package/dist/docs/functions/isKitSignature.html +6 -0
  631. package/dist/docs/functions/isProgramInCategory.html +6 -0
  632. package/dist/docs/functions/isServer.html +3 -0
  633. package/dist/docs/functions/isTransactionSigner.html +7 -0
  634. package/dist/docs/functions/isValidPubkey.html +6 -0
  635. package/dist/docs/functions/isValidSignature.html +5 -0
  636. package/dist/docs/functions/kitSignature.html +6 -0
  637. package/dist/docs/functions/kitUnixTimestamp.html +6 -0
  638. package/dist/docs/functions/lamports-1.html +6 -0
  639. package/dist/docs/functions/lamportsToSol.html +8 -0
  640. package/dist/docs/functions/listEndpoints.html +2 -0
  641. package/dist/docs/functions/listNetworks.html +2 -0
  642. package/dist/docs/functions/listRegions.html +2 -0
  643. package/dist/docs/functions/mainnet.html +2 -0
  644. package/dist/docs/functions/minimumLedgerSlot.html +9 -0
  645. package/dist/docs/functions/parseAccountUpdate.html +3 -0
  646. package/dist/docs/functions/parseBase58RpcAccount.html +7 -0
  647. package/dist/docs/functions/parseBase64RpcAccount.html +7 -0
  648. package/dist/docs/functions/parseBlockMeta.html +3 -0
  649. package/dist/docs/functions/parseEntry.html +3 -0
  650. package/dist/docs/functions/parseGeyserUpdate.html +12 -0
  651. package/dist/docs/functions/parseJsonRpcAccount.html +9 -0
  652. package/dist/docs/functions/parseSlotUpdate.html +3 -0
  653. package/dist/docs/functions/parseTimestamp.html +3 -0
  654. package/dist/docs/functions/parseTransaction.html +3 -0
  655. package/dist/docs/functions/partiallySignTransaction.html +12 -0
  656. package/dist/docs/functions/partiallySignTransactionMessageWithSigners.html +22 -0
  657. package/dist/docs/functions/pipe.html +95 -0
  658. package/dist/docs/functions/prependTransactionMessageInstruction.html +8 -0
  659. package/dist/docs/functions/prependTransactionMessageInstructions.html +8 -0
  660. package/dist/docs/functions/probeLatency.html +3 -0
  661. package/dist/docs/functions/rawBufferToBase58.html +3 -0
  662. package/dist/docs/functions/rawBufferToBase64.html +3 -0
  663. package/dist/docs/functions/rawBufferToBytes.html +4 -0
  664. package/dist/docs/functions/rawBufferToHex.html +3 -0
  665. package/dist/docs/functions/requestAirdrop.html +13 -0
  666. package/dist/docs/functions/resolveEndpoint.html +3 -0
  667. package/dist/docs/functions/resolveProgram.html +9 -0
  668. package/dist/docs/functions/resolveProgramBatch.html +6 -0
  669. package/dist/docs/functions/retry.html +12 -0
  670. package/dist/docs/functions/searchAssets.html +10 -0
  671. package/dist/docs/functions/sendAndConfirmDurableNonceTransactionFactory.html +6 -0
  672. package/dist/docs/functions/sendAndConfirmTransactionFactory.html +6 -0
  673. package/dist/docs/functions/sendTransaction.html +10 -0
  674. package/dist/docs/functions/sendTransactionWithoutConfirmingFactory.html +6 -0
  675. package/dist/docs/functions/setTransactionMessageFeePayer.html +7 -0
  676. package/dist/docs/functions/setTransactionMessageFeePayerSigner.html +8 -0
  677. package/dist/docs/functions/setTransactionMessageLifetimeUsingBlockhash.html +7 -0
  678. package/dist/docs/functions/setTransactionMessageLifetimeUsingDurableNonce.html +9 -0
  679. package/dist/docs/functions/signAndSendTransactionMessageWithSigners.html +32 -0
  680. package/dist/docs/functions/signBytes.html +7 -0
  681. package/dist/docs/functions/signTransaction.html +10 -0
  682. package/dist/docs/functions/signTransactionMessageWithSigners.html +13 -0
  683. package/dist/docs/functions/simulateTransaction.html +10 -0
  684. package/dist/docs/functions/sleep.html +5 -0
  685. package/dist/docs/functions/solToLamports.html +8 -0
  686. package/dist/docs/functions/testnet.html +2 -0
  687. package/dist/docs/functions/toClientConfig.html +3 -0
  688. package/dist/docs/functions/toKitAddress.html +8 -0
  689. package/dist/docs/functions/toKitLamports.html +6 -0
  690. package/dist/docs/functions/toKitSignatureString.html +5 -0
  691. package/dist/docs/functions/verifySignature.html +8 -0
  692. package/dist/docs/hierarchy.html +1 -1
  693. package/dist/docs/index.html +389 -531
  694. package/dist/docs/interfaces/AccountInfo.html +12 -4
  695. package/dist/docs/interfaces/AccountNotification.html +5 -0
  696. package/dist/docs/interfaces/AccountSubParams.html +5 -0
  697. package/dist/docs/interfaces/AssetSignatureInfo.html +6 -0
  698. package/dist/docs/interfaces/AssetSignaturesPage.html +7 -0
  699. package/dist/docs/interfaces/BalanceChange.html +13 -0
  700. package/dist/docs/interfaces/BlockProduction.html +7 -0
  701. package/dist/docs/interfaces/BlockResult.html +11 -0
  702. package/dist/docs/interfaces/BlockReward.html +8 -0
  703. package/dist/docs/interfaces/BlockhashResult.html +5 -0
  704. package/dist/docs/interfaces/CallOptions.html +13 -0
  705. package/dist/docs/interfaces/ConfirmedTransaction.html +10 -3
  706. package/dist/docs/interfaces/ContactInfo.html +10 -0
  707. package/dist/docs/interfaces/DasAsset.html +19 -0
  708. package/dist/docs/interfaces/DasAssetProof.html +9 -0
  709. package/dist/docs/interfaces/DasAuthority.html +6 -0
  710. package/dist/docs/interfaces/DasCompression.html +13 -0
  711. package/dist/docs/interfaces/DasContent.html +10 -0
  712. package/dist/docs/interfaces/DasCreator.html +7 -0
  713. package/dist/docs/interfaces/DasFile.html +8 -0
  714. package/dist/docs/interfaces/DasGrouping.html +8 -0
  715. package/dist/docs/interfaces/DasOpts.html +5 -0
  716. package/dist/docs/interfaces/DasOwnership.html +9 -0
  717. package/dist/docs/interfaces/DasPage.html +11 -0
  718. package/dist/docs/interfaces/DasRoyalty.html +10 -0
  719. package/dist/docs/interfaces/DasSearchParams.html +34 -0
  720. package/dist/docs/interfaces/DasSupply.html +7 -0
  721. package/dist/docs/interfaces/DataSlice.html +7 -0
  722. package/dist/docs/interfaces/EndpointConnectConfig.html +12 -0
  723. package/dist/docs/interfaces/EpochInfo.html +10 -4
  724. package/dist/docs/interfaces/EpochSchedule.html +8 -0
  725. package/dist/docs/interfaces/GetAccountInfoOpts.html +16 -0
  726. package/dist/docs/interfaces/GetAssetsByAuthorityParams.html +10 -0
  727. package/dist/docs/interfaces/GetAssetsByCreatorParams.html +13 -0
  728. package/dist/docs/interfaces/GetAssetsByGroupParams.html +14 -0
  729. package/dist/docs/interfaces/GetAssetsByOwnerParams.html +16 -0
  730. package/dist/docs/interfaces/GetBlockOpts.html +17 -0
  731. package/dist/docs/interfaces/GetBlockProductionOpts.html +15 -0
  732. package/dist/docs/interfaces/GetMultipleAccountsOpts.html +16 -0
  733. package/dist/docs/interfaces/GetProgramAccountsOpts.html +18 -0
  734. package/dist/docs/interfaces/GetSignatureStatusesOpts.html +14 -0
  735. package/dist/docs/interfaces/GetSignaturesOpts.html +17 -0
  736. package/dist/docs/interfaces/GetTokenAccountsParams.html +9 -0
  737. package/dist/docs/interfaces/GetTransactionOpts.html +15 -0
  738. package/dist/docs/interfaces/GeyserParserConfig.html +29 -0
  739. package/dist/docs/interfaces/GeyserParserEvents.html +19 -0
  740. package/dist/docs/interfaces/GeyserParserStats.html +8 -0
  741. package/dist/docs/interfaces/GrpcCallOptions.html +5 -0
  742. package/dist/docs/interfaces/GrpcTransportConfig.html +17 -0
  743. package/dist/docs/interfaces/InflationGovernor.html +8 -0
  744. package/dist/docs/interfaces/InflationRate.html +7 -0
  745. package/dist/docs/interfaces/InflationReward.html +8 -0
  746. package/dist/docs/interfaces/LatencyProbeResult.html +7 -0
  747. package/dist/docs/interfaces/LogsNotification.html +5 -0
  748. package/dist/docs/interfaces/LogsSubParams.html +4 -0
  749. package/dist/docs/interfaces/PaginationOpts.html +7 -0
  750. package/dist/docs/interfaces/ParsedAccountUpdate.html +33 -0
  751. package/dist/docs/interfaces/ParsedBlockMeta.html +11 -0
  752. package/dist/docs/interfaces/ParsedEntry.html +10 -0
  753. package/dist/docs/interfaces/ParsedInstruction.html +19 -0
  754. package/dist/docs/interfaces/ParsedSlotUpdate.html +8 -0
  755. package/dist/docs/interfaces/ParsedTransaction.html +39 -0
  756. package/dist/docs/interfaces/PerfSample.html +8 -0
  757. package/dist/docs/interfaces/ProgramAccount.html +5 -0
  758. package/dist/docs/interfaces/ProgramNotification.html +5 -0
  759. package/dist/docs/interfaces/ProgramSubParams.html +6 -0
  760. package/dist/docs/interfaces/RawAccountInfo.html +11 -0
  761. package/dist/docs/interfaces/RawBlockMeta.html +11 -0
  762. package/dist/docs/interfaces/RawBuffer.html +5 -0
  763. package/dist/docs/interfaces/RawCompiledInstruction.html +6 -0
  764. package/dist/docs/interfaces/RawEntry.html +9 -0
  765. package/dist/docs/interfaces/RawGeyserUpdate.html +13 -0
  766. package/dist/docs/interfaces/RawInnerInstruction.html +5 -0
  767. package/dist/docs/interfaces/RawSlotInfo.html +6 -0
  768. package/dist/docs/interfaces/RawTimestamp.html +5 -0
  769. package/dist/docs/interfaces/RawTokenBalance.html +8 -0
  770. package/dist/docs/interfaces/RawTransactionInfo.html +8 -0
  771. package/dist/docs/interfaces/RootNotification.html +4 -0
  772. package/dist/docs/interfaces/RootSubParams.html +3 -0
  773. package/dist/docs/interfaces/RpcContext.html +6 -0
  774. package/dist/docs/interfaces/RpcError.html +7 -3
  775. package/dist/docs/interfaces/RpcRequest.html +4 -3
  776. package/dist/docs/interfaces/RpcResponse.html +5 -3
  777. package/dist/docs/interfaces/SendTransactionOpts.html +17 -0
  778. package/dist/docs/interfaces/SignatureInfo.html +11 -4
  779. package/dist/docs/interfaces/SignatureNotification.html +5 -0
  780. package/dist/docs/interfaces/SignatureStatus.html +11 -0
  781. package/dist/docs/interfaces/SignatureSubParams.html +5 -0
  782. package/dist/docs/interfaces/SignaturesForAssetParams.html +10 -0
  783. package/dist/docs/interfaces/SimulateResult.html +11 -0
  784. package/dist/docs/interfaces/SimulateTransactionOpts.html +19 -0
  785. package/dist/docs/interfaces/SlotNotification.html +6 -0
  786. package/dist/docs/interfaces/SlotSubParams.html +3 -0
  787. package/dist/docs/interfaces/SortOpts.html +5 -0
  788. package/dist/docs/interfaces/Supply.html +11 -0
  789. package/dist/docs/interfaces/SynapseClientConfig.html +20 -0
  790. package/dist/docs/interfaces/SynapseEndpoint.html +14 -0
  791. package/dist/docs/interfaces/TokenAccount.html +6 -6
  792. package/dist/docs/interfaces/TokenAccountsByOwnerResult.html +7 -0
  793. package/dist/docs/interfaces/TokenAmount.html +11 -0
  794. package/dist/docs/interfaces/TokenBalanceChange.html +12 -0
  795. package/dist/docs/interfaces/TransactionMessageWithBlockhashLifetime.html +12 -0
  796. package/dist/docs/interfaces/TransactionMeta.html +23 -0
  797. package/dist/docs/interfaces/TransportConfig.html +15 -0
  798. package/dist/docs/interfaces/VoteAccount.html +19 -0
  799. package/dist/docs/interfaces/VoteAccountsResult.html +7 -0
  800. package/dist/docs/interfaces/WsConfig.html +13 -0
  801. package/dist/docs/media/CHANGELOG.md +89 -0
  802. package/dist/docs/media/CONTRIBUTING.md +110 -0
  803. package/dist/docs/modules.html +372 -155
  804. package/dist/docs/types/AccountFilter.html +3 -0
  805. package/dist/docs/types/Address.html +5 -0
  806. package/dist/docs/types/Base58.html +3 -0
  807. package/dist/docs/types/Brand.html +7 -0
  808. package/dist/docs/types/Commitment.html +8 -3
  809. package/dist/docs/types/DasSortBy.html +3 -0
  810. package/dist/docs/types/DasSortDirection.html +3 -0
  811. package/dist/docs/types/DataSizeFilter.html +3 -0
  812. package/dist/docs/types/Encoding.html +3 -0
  813. package/dist/docs/types/Epoch.html +3 -0
  814. package/dist/docs/types/KeyPairSigner.html +17 -0
  815. package/dist/docs/types/KitCommitment.html +4 -0
  816. package/dist/docs/types/Lamports.html +4 -0
  817. package/dist/docs/types/LogsFilter.html +3 -0
  818. package/dist/docs/types/MemcmpFilter.html +3 -0
  819. package/dist/docs/types/MessagePartialSigner.html +23 -0
  820. package/dist/docs/types/MessageSigner.html +8 -0
  821. package/dist/docs/types/NoopSigner.html +18 -0
  822. package/dist/docs/types/ParsedGeyserUpdate.html +4 -0
  823. package/dist/docs/types/Pubkey.html +4 -0
  824. package/dist/docs/types/Rpc.html +4 -0
  825. package/dist/docs/types/RpcSubscriptions.html +5 -0
  826. package/dist/docs/types/RpcTransport.html +3 -0
  827. package/dist/docs/types/RuntimeEnv.html +2 -0
  828. package/dist/docs/types/Signature.html +4 -0
  829. package/dist/docs/types/SignatureBytes.html +5 -0
  830. package/dist/docs/types/Slot.html +3 -0
  831. package/dist/docs/types/SolanaRpcApi.html +3 -0
  832. package/dist/docs/types/SolanaRpcApiDevnet.html +3 -0
  833. package/dist/docs/types/SolanaRpcApiMainnet.html +4 -0
  834. package/dist/docs/types/SolanaRpcApiTestnet.html +3 -0
  835. package/dist/docs/types/SolanaRpcSubscriptionsApi.html +1 -0
  836. package/dist/docs/types/SubscriptionId.html +3 -0
  837. package/dist/docs/types/TransactionDetail.html +3 -0
  838. package/dist/docs/types/TransactionMessage.html +1 -0
  839. package/dist/docs/types/TransactionModifyingSigner.html +30 -0
  840. package/dist/docs/types/TransactionPartialSigner.html +22 -0
  841. package/dist/docs/types/TransactionSendingSigner.html +33 -0
  842. package/dist/docs/types/TransactionSigner.html +9 -0
  843. package/dist/docs/types/UnaryMethod.html +5 -0
  844. package/dist/docs/types/UnixTimestamp.html +3 -0
  845. package/dist/docs/types/WsNotification.html +3 -0
  846. package/dist/docs/variables/DEFAULT_RPC_CONFIG.html +6 -0
  847. package/dist/docs/variables/DEFAULT_RPC_SUBSCRIPTIONS_CONFIG.html +1 -0
  848. package/dist/docs/variables/JUPITER_PROGRAMS.html +1 -0
  849. package/dist/docs/variables/KNOWN_PROGRAMS.html +3 -0
  850. package/dist/docs/variables/KNOWN_PROGRAMS_COUNT.html +3 -0
  851. package/dist/docs/variables/MARINADE_PROGRAMS.html +1 -0
  852. package/dist/docs/variables/METAPLEX_PROGRAMS.html +1 -0
  853. package/dist/docs/variables/METEORA_PROGRAMS.html +1 -0
  854. package/dist/docs/variables/ORCA_PROGRAMS.html +1 -0
  855. package/dist/docs/variables/OTHER_PROGRAMS.html +1 -0
  856. package/dist/docs/variables/RAYDIUM_PROGRAMS.html +1 -0
  857. package/dist/docs/variables/SDK_USER_AGENT.html +6 -0
  858. package/dist/docs/variables/SPL_PROGRAMS.html +1 -0
  859. package/dist/docs/variables/SYNAPSE_DEVNET_EU.html +2 -0
  860. package/dist/docs/variables/SYNAPSE_DEVNET_US.html +2 -0
  861. package/dist/docs/variables/SYNAPSE_ENDPOINTS.html +2 -0
  862. package/dist/docs/variables/SYNAPSE_MAINNET_EU.html +2 -0
  863. package/dist/docs/variables/SYNAPSE_MAINNET_US.html +2 -0
  864. package/dist/docs/variables/SYSTEM_PROGRAMS.html +1 -0
  865. package/dist/esm/ai/gateway/index.d.ts +380 -0
  866. package/dist/esm/ai/gateway/index.d.ts.map +1 -0
  867. package/dist/esm/ai/gateway/index.js +744 -0
  868. package/dist/esm/ai/gateway/index.js.map +1 -0
  869. package/dist/esm/ai/gateway/marketplace.d.ts +202 -0
  870. package/dist/esm/ai/gateway/marketplace.d.ts.map +1 -0
  871. package/dist/esm/ai/gateway/marketplace.js +348 -0
  872. package/dist/esm/ai/gateway/marketplace.js.map +1 -0
  873. package/dist/esm/ai/gateway/pricing.d.ts +149 -0
  874. package/dist/esm/ai/gateway/pricing.d.ts.map +1 -0
  875. package/dist/esm/ai/gateway/pricing.js +252 -0
  876. package/dist/esm/ai/gateway/pricing.js.map +1 -0
  877. package/dist/esm/ai/gateway/session.d.ts +191 -0
  878. package/dist/esm/ai/gateway/session.d.ts.map +1 -0
  879. package/dist/esm/ai/gateway/session.js +343 -0
  880. package/dist/esm/ai/gateway/session.js.map +1 -0
  881. package/dist/esm/ai/gateway/types.d.ts +324 -0
  882. package/dist/esm/ai/gateway/types.d.ts.map +1 -0
  883. package/dist/esm/ai/gateway/types.js +18 -0
  884. package/dist/esm/ai/gateway/types.js.map +1 -0
  885. package/dist/esm/ai/gateway/validator.d.ts +128 -0
  886. package/dist/esm/ai/gateway/validator.d.ts.map +1 -0
  887. package/dist/esm/ai/gateway/validator.js +204 -0
  888. package/dist/esm/ai/gateway/validator.js.map +1 -0
  889. package/dist/esm/ai/gateway/x402/client.d.ts +274 -0
  890. package/dist/esm/ai/gateway/x402/client.d.ts.map +1 -0
  891. package/dist/esm/ai/gateway/x402/client.js +460 -0
  892. package/dist/esm/ai/gateway/x402/client.js.map +1 -0
  893. package/dist/esm/ai/gateway/x402/facilitator.d.ts +169 -0
  894. package/dist/esm/ai/gateway/x402/facilitator.d.ts.map +1 -0
  895. package/dist/esm/ai/gateway/x402/facilitator.js +284 -0
  896. package/dist/esm/ai/gateway/x402/facilitator.js.map +1 -0
  897. package/dist/esm/ai/gateway/x402/index.d.ts +81 -0
  898. package/dist/esm/ai/gateway/x402/index.d.ts.map +1 -0
  899. package/dist/esm/ai/gateway/x402/index.js +91 -0
  900. package/dist/esm/ai/gateway/x402/index.js.map +1 -0
  901. package/dist/esm/ai/gateway/x402/paywall.d.ts +148 -0
  902. package/dist/esm/ai/gateway/x402/paywall.d.ts.map +1 -0
  903. package/dist/esm/ai/gateway/x402/paywall.js +263 -0
  904. package/dist/esm/ai/gateway/x402/paywall.js.map +1 -0
  905. package/dist/esm/ai/gateway/x402/registry.d.ts +86 -0
  906. package/dist/esm/ai/gateway/x402/registry.d.ts.map +1 -0
  907. package/dist/esm/ai/gateway/x402/registry.js +286 -0
  908. package/dist/esm/ai/gateway/x402/registry.js.map +1 -0
  909. package/dist/esm/ai/gateway/x402/types.d.ts +407 -0
  910. package/dist/esm/ai/gateway/x402/types.d.ts.map +1 -0
  911. package/dist/esm/ai/gateway/x402/types.js +138 -0
  912. package/dist/esm/ai/gateway/x402/types.js.map +1 -0
  913. package/dist/esm/ai/index.d.ts +15 -11
  914. package/dist/esm/ai/index.d.ts.map +1 -1
  915. package/dist/esm/ai/index.js +33 -10
  916. package/dist/esm/ai/index.js.map +1 -1
  917. package/dist/esm/ai/tools/index.d.ts +83 -0
  918. package/dist/esm/ai/tools/index.d.ts.map +1 -0
  919. package/dist/esm/ai/tools/index.js +328 -0
  920. package/dist/esm/ai/tools/index.js.map +1 -0
  921. package/dist/esm/ai/tools/protocols/index.d.ts +87 -0
  922. package/dist/esm/ai/tools/protocols/index.d.ts.map +1 -0
  923. package/dist/esm/ai/tools/protocols/index.js +89 -0
  924. package/dist/esm/ai/tools/protocols/index.js.map +1 -0
  925. package/dist/esm/ai/tools/protocols/jupiter/index.d.ts +8 -0
  926. package/dist/esm/ai/tools/protocols/jupiter/index.d.ts.map +1 -0
  927. package/dist/esm/ai/tools/protocols/jupiter/index.js +8 -0
  928. package/dist/esm/ai/tools/protocols/jupiter/index.js.map +1 -0
  929. package/dist/esm/ai/tools/protocols/jupiter/schemas.d.ts +11 -0
  930. package/dist/esm/ai/tools/protocols/jupiter/schemas.d.ts.map +1 -0
  931. package/dist/esm/ai/tools/protocols/jupiter/schemas.js +383 -0
  932. package/dist/esm/ai/tools/protocols/jupiter/schemas.js.map +1 -0
  933. package/dist/esm/ai/tools/protocols/jupiter/tools.d.ts +55 -0
  934. package/dist/esm/ai/tools/protocols/jupiter/tools.d.ts.map +1 -0
  935. package/dist/esm/ai/tools/protocols/jupiter/tools.js +80 -0
  936. package/dist/esm/ai/tools/protocols/jupiter/tools.js.map +1 -0
  937. package/dist/esm/ai/tools/protocols/metaplex/index.d.ts +8 -0
  938. package/dist/esm/ai/tools/protocols/metaplex/index.d.ts.map +1 -0
  939. package/dist/esm/ai/tools/protocols/metaplex/index.js +8 -0
  940. package/dist/esm/ai/tools/protocols/metaplex/index.js.map +1 -0
  941. package/dist/esm/ai/tools/protocols/metaplex/schemas.d.ts +11 -0
  942. package/dist/esm/ai/tools/protocols/metaplex/schemas.d.ts.map +1 -0
  943. package/dist/esm/ai/tools/protocols/metaplex/schemas.js +244 -0
  944. package/dist/esm/ai/tools/protocols/metaplex/schemas.js.map +1 -0
  945. package/dist/esm/ai/tools/protocols/metaplex/tools.d.ts +45 -0
  946. package/dist/esm/ai/tools/protocols/metaplex/tools.d.ts.map +1 -0
  947. package/dist/esm/ai/tools/protocols/metaplex/tools.js +157 -0
  948. package/dist/esm/ai/tools/protocols/metaplex/tools.js.map +1 -0
  949. package/dist/esm/ai/tools/protocols/raydium/index.d.ts +8 -0
  950. package/dist/esm/ai/tools/protocols/raydium/index.d.ts.map +1 -0
  951. package/dist/esm/ai/tools/protocols/raydium/index.js +8 -0
  952. package/dist/esm/ai/tools/protocols/raydium/index.js.map +1 -0
  953. package/dist/esm/ai/tools/protocols/raydium/schemas.d.ts +11 -0
  954. package/dist/esm/ai/tools/protocols/raydium/schemas.d.ts.map +1 -0
  955. package/dist/esm/ai/tools/protocols/raydium/schemas.js +199 -0
  956. package/dist/esm/ai/tools/protocols/raydium/schemas.js.map +1 -0
  957. package/dist/esm/ai/tools/protocols/raydium/tools.d.ts +50 -0
  958. package/dist/esm/ai/tools/protocols/raydium/tools.d.ts.map +1 -0
  959. package/dist/esm/ai/tools/protocols/raydium/tools.js +78 -0
  960. package/dist/esm/ai/tools/protocols/raydium/tools.js.map +1 -0
  961. package/dist/esm/ai/tools/protocols/shared.d.ts +143 -0
  962. package/dist/esm/ai/tools/protocols/shared.d.ts.map +1 -0
  963. package/dist/esm/ai/tools/protocols/shared.js +176 -0
  964. package/dist/esm/ai/tools/protocols/shared.js.map +1 -0
  965. package/dist/esm/ai/tools/zod/index.d.ts +35 -0
  966. package/dist/esm/ai/tools/zod/index.d.ts.map +1 -0
  967. package/dist/esm/ai/tools/zod/index.js +53 -0
  968. package/dist/esm/ai/tools/zod/index.js.map +1 -0
  969. package/dist/esm/ai/tools/zod/types.d.ts +25 -0
  970. package/dist/esm/ai/tools/zod/types.d.ts.map +1 -0
  971. package/dist/esm/ai/tools/zod/types.js +258 -0
  972. package/dist/esm/ai/tools/zod/types.js.map +1 -0
  973. package/dist/esm/core/client.d.ts +186 -0
  974. package/dist/esm/core/client.d.ts.map +1 -0
  975. package/dist/esm/core/client.js +246 -0
  976. package/dist/esm/core/client.js.map +1 -0
  977. package/dist/esm/core/errors.d.ts +81 -0
  978. package/dist/esm/core/errors.d.ts.map +1 -0
  979. package/dist/esm/core/errors.js +101 -0
  980. package/dist/esm/core/errors.js.map +1 -0
  981. package/dist/esm/core/transport.d.ts +106 -0
  982. package/dist/esm/core/transport.d.ts.map +1 -0
  983. package/dist/esm/core/transport.js +177 -0
  984. package/dist/esm/core/transport.js.map +1 -0
  985. package/dist/esm/core/types.d.ts +490 -0
  986. package/dist/esm/core/types.d.ts.map +1 -0
  987. package/dist/esm/core/types.js +68 -0
  988. package/dist/esm/core/types.js.map +1 -0
  989. package/dist/esm/das/client.d.ts +122 -0
  990. package/dist/esm/das/client.d.ts.map +1 -0
  991. package/dist/esm/das/client.js +136 -0
  992. package/dist/esm/das/client.js.map +1 -0
  993. package/dist/esm/das/index.d.ts +10 -0
  994. package/dist/esm/das/index.d.ts.map +1 -0
  995. package/dist/esm/das/index.js +10 -0
  996. package/dist/esm/das/index.js.map +1 -0
  997. package/dist/esm/das/methods/get-asset-batch.d.ts +26 -0
  998. package/dist/esm/das/methods/get-asset-batch.d.ts.map +1 -0
  999. package/dist/esm/das/methods/get-asset-batch.js +21 -0
  1000. package/dist/esm/das/methods/get-asset-batch.js.map +1 -0
  1001. package/dist/esm/das/methods/get-asset-proof-batch.d.ts +26 -0
  1002. package/dist/esm/das/methods/get-asset-proof-batch.d.ts.map +1 -0
  1003. package/dist/esm/das/methods/get-asset-proof-batch.js +21 -0
  1004. package/dist/esm/das/methods/get-asset-proof-batch.js.map +1 -0
  1005. package/dist/esm/das/methods/get-asset-proof.d.ts +26 -0
  1006. package/dist/esm/das/methods/get-asset-proof.d.ts.map +1 -0
  1007. package/dist/esm/das/methods/get-asset-proof.js +21 -0
  1008. package/dist/esm/das/methods/get-asset-proof.js.map +1 -0
  1009. package/dist/esm/das/methods/get-asset.d.ts +26 -0
  1010. package/dist/esm/das/methods/get-asset.d.ts.map +1 -0
  1011. package/dist/esm/das/methods/get-asset.js +21 -0
  1012. package/dist/esm/das/methods/get-asset.js.map +1 -0
  1013. package/dist/esm/das/methods/get-assets-by-authority.d.ts +45 -0
  1014. package/dist/esm/das/methods/get-assets-by-authority.d.ts.map +1 -0
  1015. package/dist/esm/das/methods/get-assets-by-authority.js +24 -0
  1016. package/dist/esm/das/methods/get-assets-by-authority.js.map +1 -0
  1017. package/dist/esm/das/methods/get-assets-by-creator.d.ts +48 -0
  1018. package/dist/esm/das/methods/get-assets-by-creator.d.ts.map +1 -0
  1019. package/dist/esm/das/methods/get-assets-by-creator.js +24 -0
  1020. package/dist/esm/das/methods/get-assets-by-creator.js.map +1 -0
  1021. package/dist/esm/das/methods/get-assets-by-group.d.ts +48 -0
  1022. package/dist/esm/das/methods/get-assets-by-group.d.ts.map +1 -0
  1023. package/dist/esm/das/methods/get-assets-by-group.js +24 -0
  1024. package/dist/esm/das/methods/get-assets-by-group.js.map +1 -0
  1025. package/dist/esm/das/methods/get-assets-by-owner.d.ts +52 -0
  1026. package/dist/esm/das/methods/get-assets-by-owner.d.ts.map +1 -0
  1027. package/dist/esm/das/methods/get-assets-by-owner.js +25 -0
  1028. package/dist/esm/das/methods/get-assets-by-owner.js.map +1 -0
  1029. package/dist/esm/das/methods/get-signatures-for-asset.d.ts +61 -0
  1030. package/dist/esm/das/methods/get-signatures-for-asset.d.ts.map +1 -0
  1031. package/dist/esm/das/methods/get-signatures-for-asset.js +24 -0
  1032. package/dist/esm/das/methods/get-signatures-for-asset.js.map +1 -0
  1033. package/dist/esm/das/methods/get-token-accounts.d.ts +58 -0
  1034. package/dist/esm/das/methods/get-token-accounts.d.ts.map +1 -0
  1035. package/dist/esm/das/methods/get-token-accounts.js +24 -0
  1036. package/dist/esm/das/methods/get-token-accounts.js.map +1 -0
  1037. package/dist/esm/das/methods/index.d.ts +17 -0
  1038. package/dist/esm/das/methods/index.d.ts.map +1 -0
  1039. package/dist/esm/das/methods/index.js +17 -0
  1040. package/dist/esm/das/methods/index.js.map +1 -0
  1041. package/dist/esm/das/methods/search-assets.d.ts +29 -0
  1042. package/dist/esm/das/methods/search-assets.d.ts.map +1 -0
  1043. package/dist/esm/das/methods/search-assets.js +25 -0
  1044. package/dist/esm/das/methods/search-assets.js.map +1 -0
  1045. package/dist/esm/das/types.d.ts +257 -0
  1046. package/dist/esm/das/types.d.ts.map +1 -0
  1047. package/dist/esm/das/types.js +2 -0
  1048. package/dist/esm/das/types.js.map +1 -0
  1049. package/dist/esm/grpc/index.d.ts +10 -0
  1050. package/dist/esm/grpc/index.d.ts.map +1 -0
  1051. package/dist/esm/grpc/index.js +10 -0
  1052. package/dist/esm/grpc/index.js.map +1 -0
  1053. package/dist/esm/grpc/parser/decoder.d.ts +117 -0
  1054. package/dist/esm/grpc/parser/decoder.d.ts.map +1 -0
  1055. package/dist/esm/grpc/parser/decoder.js +589 -0
  1056. package/dist/esm/grpc/parser/decoder.js.map +1 -0
  1057. package/dist/esm/grpc/parser/geyser-parser.d.ts +184 -0
  1058. package/dist/esm/grpc/parser/geyser-parser.d.ts.map +1 -0
  1059. package/dist/esm/grpc/parser/geyser-parser.js +275 -0
  1060. package/dist/esm/grpc/parser/geyser-parser.js.map +1 -0
  1061. package/dist/esm/grpc/parser/index.d.ts +12 -0
  1062. package/dist/esm/grpc/parser/index.d.ts.map +1 -0
  1063. package/dist/esm/grpc/parser/index.js +13 -0
  1064. package/dist/esm/grpc/parser/index.js.map +1 -0
  1065. package/dist/esm/grpc/parser/programs.d.ts +69 -0
  1066. package/dist/esm/grpc/parser/programs.d.ts.map +1 -0
  1067. package/dist/esm/grpc/parser/programs.js +261 -0
  1068. package/dist/esm/grpc/parser/programs.js.map +1 -0
  1069. package/dist/esm/grpc/parser/types.d.ts +344 -0
  1070. package/dist/esm/grpc/parser/types.d.ts.map +1 -0
  1071. package/dist/esm/grpc/parser/types.js +12 -0
  1072. package/dist/esm/grpc/parser/types.js.map +1 -0
  1073. package/dist/esm/grpc/transport.d.ts +96 -0
  1074. package/dist/esm/grpc/transport.d.ts.map +1 -0
  1075. package/dist/esm/grpc/transport.js +160 -0
  1076. package/dist/esm/grpc/transport.js.map +1 -0
  1077. package/dist/esm/grpc/types.d.ts +51 -0
  1078. package/dist/esm/grpc/types.d.ts.map +1 -0
  1079. package/dist/esm/grpc/types.js +8 -0
  1080. package/dist/esm/grpc/types.js.map +1 -0
  1081. package/dist/esm/index.d.ts +42 -27
  1082. package/dist/esm/index.d.ts.map +1 -1
  1083. package/dist/esm/index.js +52 -42
  1084. package/dist/esm/index.js.map +1 -1
  1085. package/dist/esm/kit/index.d.ts +94 -0
  1086. package/dist/esm/kit/index.d.ts.map +1 -0
  1087. package/dist/esm/kit/index.js +100 -0
  1088. package/dist/esm/kit/index.js.map +1 -0
  1089. package/dist/esm/rpc/index.d.ts +9 -0
  1090. package/dist/esm/rpc/index.d.ts.map +1 -0
  1091. package/dist/esm/rpc/index.js +9 -0
  1092. package/dist/esm/rpc/index.js.map +1 -0
  1093. package/dist/esm/rpc/methods/get-account-info.d.ts +37 -0
  1094. package/dist/esm/rpc/methods/get-account-info.d.ts.map +1 -0
  1095. package/dist/esm/rpc/methods/get-account-info.js +31 -0
  1096. package/dist/esm/rpc/methods/get-account-info.js.map +1 -0
  1097. package/dist/esm/rpc/methods/get-balance.d.ts +28 -0
  1098. package/dist/esm/rpc/methods/get-balance.d.ts.map +1 -0
  1099. package/dist/esm/rpc/methods/get-balance.js +25 -0
  1100. package/dist/esm/rpc/methods/get-balance.js.map +1 -0
  1101. package/dist/esm/rpc/methods/get-block-commitment.d.ts +28 -0
  1102. package/dist/esm/rpc/methods/get-block-commitment.d.ts.map +1 -0
  1103. package/dist/esm/rpc/methods/get-block-commitment.js +20 -0
  1104. package/dist/esm/rpc/methods/get-block-commitment.js.map +1 -0
  1105. package/dist/esm/rpc/methods/get-block-height.d.ts +27 -0
  1106. package/dist/esm/rpc/methods/get-block-height.d.ts.map +1 -0
  1107. package/dist/esm/rpc/methods/get-block-height.js +24 -0
  1108. package/dist/esm/rpc/methods/get-block-height.js.map +1 -0
  1109. package/dist/esm/rpc/methods/get-block-production.d.ts +37 -0
  1110. package/dist/esm/rpc/methods/get-block-production.d.ts.map +1 -0
  1111. package/dist/esm/rpc/methods/get-block-production.js +27 -0
  1112. package/dist/esm/rpc/methods/get-block-production.js.map +1 -0
  1113. package/dist/esm/rpc/methods/get-block-time.d.ts +25 -0
  1114. package/dist/esm/rpc/methods/get-block-time.d.ts.map +1 -0
  1115. package/dist/esm/rpc/methods/get-block-time.js +20 -0
  1116. package/dist/esm/rpc/methods/get-block-time.js.map +1 -0
  1117. package/dist/esm/rpc/methods/get-block.d.ts +68 -0
  1118. package/dist/esm/rpc/methods/get-block.d.ts.map +1 -0
  1119. package/dist/esm/rpc/methods/get-block.js +32 -0
  1120. package/dist/esm/rpc/methods/get-block.js.map +1 -0
  1121. package/dist/esm/rpc/methods/get-blocks-with-limit.d.ts +27 -0
  1122. package/dist/esm/rpc/methods/get-blocks-with-limit.d.ts.map +1 -0
  1123. package/dist/esm/rpc/methods/get-blocks-with-limit.js +22 -0
  1124. package/dist/esm/rpc/methods/get-blocks-with-limit.js.map +1 -0
  1125. package/dist/esm/rpc/methods/get-blocks.d.ts +27 -0
  1126. package/dist/esm/rpc/methods/get-blocks.d.ts.map +1 -0
  1127. package/dist/esm/rpc/methods/get-blocks.js +25 -0
  1128. package/dist/esm/rpc/methods/get-blocks.js.map +1 -0
  1129. package/dist/esm/rpc/methods/get-cluster-nodes.d.ts +24 -0
  1130. package/dist/esm/rpc/methods/get-cluster-nodes.d.ts.map +1 -0
  1131. package/dist/esm/rpc/methods/get-cluster-nodes.js +19 -0
  1132. package/dist/esm/rpc/methods/get-cluster-nodes.js.map +1 -0
  1133. package/dist/esm/rpc/methods/get-epoch-info.d.ts +27 -0
  1134. package/dist/esm/rpc/methods/get-epoch-info.d.ts.map +1 -0
  1135. package/dist/esm/rpc/methods/get-epoch-info.js +24 -0
  1136. package/dist/esm/rpc/methods/get-epoch-info.js.map +1 -0
  1137. package/dist/esm/rpc/methods/get-epoch-schedule.d.ts +24 -0
  1138. package/dist/esm/rpc/methods/get-epoch-schedule.d.ts.map +1 -0
  1139. package/dist/esm/rpc/methods/get-epoch-schedule.js +19 -0
  1140. package/dist/esm/rpc/methods/get-epoch-schedule.js.map +1 -0
  1141. package/dist/esm/rpc/methods/get-fee-for-message.d.ts +28 -0
  1142. package/dist/esm/rpc/methods/get-fee-for-message.d.ts.map +1 -0
  1143. package/dist/esm/rpc/methods/get-fee-for-message.js +25 -0
  1144. package/dist/esm/rpc/methods/get-fee-for-message.js.map +1 -0
  1145. package/dist/esm/rpc/methods/get-first-available-block.d.ts +24 -0
  1146. package/dist/esm/rpc/methods/get-first-available-block.d.ts.map +1 -0
  1147. package/dist/esm/rpc/methods/get-first-available-block.js +19 -0
  1148. package/dist/esm/rpc/methods/get-first-available-block.js.map +1 -0
  1149. package/dist/esm/rpc/methods/get-genesis-hash.d.ts +23 -0
  1150. package/dist/esm/rpc/methods/get-genesis-hash.d.ts.map +1 -0
  1151. package/dist/esm/rpc/methods/get-genesis-hash.js +19 -0
  1152. package/dist/esm/rpc/methods/get-genesis-hash.js.map +1 -0
  1153. package/dist/esm/rpc/methods/get-health.d.ts +23 -0
  1154. package/dist/esm/rpc/methods/get-health.d.ts.map +1 -0
  1155. package/dist/esm/rpc/methods/get-health.js +19 -0
  1156. package/dist/esm/rpc/methods/get-health.js.map +1 -0
  1157. package/dist/esm/rpc/methods/get-highest-snapshot-slot.d.ts +27 -0
  1158. package/dist/esm/rpc/methods/get-highest-snapshot-slot.d.ts.map +1 -0
  1159. package/dist/esm/rpc/methods/get-highest-snapshot-slot.js +19 -0
  1160. package/dist/esm/rpc/methods/get-highest-snapshot-slot.js.map +1 -0
  1161. package/dist/esm/rpc/methods/get-identity.d.ts +26 -0
  1162. package/dist/esm/rpc/methods/get-identity.d.ts.map +1 -0
  1163. package/dist/esm/rpc/methods/get-identity.js +19 -0
  1164. package/dist/esm/rpc/methods/get-identity.js.map +1 -0
  1165. package/dist/esm/rpc/methods/get-inflation-governor.d.ts +25 -0
  1166. package/dist/esm/rpc/methods/get-inflation-governor.d.ts.map +1 -0
  1167. package/dist/esm/rpc/methods/get-inflation-governor.js +21 -0
  1168. package/dist/esm/rpc/methods/get-inflation-governor.js.map +1 -0
  1169. package/dist/esm/rpc/methods/get-inflation-rate.d.ts +24 -0
  1170. package/dist/esm/rpc/methods/get-inflation-rate.d.ts.map +1 -0
  1171. package/dist/esm/rpc/methods/get-inflation-rate.js +19 -0
  1172. package/dist/esm/rpc/methods/get-inflation-rate.js.map +1 -0
  1173. package/dist/esm/rpc/methods/get-inflation-reward.d.ts +29 -0
  1174. package/dist/esm/rpc/methods/get-inflation-reward.d.ts.map +1 -0
  1175. package/dist/esm/rpc/methods/get-inflation-reward.js +28 -0
  1176. package/dist/esm/rpc/methods/get-inflation-reward.js.map +1 -0
  1177. package/dist/esm/rpc/methods/get-largest-accounts.d.ts +30 -0
  1178. package/dist/esm/rpc/methods/get-largest-accounts.d.ts.map +1 -0
  1179. package/dist/esm/rpc/methods/get-largest-accounts.js +25 -0
  1180. package/dist/esm/rpc/methods/get-largest-accounts.js.map +1 -0
  1181. package/dist/esm/rpc/methods/get-latest-blockhash.d.ts +36 -0
  1182. package/dist/esm/rpc/methods/get-latest-blockhash.d.ts.map +1 -0
  1183. package/dist/esm/rpc/methods/get-latest-blockhash.js +24 -0
  1184. package/dist/esm/rpc/methods/get-latest-blockhash.js.map +1 -0
  1185. package/dist/esm/rpc/methods/get-leader-schedule.d.ts +27 -0
  1186. package/dist/esm/rpc/methods/get-leader-schedule.d.ts.map +1 -0
  1187. package/dist/esm/rpc/methods/get-leader-schedule.js +25 -0
  1188. package/dist/esm/rpc/methods/get-leader-schedule.js.map +1 -0
  1189. package/dist/esm/rpc/methods/get-max-retransmit-slot.d.ts +23 -0
  1190. package/dist/esm/rpc/methods/get-max-retransmit-slot.d.ts.map +1 -0
  1191. package/dist/esm/rpc/methods/get-max-retransmit-slot.js +18 -0
  1192. package/dist/esm/rpc/methods/get-max-retransmit-slot.js.map +1 -0
  1193. package/dist/esm/rpc/methods/get-max-shred-insert-slot.d.ts +23 -0
  1194. package/dist/esm/rpc/methods/get-max-shred-insert-slot.d.ts.map +1 -0
  1195. package/dist/esm/rpc/methods/get-max-shred-insert-slot.js +18 -0
  1196. package/dist/esm/rpc/methods/get-max-shred-insert-slot.js.map +1 -0
  1197. package/dist/esm/rpc/methods/get-minimum-balance-for-rent-exemption.d.ts +26 -0
  1198. package/dist/esm/rpc/methods/get-minimum-balance-for-rent-exemption.d.ts.map +1 -0
  1199. package/dist/esm/rpc/methods/get-minimum-balance-for-rent-exemption.js +21 -0
  1200. package/dist/esm/rpc/methods/get-minimum-balance-for-rent-exemption.js.map +1 -0
  1201. package/dist/esm/rpc/methods/get-multiple-accounts.d.ts +35 -0
  1202. package/dist/esm/rpc/methods/get-multiple-accounts.d.ts.map +1 -0
  1203. package/dist/esm/rpc/methods/get-multiple-accounts.js +29 -0
  1204. package/dist/esm/rpc/methods/get-multiple-accounts.js.map +1 -0
  1205. package/dist/esm/rpc/methods/get-program-accounts.d.ts +51 -0
  1206. package/dist/esm/rpc/methods/get-program-accounts.d.ts.map +1 -0
  1207. package/dist/esm/rpc/methods/get-program-accounts.js +38 -0
  1208. package/dist/esm/rpc/methods/get-program-accounts.js.map +1 -0
  1209. package/dist/esm/rpc/methods/get-recent-performance-samples.d.ts +24 -0
  1210. package/dist/esm/rpc/methods/get-recent-performance-samples.d.ts.map +1 -0
  1211. package/dist/esm/rpc/methods/get-recent-performance-samples.js +19 -0
  1212. package/dist/esm/rpc/methods/get-recent-performance-samples.js.map +1 -0
  1213. package/dist/esm/rpc/methods/get-recent-prioritization-fees.d.ts +27 -0
  1214. package/dist/esm/rpc/methods/get-recent-prioritization-fees.d.ts.map +1 -0
  1215. package/dist/esm/rpc/methods/get-recent-prioritization-fees.js +19 -0
  1216. package/dist/esm/rpc/methods/get-recent-prioritization-fees.js.map +1 -0
  1217. package/dist/esm/rpc/methods/get-signature-statuses.d.ts +32 -0
  1218. package/dist/esm/rpc/methods/get-signature-statuses.d.ts.map +1 -0
  1219. package/dist/esm/rpc/methods/get-signature-statuses.js +23 -0
  1220. package/dist/esm/rpc/methods/get-signature-statuses.js.map +1 -0
  1221. package/dist/esm/rpc/methods/get-signatures-for-address.d.ts +40 -0
  1222. package/dist/esm/rpc/methods/get-signatures-for-address.d.ts.map +1 -0
  1223. package/dist/esm/rpc/methods/get-signatures-for-address.js +49 -0
  1224. package/dist/esm/rpc/methods/get-signatures-for-address.js.map +1 -0
  1225. package/dist/esm/rpc/methods/get-slot-leader.d.ts +26 -0
  1226. package/dist/esm/rpc/methods/get-slot-leader.d.ts.map +1 -0
  1227. package/dist/esm/rpc/methods/get-slot-leader.js +23 -0
  1228. package/dist/esm/rpc/methods/get-slot-leader.js.map +1 -0
  1229. package/dist/esm/rpc/methods/get-slot-leaders.d.ts +25 -0
  1230. package/dist/esm/rpc/methods/get-slot-leaders.d.ts.map +1 -0
  1231. package/dist/esm/rpc/methods/get-slot-leaders.js +20 -0
  1232. package/dist/esm/rpc/methods/get-slot-leaders.js.map +1 -0
  1233. package/dist/esm/rpc/methods/get-slot.d.ts +26 -0
  1234. package/dist/esm/rpc/methods/get-slot.d.ts.map +1 -0
  1235. package/dist/esm/rpc/methods/get-slot.js +23 -0
  1236. package/dist/esm/rpc/methods/get-slot.js.map +1 -0
  1237. package/dist/esm/rpc/methods/get-stake-activation.d.ts +37 -0
  1238. package/dist/esm/rpc/methods/get-stake-activation.d.ts.map +1 -0
  1239. package/dist/esm/rpc/methods/get-stake-activation.js +30 -0
  1240. package/dist/esm/rpc/methods/get-stake-activation.js.map +1 -0
  1241. package/dist/esm/rpc/methods/get-stake-minimum-delegation.d.ts +24 -0
  1242. package/dist/esm/rpc/methods/get-stake-minimum-delegation.d.ts.map +1 -0
  1243. package/dist/esm/rpc/methods/get-stake-minimum-delegation.js +19 -0
  1244. package/dist/esm/rpc/methods/get-stake-minimum-delegation.js.map +1 -0
  1245. package/dist/esm/rpc/methods/get-supply.d.ts +27 -0
  1246. package/dist/esm/rpc/methods/get-supply.d.ts.map +1 -0
  1247. package/dist/esm/rpc/methods/get-supply.js +25 -0
  1248. package/dist/esm/rpc/methods/get-supply.js.map +1 -0
  1249. package/dist/esm/rpc/methods/get-token-account-balance.d.ts +26 -0
  1250. package/dist/esm/rpc/methods/get-token-account-balance.d.ts.map +1 -0
  1251. package/dist/esm/rpc/methods/get-token-account-balance.js +21 -0
  1252. package/dist/esm/rpc/methods/get-token-account-balance.js.map +1 -0
  1253. package/dist/esm/rpc/methods/get-token-accounts-by-delegate.d.ts +33 -0
  1254. package/dist/esm/rpc/methods/get-token-accounts-by-delegate.d.ts.map +1 -0
  1255. package/dist/esm/rpc/methods/get-token-accounts-by-delegate.js +26 -0
  1256. package/dist/esm/rpc/methods/get-token-accounts-by-delegate.js.map +1 -0
  1257. package/dist/esm/rpc/methods/get-token-accounts-by-owner.d.ts +33 -0
  1258. package/dist/esm/rpc/methods/get-token-accounts-by-owner.d.ts.map +1 -0
  1259. package/dist/esm/rpc/methods/get-token-accounts-by-owner.js +26 -0
  1260. package/dist/esm/rpc/methods/get-token-accounts-by-owner.js.map +1 -0
  1261. package/dist/esm/rpc/methods/get-token-largest-accounts.d.ts +31 -0
  1262. package/dist/esm/rpc/methods/get-token-largest-accounts.d.ts.map +1 -0
  1263. package/dist/esm/rpc/methods/get-token-largest-accounts.js +20 -0
  1264. package/dist/esm/rpc/methods/get-token-largest-accounts.js.map +1 -0
  1265. package/dist/esm/rpc/methods/get-token-supply.d.ts +26 -0
  1266. package/dist/esm/rpc/methods/get-token-supply.d.ts.map +1 -0
  1267. package/dist/esm/rpc/methods/get-token-supply.js +21 -0
  1268. package/dist/esm/rpc/methods/get-token-supply.js.map +1 -0
  1269. package/dist/esm/rpc/methods/get-transaction-count.d.ts +26 -0
  1270. package/dist/esm/rpc/methods/get-transaction-count.d.ts.map +1 -0
  1271. package/dist/esm/rpc/methods/get-transaction-count.js +23 -0
  1272. package/dist/esm/rpc/methods/get-transaction-count.js.map +1 -0
  1273. package/dist/esm/rpc/methods/get-transaction.d.ts +36 -0
  1274. package/dist/esm/rpc/methods/get-transaction.d.ts.map +1 -0
  1275. package/dist/esm/rpc/methods/get-transaction.js +29 -0
  1276. package/dist/esm/rpc/methods/get-transaction.js.map +1 -0
  1277. package/dist/esm/rpc/methods/get-version.d.ts +26 -0
  1278. package/dist/esm/rpc/methods/get-version.d.ts.map +1 -0
  1279. package/dist/esm/rpc/methods/get-version.js +19 -0
  1280. package/dist/esm/rpc/methods/get-version.js.map +1 -0
  1281. package/dist/esm/rpc/methods/get-vote-accounts.d.ts +29 -0
  1282. package/dist/esm/rpc/methods/get-vote-accounts.d.ts.map +1 -0
  1283. package/dist/esm/rpc/methods/get-vote-accounts.js +29 -0
  1284. package/dist/esm/rpc/methods/get-vote-accounts.js.map +1 -0
  1285. package/dist/esm/rpc/methods/index.d.ts +57 -0
  1286. package/dist/esm/rpc/methods/index.d.ts.map +1 -0
  1287. package/dist/esm/rpc/methods/index.js +68 -0
  1288. package/dist/esm/rpc/methods/index.js.map +1 -0
  1289. package/dist/esm/rpc/methods/is-blockhash-valid.d.ts +27 -0
  1290. package/dist/esm/rpc/methods/is-blockhash-valid.d.ts.map +1 -0
  1291. package/dist/esm/rpc/methods/is-blockhash-valid.js +24 -0
  1292. package/dist/esm/rpc/methods/is-blockhash-valid.js.map +1 -0
  1293. package/dist/esm/rpc/methods/minimum-ledger-slot.d.ts +23 -0
  1294. package/dist/esm/rpc/methods/minimum-ledger-slot.d.ts.map +1 -0
  1295. package/dist/esm/rpc/methods/minimum-ledger-slot.js +18 -0
  1296. package/dist/esm/rpc/methods/minimum-ledger-slot.js.map +1 -0
  1297. package/dist/esm/rpc/methods/request-airdrop.d.ts +29 -0
  1298. package/dist/esm/rpc/methods/request-airdrop.d.ts.map +1 -0
  1299. package/dist/esm/rpc/methods/request-airdrop.js +27 -0
  1300. package/dist/esm/rpc/methods/request-airdrop.js.map +1 -0
  1301. package/dist/esm/rpc/methods/send-transaction.d.ts +38 -0
  1302. package/dist/esm/rpc/methods/send-transaction.d.ts.map +1 -0
  1303. package/dist/esm/rpc/methods/send-transaction.js +31 -0
  1304. package/dist/esm/rpc/methods/send-transaction.js.map +1 -0
  1305. package/dist/esm/rpc/methods/simulate-transaction.d.ts +63 -0
  1306. package/dist/esm/rpc/methods/simulate-transaction.d.ts.map +1 -0
  1307. package/dist/esm/rpc/methods/simulate-transaction.js +34 -0
  1308. package/dist/esm/rpc/methods/simulate-transaction.js.map +1 -0
  1309. package/dist/esm/rpc/solana-rpc.d.ts +190 -0
  1310. package/dist/esm/rpc/solana-rpc.d.ts.map +1 -0
  1311. package/dist/esm/rpc/solana-rpc.js +136 -0
  1312. package/dist/esm/rpc/solana-rpc.js.map +1 -0
  1313. package/dist/esm/utils/env.d.ts +49 -0
  1314. package/dist/esm/utils/env.d.ts.map +1 -0
  1315. package/dist/esm/utils/env.js +47 -0
  1316. package/dist/esm/utils/env.js.map +1 -0
  1317. package/dist/esm/utils/helpers.d.ts +92 -87
  1318. package/dist/esm/utils/helpers.d.ts.map +1 -1
  1319. package/dist/esm/utils/helpers.js +96 -232
  1320. package/dist/esm/utils/helpers.js.map +1 -1
  1321. package/dist/esm/utils/index.d.ts +10 -0
  1322. package/dist/esm/utils/index.d.ts.map +1 -0
  1323. package/dist/esm/utils/index.js +10 -0
  1324. package/dist/esm/utils/index.js.map +1 -0
  1325. package/dist/esm/utils/synapse.d.ts +132 -0
  1326. package/dist/esm/utils/synapse.d.ts.map +1 -0
  1327. package/dist/esm/utils/synapse.js +163 -0
  1328. package/dist/esm/utils/synapse.js.map +1 -0
  1329. package/dist/esm/websocket/client.d.ts +97 -177
  1330. package/dist/esm/websocket/client.d.ts.map +1 -1
  1331. package/dist/esm/websocket/client.js +254 -402
  1332. package/dist/esm/websocket/client.js.map +1 -1
  1333. package/dist/esm/websocket/index.d.ts +6 -3
  1334. package/dist/esm/websocket/index.d.ts.map +1 -1
  1335. package/dist/esm/websocket/index.js +6 -2
  1336. package/dist/esm/websocket/index.js.map +1 -1
  1337. package/dist/esm/websocket/types.d.ts +120 -0
  1338. package/dist/esm/websocket/types.d.ts.map +1 -0
  1339. package/dist/esm/websocket/types.js +2 -0
  1340. package/dist/esm/websocket/types.js.map +1 -0
  1341. package/package.json +81 -74
  1342. package/dist/cjs/advanced/circuit-breaker.d.ts +0 -111
  1343. package/dist/cjs/advanced/circuit-breaker.d.ts.map +0 -1
  1344. package/dist/cjs/advanced/circuit-breaker.js +0 -278
  1345. package/dist/cjs/advanced/circuit-breaker.js.map +0 -1
  1346. package/dist/cjs/advanced/index.d.ts +0 -8
  1347. package/dist/cjs/advanced/index.d.ts.map +0 -1
  1348. package/dist/cjs/advanced/index.js +0 -13
  1349. package/dist/cjs/advanced/index.js.map +0 -1
  1350. package/dist/cjs/advanced/load-balancer.d.ts +0 -114
  1351. package/dist/cjs/advanced/load-balancer.d.ts.map +0 -1
  1352. package/dist/cjs/advanced/load-balancer.js +0 -354
  1353. package/dist/cjs/advanced/load-balancer.js.map +0 -1
  1354. package/dist/cjs/advanced/smart-caching.d.ts +0 -113
  1355. package/dist/cjs/advanced/smart-caching.d.ts.map +0 -1
  1356. package/dist/cjs/advanced/smart-caching.js +0 -461
  1357. package/dist/cjs/advanced/smart-caching.js.map +0 -1
  1358. package/dist/cjs/advanced/types.d.ts +0 -228
  1359. package/dist/cjs/advanced/types.d.ts.map +0 -1
  1360. package/dist/cjs/advanced/types.js +0 -7
  1361. package/dist/cjs/advanced/types.js.map +0 -1
  1362. package/dist/cjs/ai/merkle-operation.d.ts +0 -245
  1363. package/dist/cjs/ai/merkle-operation.d.ts.map +0 -1
  1364. package/dist/cjs/ai/merkle-operation.js +0 -522
  1365. package/dist/cjs/ai/merkle-operation.js.map +0 -1
  1366. package/dist/cjs/ai/pda-manager.d.ts +0 -134
  1367. package/dist/cjs/ai/pda-manager.d.ts.map +0 -1
  1368. package/dist/cjs/ai/pda-manager.js +0 -250
  1369. package/dist/cjs/ai/pda-manager.js.map +0 -1
  1370. package/dist/cjs/ai/types.ai.d.ts +0 -172
  1371. package/dist/cjs/ai/types.ai.d.ts.map +0 -1
  1372. package/dist/cjs/ai/types.ai.js +0 -14
  1373. package/dist/cjs/ai/types.ai.js.map +0 -1
  1374. package/dist/cjs/ai/zero-combine-fetcher.d.ts +0 -171
  1375. package/dist/cjs/ai/zero-combine-fetcher.d.ts.map +0 -1
  1376. package/dist/cjs/ai/zero-combine-fetcher.js +0 -412
  1377. package/dist/cjs/ai/zero-combine-fetcher.js.map +0 -1
  1378. package/dist/cjs/client.d.ts +0 -83
  1379. package/dist/cjs/client.d.ts.map +0 -1
  1380. package/dist/cjs/client.js +0 -287
  1381. package/dist/cjs/client.js.map +0 -1
  1382. package/dist/cjs/defi/advanced-features.d.ts +0 -207
  1383. package/dist/cjs/defi/advanced-features.d.ts.map +0 -1
  1384. package/dist/cjs/defi/advanced-features.js +0 -382
  1385. package/dist/cjs/defi/advanced-features.js.map +0 -1
  1386. package/dist/cjs/defi/index.d.ts +0 -29
  1387. package/dist/cjs/defi/index.d.ts.map +0 -1
  1388. package/dist/cjs/defi/index.js +0 -50
  1389. package/dist/cjs/defi/index.js.map +0 -1
  1390. package/dist/cjs/defi/jito.d.ts +0 -118
  1391. package/dist/cjs/defi/jito.d.ts.map +0 -1
  1392. package/dist/cjs/defi/jito.js +0 -291
  1393. package/dist/cjs/defi/jito.js.map +0 -1
  1394. package/dist/cjs/defi/jupiter.d.ts +0 -143
  1395. package/dist/cjs/defi/jupiter.d.ts.map +0 -1
  1396. package/dist/cjs/defi/jupiter.js +0 -219
  1397. package/dist/cjs/defi/jupiter.js.map +0 -1
  1398. package/dist/cjs/defi/price-feed.d.ts +0 -63
  1399. package/dist/cjs/defi/price-feed.d.ts.map +0 -1
  1400. package/dist/cjs/defi/price-feed.js +0 -153
  1401. package/dist/cjs/defi/price-feed.js.map +0 -1
  1402. package/dist/cjs/defi/token-data.d.ts +0 -83
  1403. package/dist/cjs/defi/token-data.d.ts.map +0 -1
  1404. package/dist/cjs/defi/token-data.js +0 -205
  1405. package/dist/cjs/defi/token-data.js.map +0 -1
  1406. package/dist/cjs/defi/unstable-features.d.ts +0 -207
  1407. package/dist/cjs/defi/unstable-features.d.ts.map +0 -1
  1408. package/dist/cjs/defi/unstable-features.js +0 -382
  1409. package/dist/cjs/defi/unstable-features.js.map +0 -1
  1410. package/dist/cjs/defi/utils.d.ts +0 -265
  1411. package/dist/cjs/defi/utils.d.ts.map +0 -1
  1412. package/dist/cjs/defi/utils.js +0 -619
  1413. package/dist/cjs/defi/utils.js.map +0 -1
  1414. package/dist/cjs/methods/solana-rpc.d.ts +0 -362
  1415. package/dist/cjs/methods/solana-rpc.d.ts.map +0 -1
  1416. package/dist/cjs/methods/solana-rpc.js +0 -584
  1417. package/dist/cjs/methods/solana-rpc.js.map +0 -1
  1418. package/dist/cjs/nft/advanced-features.d.ts +0 -205
  1419. package/dist/cjs/nft/advanced-features.d.ts.map +0 -1
  1420. package/dist/cjs/nft/advanced-features.js +0 -529
  1421. package/dist/cjs/nft/advanced-features.js.map +0 -1
  1422. package/dist/cjs/nft/clients/index.d.ts +0 -8
  1423. package/dist/cjs/nft/clients/index.d.ts.map +0 -1
  1424. package/dist/cjs/nft/clients/index.js +0 -14
  1425. package/dist/cjs/nft/clients/index.js.map +0 -1
  1426. package/dist/cjs/nft/clients/magic-eden-client.d.ts +0 -101
  1427. package/dist/cjs/nft/clients/magic-eden-client.d.ts.map +0 -1
  1428. package/dist/cjs/nft/clients/magic-eden-client.js +0 -263
  1429. package/dist/cjs/nft/clients/magic-eden-client.js.map +0 -1
  1430. package/dist/cjs/nft/clients/metaplex-onchain-client.d.ts +0 -154
  1431. package/dist/cjs/nft/clients/metaplex-onchain-client.d.ts.map +0 -1
  1432. package/dist/cjs/nft/clients/metaplex-onchain-client.js +0 -408
  1433. package/dist/cjs/nft/clients/metaplex-onchain-client.js.map +0 -1
  1434. package/dist/cjs/nft/clients/tensor-client.d.ts +0 -79
  1435. package/dist/cjs/nft/clients/tensor-client.d.ts.map +0 -1
  1436. package/dist/cjs/nft/clients/tensor-client.js +0 -222
  1437. package/dist/cjs/nft/clients/tensor-client.js.map +0 -1
  1438. package/dist/cjs/nft/index.d.ts +0 -13
  1439. package/dist/cjs/nft/index.d.ts.map +0 -1
  1440. package/dist/cjs/nft/index.js +0 -37
  1441. package/dist/cjs/nft/index.js.map +0 -1
  1442. package/dist/cjs/nft/types.nft.d.ts +0 -342
  1443. package/dist/cjs/nft/types.nft.d.ts.map +0 -1
  1444. package/dist/cjs/nft/types.nft.js +0 -3
  1445. package/dist/cjs/nft/types.nft.js.map +0 -1
  1446. package/dist/cjs/nft/utils.d.ts +0 -46
  1447. package/dist/cjs/nft/utils.d.ts.map +0 -1
  1448. package/dist/cjs/nft/utils.js +0 -281
  1449. package/dist/cjs/nft/utils.js.map +0 -1
  1450. package/dist/cjs/types.d.ts +0 -525
  1451. package/dist/cjs/types.d.ts.map +0 -1
  1452. package/dist/cjs/types.js +0 -192
  1453. package/dist/cjs/types.js.map +0 -1
  1454. package/dist/cjs/utils/constant.d.ts +0 -8
  1455. package/dist/cjs/utils/constant.d.ts.map +0 -1
  1456. package/dist/cjs/utils/constant.js +0 -12
  1457. package/dist/cjs/utils/constant.js.map +0 -1
  1458. package/dist/docs/classes/AIError.html +0 -40
  1459. package/dist/docs/classes/AIInvestmentAdvisor.html +0 -26
  1460. package/dist/docs/classes/AIRarityCalculator.html +0 -28
  1461. package/dist/docs/classes/ArbitrageDetector.html +0 -30
  1462. package/dist/docs/classes/BatchingError.html +0 -40
  1463. package/dist/docs/classes/CacheError.html +0 -40
  1464. package/dist/docs/classes/CircuitBreaker.html +0 -38
  1465. package/dist/docs/classes/CircuitBreakerError.html +0 -40
  1466. package/dist/docs/classes/CollectionAnalytics.html +0 -30
  1467. package/dist/docs/classes/DeFiError.html +0 -40
  1468. package/dist/docs/classes/FlashLoanSimulator.html +0 -26
  1469. package/dist/docs/classes/JitoIntegration.html +0 -53
  1470. package/dist/docs/classes/JupiterIntegration.html +0 -43
  1471. package/dist/docs/classes/Keypair.html +0 -28
  1472. package/dist/docs/classes/LoadBalancer.html +0 -34
  1473. package/dist/docs/classes/MEVProtection.html +0 -28
  1474. package/dist/docs/classes/MarketplaceAggregator.html +0 -28
  1475. package/dist/docs/classes/MerkleOperation.html +0 -74
  1476. package/dist/docs/classes/NFTEngine.html +0 -29
  1477. package/dist/docs/classes/NFTError.html +0 -40
  1478. package/dist/docs/classes/PDAManager.html +0 -46
  1479. package/dist/docs/classes/PortfolioAnalytics.html +0 -26
  1480. package/dist/docs/classes/PriceFeedIntegration.html +0 -37
  1481. package/dist/docs/classes/PublicKey.html +0 -46
  1482. package/dist/docs/classes/RateLimitError.html +0 -39
  1483. package/dist/docs/classes/SmartCaching.html +0 -42
  1484. package/dist/docs/classes/Synapse.html +0 -6
  1485. package/dist/docs/classes/SynapseSolanaEngine.html +0 -49
  1486. package/dist/docs/classes/SynapseUtils.html +0 -25
  1487. package/dist/docs/classes/TokenDataIntegration.html +0 -41
  1488. package/dist/docs/classes/Transaction.html +0 -87
  1489. package/dist/docs/classes/TransactionInstruction.html +0 -10
  1490. package/dist/docs/classes/WebSocketClient.html +0 -47
  1491. package/dist/docs/classes/WebSocketError.html +0 -40
  1492. package/dist/docs/classes/YieldFarmingFinder.html +0 -26
  1493. package/dist/docs/classes/ZeroCombineFetcher.html +0 -25
  1494. package/dist/docs/functions/createSynapseClient.html +0 -2
  1495. package/dist/docs/interfaces/AIAgentConfig.html +0 -11
  1496. package/dist/docs/interfaces/AIAgentContext.html +0 -7
  1497. package/dist/docs/interfaces/AIContext.html +0 -6
  1498. package/dist/docs/interfaces/AIMethodResult.html +0 -6
  1499. package/dist/docs/interfaces/AIRarityAnalysis.html +0 -3
  1500. package/dist/docs/interfaces/AIResponse.html +0 -5
  1501. package/dist/docs/interfaces/AdvancedClientConfig.html +0 -7
  1502. package/dist/docs/interfaces/AdvancedEvents.html +0 -9
  1503. package/dist/docs/interfaces/AdvancedMetricsData.html +0 -5
  1504. package/dist/docs/interfaces/AdvancedPerformanceMetrics.html +0 -6
  1505. package/dist/docs/interfaces/AgentAdapter.html +0 -6
  1506. package/dist/docs/interfaces/AgentRiskReport.html +0 -6
  1507. package/dist/docs/interfaces/AgentTradeSuggestion.html +0 -10
  1508. package/dist/docs/interfaces/AggregatedCollectionStats.html +0 -36
  1509. package/dist/docs/interfaces/ArbitrageOpportunity.html +0 -8
  1510. package/dist/docs/interfaces/AutoTradingStrategy.html +0 -13
  1511. package/dist/docs/interfaces/BatchResponse.html +0 -4
  1512. package/dist/docs/interfaces/BatchResult.html +0 -6
  1513. package/dist/docs/interfaces/BatcherConfig.html +0 -5
  1514. package/dist/docs/interfaces/BirdeyeTokenPrice.html +0 -4
  1515. package/dist/docs/interfaces/BlockhashInfo.html +0 -5
  1516. package/dist/docs/interfaces/BuildSwapTxResult.html +0 -7
  1517. package/dist/docs/interfaces/CacheStats.html +0 -9
  1518. package/dist/docs/interfaces/ChunkInfo.html +0 -10
  1519. package/dist/docs/interfaces/CircuitBreakerConfig.html +0 -6
  1520. package/dist/docs/interfaces/ClientStats.html +0 -14
  1521. package/dist/docs/interfaces/CollectionStats.html +0 -17
  1522. package/dist/docs/interfaces/CollectionTrends.html +0 -7
  1523. package/dist/docs/interfaces/CompressedNFTInfo.html +0 -13
  1524. package/dist/docs/interfaces/ConnectionEvents.html +0 -11
  1525. package/dist/docs/interfaces/DeFiConfig.html +0 -16
  1526. package/dist/docs/interfaces/DiagnosticsResult.html +0 -6
  1527. package/dist/docs/interfaces/ExecuteSwapParams.html +0 -10
  1528. package/dist/docs/interfaces/FetchConfig.html +0 -7
  1529. package/dist/docs/interfaces/FlashLoanAction.html +0 -6
  1530. package/dist/docs/interfaces/FlashLoanSimulation.html +0 -9
  1531. package/dist/docs/interfaces/GatewayStats.html +0 -7
  1532. package/dist/docs/interfaces/InscriptionResult.html +0 -18
  1533. package/dist/docs/interfaces/InvestmentRecommendation.html +0 -10
  1534. package/dist/docs/interfaces/JitoBundleParams.html +0 -4
  1535. package/dist/docs/interfaces/JitoBundleResult.html +0 -6
  1536. package/dist/docs/interfaces/JitoBundleStatus.html +0 -6
  1537. package/dist/docs/interfaces/JitoTipAccount.html +0 -3
  1538. package/dist/docs/interfaces/JupiterQuoteParams.html +0 -10
  1539. package/dist/docs/interfaces/JupiterQuoteRequest.html +0 -17
  1540. package/dist/docs/interfaces/JupiterQuoteResponse.html +0 -13
  1541. package/dist/docs/interfaces/JupiterSwapOptions.html +0 -8
  1542. package/dist/docs/interfaces/JupiterSwapResponse.html +0 -4
  1543. package/dist/docs/interfaces/JupiterTokenPrice.html +0 -5
  1544. package/dist/docs/interfaces/LoadBalancerConfig.html +0 -5
  1545. package/dist/docs/interfaces/MEVProtectionConfig.html +0 -11
  1546. package/dist/docs/interfaces/MEVProtectionResult.html +0 -6
  1547. package/dist/docs/interfaces/MagicEdenActivity.html +0 -22
  1548. package/dist/docs/interfaces/MagicEdenCollection.html +0 -22
  1549. package/dist/docs/interfaces/MagicEdenCollectionStats.html +0 -17
  1550. package/dist/docs/interfaces/MagicEdenErrorResponse.html +0 -4
  1551. package/dist/docs/interfaces/MagicEdenListing.html +0 -24
  1552. package/dist/docs/interfaces/MarketplaceClientConfig.html +0 -14
  1553. package/dist/docs/interfaces/MarketplaceFloorPrices.html +0 -7
  1554. package/dist/docs/interfaces/MarketplaceListing.html +0 -9
  1555. package/dist/docs/interfaces/MerkleLeaf.html +0 -6
  1556. package/dist/docs/interfaces/MerkleProof.html +0 -8
  1557. package/dist/docs/interfaces/MerkleValidationResult.html +0 -10
  1558. package/dist/docs/interfaces/MultiChainSignal.html +0 -8
  1559. package/dist/docs/interfaces/NFTAttribute.html +0 -4
  1560. package/dist/docs/interfaces/NFTConfig.html +0 -6
  1561. package/dist/docs/interfaces/NFTInfo.html +0 -10
  1562. package/dist/docs/interfaces/NFTMetadata.html +0 -9
  1563. package/dist/docs/interfaces/NormalizedMarketplaceListing.html +0 -18
  1564. package/dist/docs/interfaces/OOBECompatibleAgent.html +0 -8
  1565. package/dist/docs/interfaces/PDAConfig.html +0 -10
  1566. package/dist/docs/interfaces/ParsedAccountInfo.html +0 -8
  1567. package/dist/docs/interfaces/PerformanceMetrics.html +0 -9
  1568. package/dist/docs/interfaces/PortfolioMetrics.html +0 -10
  1569. package/dist/docs/interfaces/PriceData.html +0 -8
  1570. package/dist/docs/interfaces/ProofRecord.html +0 -12
  1571. package/dist/docs/interfaces/QuoteRequestCommon.html +0 -11
  1572. package/dist/docs/interfaces/QuoteResponse.html +0 -6
  1573. package/dist/docs/interfaces/RarityAlgorithmConfig.html +0 -3
  1574. package/dist/docs/interfaces/RarityScore.html +0 -8
  1575. package/dist/docs/interfaces/RaydiumBuildSwapParams.html +0 -14
  1576. package/dist/docs/interfaces/RaydiumQuoteRequest.html +0 -14
  1577. package/dist/docs/interfaces/RequestOptions.html +0 -12
  1578. package/dist/docs/interfaces/RetryAttempt.html +0 -5
  1579. package/dist/docs/interfaces/SecurityThreat.html +0 -6
  1580. package/dist/docs/interfaces/Signer.html +0 -4
  1581. package/dist/docs/interfaces/SmartCacheConfig.html +0 -7
  1582. package/dist/docs/interfaces/SmartQueryOptions.html +0 -10
  1583. package/dist/docs/interfaces/StressTestOptions.html +0 -8
  1584. package/dist/docs/interfaces/StressTestResult.html +0 -9
  1585. package/dist/docs/interfaces/SubscriptionConfig.html +0 -9
  1586. package/dist/docs/interfaces/SubscriptionOptions.html +0 -7
  1587. package/dist/docs/interfaces/SubscriptionResult.html +0 -7
  1588. package/dist/docs/interfaces/SynapseConfig.html +0 -13
  1589. package/dist/docs/interfaces/SynapseLikeClient.html +0 -4
  1590. package/dist/docs/interfaces/TensorCollectionStats.html +0 -33
  1591. package/dist/docs/interfaces/TensorErrorResponse.html +0 -5
  1592. package/dist/docs/interfaces/TensorListing.html +0 -16
  1593. package/dist/docs/interfaces/TensorSale.html +0 -16
  1594. package/dist/docs/interfaces/TokenAccountInfo.html +0 -12
  1595. package/dist/docs/interfaces/TokenHolding.html +0 -8
  1596. package/dist/docs/interfaces/TokenInfo.html +0 -7
  1597. package/dist/docs/interfaces/TokenLargestAccount.html +0 -5
  1598. package/dist/docs/interfaces/TokenSupply.html +0 -5
  1599. package/dist/docs/interfaces/TradeExecution.html +0 -14
  1600. package/dist/docs/interfaces/TransactionSignature.html +0 -8
  1601. package/dist/docs/interfaces/UpstreamHealth.html +0 -8
  1602. package/dist/docs/interfaces/UserPDAs.html +0 -10
  1603. package/dist/docs/interfaces/WebSocketConfig.html +0 -12
  1604. package/dist/docs/interfaces/WebSocketMessage.html +0 -6
  1605. package/dist/docs/interfaces/YieldOpportunity.html +0 -8
  1606. package/dist/docs/interfaces/ZeroChunk.html +0 -8
  1607. package/dist/docs/interfaces/ZeroCombineResult.html +0 -3
  1608. package/dist/docs/media/README-1.md +0 -778
  1609. package/dist/docs/media/README-2.md +0 -1050
  1610. package/dist/docs/media/README-3.md +0 -1522
  1611. package/dist/docs/media/README-4.md +0 -869
  1612. package/dist/docs/media/README-5.md +0 -857
  1613. package/dist/docs/media/README-6.md +0 -727
  1614. package/dist/docs/media/README.md +0 -766
  1615. package/dist/docs/types/BlockhashWithExpiryBlockHeight.html +0 -1
  1616. package/dist/docs/types/RiskTolerance.html +0 -1
  1617. package/dist/docs/types/SimulatedTransactionResponse.html +0 -1
  1618. package/dist/esm/advanced/circuit-breaker.d.ts +0 -111
  1619. package/dist/esm/advanced/circuit-breaker.d.ts.map +0 -1
  1620. package/dist/esm/advanced/circuit-breaker.js +0 -274
  1621. package/dist/esm/advanced/circuit-breaker.js.map +0 -1
  1622. package/dist/esm/advanced/index.d.ts +0 -8
  1623. package/dist/esm/advanced/index.d.ts.map +0 -1
  1624. package/dist/esm/advanced/index.js +0 -7
  1625. package/dist/esm/advanced/index.js.map +0 -1
  1626. package/dist/esm/advanced/load-balancer.d.ts +0 -114
  1627. package/dist/esm/advanced/load-balancer.d.ts.map +0 -1
  1628. package/dist/esm/advanced/load-balancer.js +0 -350
  1629. package/dist/esm/advanced/load-balancer.js.map +0 -1
  1630. package/dist/esm/advanced/smart-caching.d.ts +0 -113
  1631. package/dist/esm/advanced/smart-caching.d.ts.map +0 -1
  1632. package/dist/esm/advanced/smart-caching.js +0 -457
  1633. package/dist/esm/advanced/smart-caching.js.map +0 -1
  1634. package/dist/esm/advanced/types.d.ts +0 -228
  1635. package/dist/esm/advanced/types.d.ts.map +0 -1
  1636. package/dist/esm/advanced/types.js +0 -6
  1637. package/dist/esm/advanced/types.js.map +0 -1
  1638. package/dist/esm/ai/merkle-operation.d.ts +0 -245
  1639. package/dist/esm/ai/merkle-operation.d.ts.map +0 -1
  1640. package/dist/esm/ai/merkle-operation.js +0 -485
  1641. package/dist/esm/ai/merkle-operation.js.map +0 -1
  1642. package/dist/esm/ai/pda-manager.d.ts +0 -134
  1643. package/dist/esm/ai/pda-manager.d.ts.map +0 -1
  1644. package/dist/esm/ai/pda-manager.js +0 -213
  1645. package/dist/esm/ai/pda-manager.js.map +0 -1
  1646. package/dist/esm/ai/types.ai.d.ts +0 -172
  1647. package/dist/esm/ai/types.ai.d.ts.map +0 -1
  1648. package/dist/esm/ai/types.ai.js +0 -13
  1649. package/dist/esm/ai/types.ai.js.map +0 -1
  1650. package/dist/esm/ai/zero-combine-fetcher.d.ts +0 -171
  1651. package/dist/esm/ai/zero-combine-fetcher.d.ts.map +0 -1
  1652. package/dist/esm/ai/zero-combine-fetcher.js +0 -408
  1653. package/dist/esm/ai/zero-combine-fetcher.js.map +0 -1
  1654. package/dist/esm/client.d.ts +0 -83
  1655. package/dist/esm/client.d.ts.map +0 -1
  1656. package/dist/esm/client.js +0 -283
  1657. package/dist/esm/client.js.map +0 -1
  1658. package/dist/esm/defi/advanced-features.d.ts +0 -207
  1659. package/dist/esm/defi/advanced-features.d.ts.map +0 -1
  1660. package/dist/esm/defi/advanced-features.js +0 -374
  1661. package/dist/esm/defi/advanced-features.js.map +0 -1
  1662. package/dist/esm/defi/index.d.ts +0 -29
  1663. package/dist/esm/defi/index.d.ts.map +0 -1
  1664. package/dist/esm/defi/index.js +0 -37
  1665. package/dist/esm/defi/index.js.map +0 -1
  1666. package/dist/esm/defi/jito.d.ts +0 -118
  1667. package/dist/esm/defi/jito.d.ts.map +0 -1
  1668. package/dist/esm/defi/jito.js +0 -287
  1669. package/dist/esm/defi/jito.js.map +0 -1
  1670. package/dist/esm/defi/jupiter.d.ts +0 -143
  1671. package/dist/esm/defi/jupiter.d.ts.map +0 -1
  1672. package/dist/esm/defi/jupiter.js +0 -215
  1673. package/dist/esm/defi/jupiter.js.map +0 -1
  1674. package/dist/esm/defi/price-feed.d.ts +0 -63
  1675. package/dist/esm/defi/price-feed.d.ts.map +0 -1
  1676. package/dist/esm/defi/price-feed.js +0 -149
  1677. package/dist/esm/defi/price-feed.js.map +0 -1
  1678. package/dist/esm/defi/token-data.d.ts +0 -83
  1679. package/dist/esm/defi/token-data.d.ts.map +0 -1
  1680. package/dist/esm/defi/token-data.js +0 -201
  1681. package/dist/esm/defi/token-data.js.map +0 -1
  1682. package/dist/esm/defi/unstable-features.d.ts +0 -207
  1683. package/dist/esm/defi/unstable-features.d.ts.map +0 -1
  1684. package/dist/esm/defi/unstable-features.js +0 -374
  1685. package/dist/esm/defi/unstable-features.js.map +0 -1
  1686. package/dist/esm/defi/utils.d.ts +0 -265
  1687. package/dist/esm/defi/utils.d.ts.map +0 -1
  1688. package/dist/esm/defi/utils.js +0 -582
  1689. package/dist/esm/defi/utils.js.map +0 -1
  1690. package/dist/esm/methods/solana-rpc.d.ts +0 -362
  1691. package/dist/esm/methods/solana-rpc.d.ts.map +0 -1
  1692. package/dist/esm/methods/solana-rpc.js +0 -532
  1693. package/dist/esm/methods/solana-rpc.js.map +0 -1
  1694. package/dist/esm/nft/advanced-features.d.ts +0 -205
  1695. package/dist/esm/nft/advanced-features.d.ts.map +0 -1
  1696. package/dist/esm/nft/advanced-features.js +0 -489
  1697. package/dist/esm/nft/advanced-features.js.map +0 -1
  1698. package/dist/esm/nft/clients/index.d.ts +0 -8
  1699. package/dist/esm/nft/clients/index.d.ts.map +0 -1
  1700. package/dist/esm/nft/clients/index.js +0 -8
  1701. package/dist/esm/nft/clients/index.js.map +0 -1
  1702. package/dist/esm/nft/clients/magic-eden-client.d.ts +0 -101
  1703. package/dist/esm/nft/clients/magic-eden-client.d.ts.map +0 -1
  1704. package/dist/esm/nft/clients/magic-eden-client.js +0 -259
  1705. package/dist/esm/nft/clients/magic-eden-client.js.map +0 -1
  1706. package/dist/esm/nft/clients/metaplex-onchain-client.d.ts +0 -154
  1707. package/dist/esm/nft/clients/metaplex-onchain-client.d.ts.map +0 -1
  1708. package/dist/esm/nft/clients/metaplex-onchain-client.js +0 -404
  1709. package/dist/esm/nft/clients/metaplex-onchain-client.js.map +0 -1
  1710. package/dist/esm/nft/clients/tensor-client.d.ts +0 -79
  1711. package/dist/esm/nft/clients/tensor-client.d.ts.map +0 -1
  1712. package/dist/esm/nft/clients/tensor-client.js +0 -218
  1713. package/dist/esm/nft/clients/tensor-client.js.map +0 -1
  1714. package/dist/esm/nft/index.d.ts +0 -13
  1715. package/dist/esm/nft/index.d.ts.map +0 -1
  1716. package/dist/esm/nft/index.js +0 -15
  1717. package/dist/esm/nft/index.js.map +0 -1
  1718. package/dist/esm/nft/types.nft.d.ts +0 -342
  1719. package/dist/esm/nft/types.nft.d.ts.map +0 -1
  1720. package/dist/esm/nft/types.nft.js +0 -2
  1721. package/dist/esm/nft/types.nft.js.map +0 -1
  1722. package/dist/esm/nft/utils.d.ts +0 -46
  1723. package/dist/esm/nft/utils.d.ts.map +0 -1
  1724. package/dist/esm/nft/utils.js +0 -276
  1725. package/dist/esm/nft/utils.js.map +0 -1
  1726. package/dist/esm/types.d.ts +0 -525
  1727. package/dist/esm/types.d.ts.map +0 -1
  1728. package/dist/esm/types.js +0 -178
  1729. package/dist/esm/types.js.map +0 -1
  1730. package/dist/esm/utils/constant.d.ts +0 -8
  1731. package/dist/esm/utils/constant.d.ts.map +0 -1
  1732. package/dist/esm/utils/constant.js +0 -8
  1733. package/dist/esm/utils/constant.js.map +0 -1
@@ -1,776 +1,634 @@
1
- <!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>@oobe-protocol-labs/synapse-client-sdk</title><meta name="description" content="Documentation for @oobe-protocol-labs/synapse-client-sdk"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">@oobe-protocol-labs/synapse-client-sdk</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>@oobe-protocol-labs/synapse-client-sdk</h1></div><div class="tsd-panel tsd-typography"><a id="md:synapse-client-sdk" class="tsd-anchor"></a><h1 class="tsd-anchor-link">Synapse Client SDK<a href="#md:synapse-client-sdk" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><p>TypeScript SDK for Solana blockchain with advanced features including AI integration, real-time WebSocket support, DeFi tools, NFT management, and intelligent caching.</p>
2
- <blockquote>
3
- <p><strong>Note:</strong> This SDK is specifically designed to be perfectly aligned with the Synapse Gateway and Oobe Protocol architecture, ensuring optimal compatibility, high performance, and native integration with all gateway enterprise features (rate limiting, distributed caching, load balancing, circuit breaker).</p>
4
- </blockquote>
5
- <a id="md:architecture-overview" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Architecture Overview<a href="#md:architecture-overview" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><pre><code><span class="hl-0">┌──────────────────────────────────────────────────────────────────────┐</span><br/><span class="hl-0">│ </span><span class="hl-1">Synapse</span><span class="hl-0"> </span><span class="hl-1">Client</span><span class="hl-0"> </span><span class="hl-2">SDK</span><span class="hl-0"> │</span><br/><span class="hl-0">├──────────────────────────────────────────────────────────────────────┤</span><br/><span class="hl-0">│ │</span><br/><span class="hl-0">│ ┌─────────────┐ ┌──────────────┐ ┌────────────┐ ┌────────────┐ │</span><br/><span class="hl-0">│ │ </span><span class="hl-1">Client</span><span class="hl-0"> │ │ </span><span class="hl-1">Advanced</span><span class="hl-0"> │ │ </span><span class="hl-1">WebSocket</span><span class="hl-0"> │ │ </span><span class="hl-1">Analytics</span><span class="hl-0"> │ │</span><br/><span class="hl-0">│ │ </span><span class="hl-1">Core</span><span class="hl-0"> │ │ </span><span class="hl-1">Features</span><span class="hl-0"> │ │ </span><span class="hl-1">Client</span><span class="hl-0"> │ │ </span><span class="hl-1">Engine</span><span class="hl-0"> │ │</span><br/><span class="hl-0">│ └─────────────┘ └──────────────┘ └────────────┘ └────────────┘ │</span><br/><span class="hl-0">│ │</span><br/><span class="hl-0">│ ┌─────────────┐ ┌──────────────┐ ┌────────────┐ ┌────────────┐ │</span><br/><span class="hl-0">│ │ </span><span class="hl-1">DeFi</span><span class="hl-0"> │ │ </span><span class="hl-2">NFT</span><span class="hl-0"> │ │ </span><span class="hl-2">AI</span><span class="hl-0"> │ │ </span><span class="hl-2">RPC</span><span class="hl-0"> │ │</span><br/><span class="hl-0">│ │ </span><span class="hl-1">Module</span><span class="hl-0"> │ │ </span><span class="hl-1">Module</span><span class="hl-0"> │ │ </span><span class="hl-1">Module</span><span class="hl-0"> │ │ </span><span class="hl-1">Methods</span><span class="hl-0"> │ │</span><br/><span class="hl-0">│ └─────────────┘ └──────────────┘ └────────────┘ └────────────┘ │</span><br/><span class="hl-0">│ │</span><br/><span class="hl-0">├──────────────────────────────────────────────────────────────────────┤</span><br/><span class="hl-0">│ </span><span class="hl-1">Solana</span><span class="hl-0"> </span><span class="hl-2">RPC</span><span class="hl-0"> </span><span class="hl-1">Gateway</span><span class="hl-0"> </span><span class="hl-1">Layer</span><span class="hl-0"> │</span><br/><span class="hl-0">└──────────────────────────────────────────────────────────────────────┘</span>
6
- </code><button>Copy</button></pre>
7
-
8
- <a id="md:features-matrix" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Features Matrix<a href="#md:features-matrix" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><table>
1
+ <!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>@oobe-protocol-labs/synapse-client-sdk</title><meta name="description" content="Documentation for @oobe-protocol-labs/synapse-client-sdk"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">@oobe-protocol-labs/synapse-client-sdk</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>@oobe-protocol-labs/synapse-client-sdk</h1></div><div class="tsd-panel tsd-typography"><a id="md:oobe-protocol-labssynapse-client-sdk" class="tsd-anchor"></a><h1 class="tsd-anchor-link">@oobe-protocol-labs/synapse-client-sdk<a href="#md:oobe-protocol-labssynapse-client-sdk" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><p>Typed Solana RPC gateway SDK for Node.js and the browser.
2
+ Covers JSON-RPC, WebSocket PubSub, gRPC/Geyser streaming, DAS (Digital Asset Standard),
3
+ AI agent tooling (LangChain + Zod), and the x402 HTTP payment protocol --
4
+ all behind a single <code>SynapseClient</code> entry point.</p>
5
+ <table>
9
6
  <thead>
10
7
  <tr>
11
- <th>Module</th>
12
- <th>Capabilities</th>
13
- <th>Status</th>
14
- <th>Performance</th>
8
+ <th></th>
9
+ <th></th>
15
10
  </tr>
16
11
  </thead>
17
12
  <tbody>
18
13
  <tr>
19
- <td><strong>Core Client</strong></td>
20
- <td>RPC calls, batching, rotation, statistics</td>
21
- <td>Production</td>
22
- <td>10k+ req/s</td>
23
- </tr>
24
- <tr>
25
- <td><strong>Advanced</strong></td>
26
- <td>Circuit breaker, smart caching, load balancing</td>
27
- <td>Production</td>
28
- <td>99.9% uptime</td>
29
- </tr>
30
- <tr>
31
- <td><strong>WebSocket</strong></td>
32
- <td>Real-time subscriptions, auto-reconnect</td>
33
- <td>Production</td>
34
- <td>&lt;50ms latency</td>
14
+ <td><strong>Version</strong></td>
15
+ <td>1.0.1</td>
35
16
  </tr>
36
17
  <tr>
37
- <td><strong>DeFi</strong></td>
38
- <td>Jupiter, Jito, token data, price feeds</td>
39
- <td>Production</td>
40
- <td>Sub-second execution</td>
18
+ <td><strong>License</strong></td>
19
+ <td>MIT</td>
41
20
  </tr>
42
21
  <tr>
43
- <td><strong>NFT</strong></td>
44
- <td>Metadata, rarity, marketplace aggregation</td>
45
- <td>Production</td>
46
- <td>&lt;100ms queries</td>
22
+ <td><strong>Node</strong></td>
23
+ <td>&gt;= 18.0.0</td>
47
24
  </tr>
48
25
  <tr>
49
- <td><strong>AI</strong></td>
50
- <td>OOBE Protocol, Zero-Combine, PDA management</td>
51
- <td>Production</td>
52
- <td>ML-powered</td>
53
- </tr>
54
- <tr>
55
- <td><strong>Analytics</strong></td>
56
- <td>Metrics, predictions, anomaly detection</td>
57
- <td>Production</td>
58
- <td>Real-time insights</td>
26
+ <td><strong>TypeScript</strong></td>
27
+ <td>&gt;= 5.0</td>
59
28
  </tr>
60
29
  <tr>
61
- <td><strong>Methods</strong></td>
62
- <td>70+ Solana RPC methods</td>
63
- <td>Production</td>
64
- <td>Type-safe</td>
30
+ <td><strong>Registry</strong></td>
31
+ <td><code>npm i @oobe-protocol-labs/synapse-client-sdk</code></td>
65
32
  </tr>
66
33
  </tbody>
67
34
  </table>
68
- <a id="md:installation" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Installation<a href="#md:installation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><pre><code class="bash"><span class="hl-3">npm</span><span class="hl-0"> </span><span class="hl-4">install</span><span class="hl-0"> </span><span class="hl-4">@synapse/client-sdk</span><br/><span class="hl-5"># or</span><br/><span class="hl-3">pnpm</span><span class="hl-0"> </span><span class="hl-4">add</span><span class="hl-0"> </span><span class="hl-4">@synapse/client-sdk</span><br/><span class="hl-5"># or</span><br/><span class="hl-3">yarn</span><span class="hl-0"> </span><span class="hl-4">add</span><span class="hl-0"> </span><span class="hl-4">@synapse/client-sdk</span>
35
+ <hr>
36
+ <a id="md:table-of-contents" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Table of Contents<a href="#md:table-of-contents" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><ol>
37
+ <li><a href="#md:installation">Installation</a></li>
38
+ <li><a href="#md:quick-start">Quick Start</a></li>
39
+ <li><a href="#md:architecture">Architecture</a></li>
40
+ <li><a href="#md:module-reference">Module Reference</a>
41
+ <ul>
42
+ <li><a href="#md:core">core/</a></li>
43
+ <li><a href="#md:rpc">rpc/</a></li>
44
+ <li><a href="#md:das">das/</a></li>
45
+ <li><a href="#md:websocket">websocket/</a></li>
46
+ <li><a href="#md:grpc">grpc/</a></li>
47
+ <li><a href="#md:ai">ai/</a></li>
48
+ <li><a href="#md:utils">utils/</a></li>
49
+ </ul>
50
+ </li>
51
+ <li><a href="#md:endpoints-and-regions">Endpoints and Regions</a></li>
52
+ <li><a href="#md:branded-types">Branded Types</a></li>
53
+ <li><a href="#md:ai-agent-integration">AI Agent Integration</a>
54
+ <ul>
55
+ <li><a href="#md:zod-schemas-and-langchain-tools">Zod Schemas and LangChain Tools</a></li>
56
+ <li><a href="#md:protocol-tools">Protocol Tools (Jupiter, Raydium, Metaplex)</a></li>
57
+ <li><a href="#md:agent-commerce-gateway">Agent Commerce Gateway</a></li>
58
+ <li><a href="#md:x402-payment-protocol">x402 Payment Protocol</a></li>
59
+ </ul>
60
+ </li>
61
+ <li><a href="#md:testing">Testing</a></li>
62
+ <li><a href="#md:build-and-development">Build and Development</a></li>
63
+ <li><a href="#md:package-exports">Package Exports</a></li>
64
+ <li><a href="#md:documentation">Documentation</a></li>
65
+ <li><a href="#md:contributing">Contributing</a></li>
66
+ <li><a href="#md:license">License</a></li>
67
+ </ol>
68
+ <hr>
69
+ <a id="md:installation" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Installation<a href="#md:installation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><pre><code class="bash"><span class="hl-7"># pnpm (recommended)</span><br/><span class="hl-6">pnpm</span><span class="hl-1"> </span><span class="hl-3">add</span><span class="hl-1"> </span><span class="hl-3">@oobe-protocol-labs/synapse-client-sdk</span><br/><br/><span class="hl-7"># npm</span><br/><span class="hl-6">npm</span><span class="hl-1"> </span><span class="hl-3">install</span><span class="hl-1"> </span><span class="hl-3">@oobe-protocol-labs/synapse-client-sdk</span><br/><br/><span class="hl-7"># yarn</span><br/><span class="hl-6">yarn</span><span class="hl-1"> </span><span class="hl-3">add</span><span class="hl-1"> </span><span class="hl-3">@oobe-protocol-labs/synapse-client-sdk</span>
69
70
  </code><button type="button">Copy</button></pre>
70
71
 
71
- <a id="md:quick-start" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Quick Start<a href="#md:quick-start" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><a id="md:basic-client-initialization" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Basic Client Initialization<a href="#md:basic-client-initialization" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="typescript"><span class="hl-6">import</span><span class="hl-0"> { </span><span class="hl-1">SynapseClient</span><span class="hl-0"> } </span><span class="hl-6">from</span><span class="hl-0"> </span><span class="hl-4">&#39;@synapse/client-sdk&#39;</span><span class="hl-0">;</span><br/><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">client</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">SynapseClient</span><span class="hl-0">({</span><br/><span class="hl-0"> </span><span class="hl-1">endpoint:</span><span class="hl-0"> </span><span class="hl-4">&#39;https://your-synapse-gateway.com&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">apiKey:</span><span class="hl-0"> </span><span class="hl-1">process</span><span class="hl-0">.</span><span class="hl-1">env</span><span class="hl-0">.</span><span class="hl-2">SYNAPSE_API_KEY</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">timeout:</span><span class="hl-0"> </span><span class="hl-8">30000</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">debug:</span><span class="hl-0"> </span><span class="hl-7">false</span><span class="hl-0">,</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-5">// Execute RPC call</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">balance</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">call</span><span class="hl-0">(</span><span class="hl-4">&#39;getBalance&#39;</span><span class="hl-0">, [</span><span class="hl-4">&#39;YourPublicKeyHere&#39;</span><span class="hl-0">]);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Balance (SOL):&#39;</span><span class="hl-0">, </span><span class="hl-1">balance</span><span class="hl-0"> / </span><span class="hl-8">1e9</span><span class="hl-0">);</span><br/><br/><span class="hl-5">// Batch multiple RPC calls</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">results</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">batch</span><span class="hl-0">([</span><br/><span class="hl-0"> { </span><span class="hl-1">method:</span><span class="hl-0"> </span><span class="hl-4">&#39;getBalance&#39;</span><span class="hl-0">, </span><span class="hl-1">params:</span><span class="hl-0"> [</span><span class="hl-4">&#39;address1&#39;</span><span class="hl-0">] },</span><br/><span class="hl-0"> { </span><span class="hl-1">method:</span><span class="hl-0"> </span><span class="hl-4">&#39;getAccountInfo&#39;</span><span class="hl-0">, </span><span class="hl-1">params:</span><span class="hl-0"> [</span><span class="hl-4">&#39;address2&#39;</span><span class="hl-0">, { </span><span class="hl-1">encoding:</span><span class="hl-0"> </span><span class="hl-4">&#39;jsonParsed&#39;</span><span class="hl-0"> }] },</span><br/><span class="hl-0"> { </span><span class="hl-1">method:</span><span class="hl-0"> </span><span class="hl-4">&#39;getBlockHeight&#39;</span><span class="hl-0">, </span><span class="hl-1">params:</span><span class="hl-0"> [] },</span><br/><span class="hl-0">]);</span><br/><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Batch results:&#39;</span><span class="hl-0">, </span><span class="hl-1">results</span><span class="hl-0">);</span>
72
+ <p>TypeScript is a peer dependency. Ensure <code>typescript &gt;= 5.0</code> is installed in your project.</p>
73
+ <hr>
74
+ <a id="md:quick-start" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Quick Start<a href="#md:quick-start" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><pre><code class="ts"><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-2">SynapseClient</span><span class="hl-1">, </span><span class="hl-2">Pubkey</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-3">&#39;@oobe-protocol-labs/synapse-client-sdk&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">client</span><span class="hl-1"> = </span><span class="hl-4">new</span><span class="hl-1"> </span><span class="hl-6">SynapseClient</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-2">endpoint:</span><span class="hl-1"> </span><span class="hl-3">&#39;https://rpc.synapse.com&#39;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">apiKey:</span><span class="hl-1"> </span><span class="hl-3">&#39;sk-...&#39;</span><span class="hl-1">,</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-7">// JSON-RPC</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">balance</span><span class="hl-1"> = </span><span class="hl-0">await</span><span class="hl-1"> </span><span class="hl-2">client</span><span class="hl-1">.</span><span class="hl-2">rpc</span><span class="hl-1">.</span><span class="hl-6">getBalance</span><span class="hl-1">(</span><span class="hl-6">Pubkey</span><span class="hl-1">(</span><span class="hl-3">&#39;So11111111111111111111111111111111&#39;</span><span class="hl-1">));</span><br/><span class="hl-2">console</span><span class="hl-1">.</span><span class="hl-6">log</span><span class="hl-1">(</span><span class="hl-2">balance</span><span class="hl-1">.</span><span class="hl-2">value</span><span class="hl-1">); </span><span class="hl-7">// lamports</span><br/><br/><span class="hl-7">// DAS (compressed NFTs)</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">asset</span><span class="hl-1"> = </span><span class="hl-0">await</span><span class="hl-1"> </span><span class="hl-2">client</span><span class="hl-1">.</span><span class="hl-2">das</span><span class="hl-1">.</span><span class="hl-6">getAsset</span><span class="hl-1">(</span><span class="hl-6">Pubkey</span><span class="hl-1">(</span><span class="hl-3">&#39;...&#39;</span><span class="hl-1">));</span><br/><span class="hl-2">console</span><span class="hl-1">.</span><span class="hl-6">log</span><span class="hl-1">(</span><span class="hl-2">asset</span><span class="hl-1">.</span><span class="hl-2">content</span><span class="hl-1">.</span><span class="hl-2">metadata</span><span class="hl-1">?.</span><span class="hl-2">name</span><span class="hl-1">);</span><br/><br/><span class="hl-7">// WebSocket</span><br/><span class="hl-2">client</span><span class="hl-1">.</span><span class="hl-2">ws</span><span class="hl-1">.</span><span class="hl-6">onSlotChange</span><span class="hl-1">((</span><span class="hl-2">slot</span><span class="hl-1">) </span><span class="hl-4">=&gt;</span><span class="hl-1"> </span><span class="hl-2">console</span><span class="hl-1">.</span><span class="hl-6">log</span><span class="hl-1">(</span><span class="hl-3">&#39;slot&#39;</span><span class="hl-1">, </span><span class="hl-2">slot</span><span class="hl-1">));</span><br/><br/><span class="hl-7">// Cleanup</span><br/><span class="hl-2">client</span><span class="hl-1">.</span><span class="hl-6">destroy</span><span class="hl-1">();</span>
72
75
  </code><button type="button">Copy</button></pre>
73
76
 
74
- <a id="md:client-statistics" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Client Statistics<a href="#md:client-statistics" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="typescript"><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">stats</span><span class="hl-0"> = </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">getStats</span><span class="hl-0">();</span><br/><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Performance Metrics:&#39;</span><span class="hl-0">, {</span><br/><span class="hl-0"> </span><span class="hl-1">requestCount:</span><span class="hl-0"> </span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">requestCount</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">errorCount:</span><span class="hl-0"> </span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">errorCount</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">errorRate:</span><span class="hl-0"> (</span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">errorCount</span><span class="hl-0"> / </span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">requestCount</span><span class="hl-0"> * </span><span class="hl-8">100</span><span class="hl-0">).</span><span class="hl-3">toFixed</span><span class="hl-0">(</span><span class="hl-8">2</span><span class="hl-0">) + </span><span class="hl-4">&#39;%&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">averageLatency:</span><span class="hl-0"> </span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">averageLatency</span><span class="hl-0">.</span><span class="hl-3">toFixed</span><span class="hl-0">(</span><span class="hl-8">2</span><span class="hl-0">) + </span><span class="hl-4">&#39;ms&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">cacheHitRate:</span><span class="hl-0"> (</span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">cacheHitRate</span><span class="hl-0"> * </span><span class="hl-8">100</span><span class="hl-0">).</span><span class="hl-3">toFixed</span><span class="hl-0">(</span><span class="hl-8">2</span><span class="hl-0">) + </span><span class="hl-4">&#39;%&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">activeConnections:</span><span class="hl-0"> </span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">activeConnections</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">pendingRequests:</span><span class="hl-0"> </span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">pendingRequests</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">uptime:</span><span class="hl-0"> </span><span class="hl-1">Math</span><span class="hl-0">.</span><span class="hl-3">floor</span><span class="hl-0">((</span><span class="hl-1">Date</span><span class="hl-0">.</span><span class="hl-3">now</span><span class="hl-0">() - </span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">uptime</span><span class="hl-0">) / </span><span class="hl-8">1000</span><span class="hl-0">) + </span><span class="hl-4">&#39;s&#39;</span><span class="hl-0">,</span><br/><span class="hl-0">});</span>
77
+ <a id="md:factory-helpers" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Factory helpers<a href="#md:factory-helpers" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="ts"><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-2">createSynapse</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-3">&#39;@oobe-protocol-labs/synapse-client-sdk&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">client</span><span class="hl-1"> = </span><span class="hl-6">createSynapse</span><span class="hl-1">({ </span><span class="hl-2">endpoint:</span><span class="hl-1"> </span><span class="hl-3">&#39;https://rpc.synapse.com&#39;</span><span class="hl-1"> });</span>
75
78
  </code><button type="button">Copy</button></pre>
76
79
 
77
- <a id="md:endpoint-rotation" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Endpoint Rotation<a href="#md:endpoint-rotation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>The client automatically rotates between multiple endpoints for high availability:</p>
78
- <pre><code class="typescript"><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">client</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">SynapseClient</span><span class="hl-0">({</span><br/><span class="hl-0"> </span><span class="hl-1">endpoint:</span><span class="hl-0"> [</span><br/><span class="hl-0"> </span><span class="hl-4">&#39;https://rpc1.synapse.com&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-4">&#39;https://rpc2.synapse.com&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-4">&#39;https://rpc3.synapse.com&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> ],</span><br/><span class="hl-0"> </span><span class="hl-1">apiKey:</span><span class="hl-0"> </span><span class="hl-1">process</span><span class="hl-0">.</span><span class="hl-1">env</span><span class="hl-0">.</span><span class="hl-2">SYNAPSE_API_KEY</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">timeout:</span><span class="hl-0"> </span><span class="hl-8">30000</span><span class="hl-0">,</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-5">// Client automatically uses next endpoint on failure</span><br/><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">on</span><span class="hl-0">(</span><span class="hl-4">&#39;endpoint-rotate&#39;</span><span class="hl-0">, ({ </span><span class="hl-1">oldEndpoint</span><span class="hl-0">, </span><span class="hl-1">newEndpoint</span><span class="hl-0">, </span><span class="hl-1">reason</span><span class="hl-0"> }) </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">`Rotated from </span><span class="hl-7">${</span><span class="hl-1">oldEndpoint</span><span class="hl-7">}</span><span class="hl-4"> to </span><span class="hl-7">${</span><span class="hl-1">newEndpoint</span><span class="hl-7">}</span><span class="hl-4">: </span><span class="hl-7">${</span><span class="hl-1">reason</span><span class="hl-7">}</span><span class="hl-4">`</span><span class="hl-0">);</span><br/><span class="hl-0">});</span>
80
+ <pre><code class="ts"><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-2">SynapseClient</span><span class="hl-1">, </span><span class="hl-2">SynapseNetwork</span><span class="hl-1">, </span><span class="hl-2">SynapseRegion</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-3">&#39;@oobe-protocol-labs/synapse-client-sdk&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-7">// Auto-resolved endpoint by network and region</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">client</span><span class="hl-1"> = </span><span class="hl-2">SynapseClient</span><span class="hl-1">.</span><span class="hl-6">fromEndpoint</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-2">network:</span><span class="hl-1"> </span><span class="hl-2">SynapseNetwork</span><span class="hl-1">.</span><span class="hl-2">Mainnet</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">region:</span><span class="hl-1"> </span><span class="hl-2">SynapseRegion</span><span class="hl-1">.</span><span class="hl-5">US</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">apiKey:</span><span class="hl-1"> </span><span class="hl-3">&#39;sk-...&#39;</span><span class="hl-1">,</span><br/><span class="hl-1">});</span>
79
81
  </code><button type="button">Copy</button></pre>
80
82
 
81
83
  <hr>
82
- <a id="md:core-client" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Core Client<a href="#md:core-client" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><a id="md:configuration" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Configuration<a href="#md:configuration" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="typescript"><span class="hl-7">interface</span><span class="hl-0"> </span><span class="hl-9">SynapseConfig</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">endpoint</span><span class="hl-0">: </span><span class="hl-9">string</span><span class="hl-0"> | </span><span class="hl-9">string</span><span class="hl-0">[]; </span><span class="hl-5">// Single or multiple RPC endpoints</span><br/><span class="hl-0"> </span><span class="hl-1">apiKey</span><span class="hl-0">?: </span><span class="hl-9">string</span><span class="hl-0">; </span><span class="hl-5">// Optional API key for authentication</span><br/><span class="hl-0"> </span><span class="hl-1">timeout</span><span class="hl-0">?: </span><span class="hl-9">number</span><span class="hl-0">; </span><span class="hl-5">// Request timeout in milliseconds (default: 30000)</span><br/><span class="hl-0"> </span><span class="hl-1">debug</span><span class="hl-0">?: </span><span class="hl-9">boolean</span><span class="hl-0">; </span><span class="hl-5">// Enable debug logging (default: false)</span><br/><span class="hl-0">}</span>
83
- </code><button type="button">Copy</button></pre>
84
+ <a id="md:architecture" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Architecture<a href="#md:architecture" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><pre><code><span class="hl-2">SynapseClient</span><br/><span class="hl-1"> |</span><br/><span class="hl-1"> |-- .</span><span class="hl-2">rpc</span><span class="hl-1"> </span><span class="hl-2">SolanaRpc</span><span class="hl-1"> </span><span class="hl-8">53</span><span class="hl-1"> </span><span class="hl-5">JSON</span><span class="hl-1">-</span><span class="hl-5">RPC</span><span class="hl-1"> </span><span class="hl-6">methods</span><span class="hl-1"> (</span><span class="hl-2">lazy</span><span class="hl-1">-</span><span class="hl-2">loaded</span><span class="hl-1">)</span><br/><span class="hl-1"> |-- .</span><span class="hl-2">das</span><span class="hl-1"> </span><span class="hl-2">DasClient</span><span class="hl-1"> </span><span class="hl-8">11</span><span class="hl-1"> </span><span class="hl-5">DAS</span><span class="hl-1">/</span><span class="hl-2">Metaplex</span><span class="hl-1"> </span><span class="hl-2">Read</span><span class="hl-1"> </span><span class="hl-5">API</span><span class="hl-1"> </span><span class="hl-2">methods</span><br/><span class="hl-1"> |-- .</span><span class="hl-2">ws</span><span class="hl-1"> </span><span class="hl-2">WsClient</span><span class="hl-1"> </span><span class="hl-2">WebSocket</span><span class="hl-1"> </span><span class="hl-2">PubSub</span><span class="hl-1"> </span><span class="hl-2">subscriptions</span><br/><span class="hl-1"> |-- .</span><span class="hl-2">grpc</span><span class="hl-1"> </span><span class="hl-2">GrpcTransport</span><span class="hl-1"> </span><span class="hl-2">gRPC</span><span class="hl-1"> </span><span class="hl-2">unary</span><span class="hl-1"> </span><span class="hl-2">calls</span><span class="hl-1"> + </span><span class="hl-2">Geyser</span><span class="hl-1"> </span><span class="hl-2">parser</span><br/><span class="hl-1"> |</span><br/><span class="hl-1"> |-- </span><span class="hl-6">call</span><span class="hl-1">() </span><span class="hl-2">Raw</span><span class="hl-1"> </span><span class="hl-5">JSON</span><span class="hl-1">-</span><span class="hl-5">RPC</span><span class="hl-1"> </span><span class="hl-2">call</span><br/><span class="hl-1"> |-- </span><span class="hl-6">batch</span><span class="hl-1">() </span><span class="hl-2">Batched</span><span class="hl-1"> </span><span class="hl-5">JSON</span><span class="hl-1">-</span><span class="hl-5">RPC</span><span class="hl-1"> </span><span class="hl-2">calls</span><br/><span class="hl-1"> |-- </span><span class="hl-6">destroy</span><span class="hl-1">() </span><span class="hl-2">Tear</span><span class="hl-1"> </span><span class="hl-2">down</span><span class="hl-1"> </span><span class="hl-2">all</span><span class="hl-1"> </span><span class="hl-2">connections</span>
85
+ </code><button>Copy</button></pre>
84
86
 
85
- <a id="md:core-methods" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Core Methods<a href="#md:core-methods" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><table>
87
+ <p>Sub-clients are initialized on first property access.
88
+ If you never touch <code>client.grpc</code>, the gRPC module is never loaded.</p>
89
+ <p>All I/O flows through <code>HttpTransport</code> (<code>src/core/transport.ts</code>), which handles
90
+ JSON-RPC framing, timeout, abort signals, and batch aggregation.</p>
91
+ <hr>
92
+ <a id="md:module-reference" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Module Reference<a href="#md:module-reference" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><a id="md:core" class="tsd-anchor"></a><h3 class="tsd-anchor-link">core/<a href="#md:core" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Foundation layer. No external dependencies.</p>
93
+ <table>
86
94
  <thead>
87
95
  <tr>
88
- <th>Method</th>
89
- <th>Signature</th>
90
- <th>Description</th>
96
+ <th>File</th>
97
+ <th>Purpose</th>
91
98
  </tr>
92
99
  </thead>
93
100
  <tbody>
94
101
  <tr>
95
- <td><code>call&lt;T&gt;</code></td>
96
- <td><code>(method: string, params?: any[], options?: RequestOptions) =&gt; Promise&lt;T&gt;</code></td>
97
- <td>Execute single RPC call</td>
98
- </tr>
99
- <tr>
100
- <td><code>batch</code></td>
101
- <td><code>(requests: RpcRequest[]) =&gt; Promise&lt;RpcResponse[]&gt;</code></td>
102
- <td>Execute multiple RPC calls in parallel</td>
102
+ <td><code>src/core/types.ts</code></td>
103
+ <td>Branded primitive types: <code>Pubkey</code>, <code>Signature</code>, <code>Slot</code>, <code>Epoch</code>, <code>Lamports</code>, <code>UnixTimestamp</code>. RPC wire types, account shapes, transaction metadata, validator info, token amounts, filter types.</td>
103
104
  </tr>
104
105
  <tr>
105
- <td><code>getStats</code></td>
106
- <td><code>() =&gt; ClientStats</code></td>
107
- <td>Get client performance statistics</td>
106
+ <td><code>src/core/errors.ts</code></td>
107
+ <td>Error hierarchy: <code>SynapseError</code> (base), <code>NetworkError</code>, <code>TimeoutError</code>, <code>RpcMethodNotFoundError</code>, <code>UpstreamError</code>.</td>
108
108
  </tr>
109
109
  <tr>
110
- <td><code>setEndpoint</code></td>
111
- <td><code>(endpoint: string | string[]) =&gt; void</code></td>
112
- <td>Update RPC endpoint(s)</td>
110
+ <td><code>src/core/transport.ts</code></td>
111
+ <td><code>HttpTransport</code> class -- JSON-RPC HTTP transport. <code>request()</code> for single calls, <code>batch()</code> for aggregated calls.</td>
113
112
  </tr>
114
113
  <tr>
115
- <td><code>clearCache</code></td>
116
- <td><code>() =&gt; void</code></td>
117
- <td>Clear internal request cache</td>
118
- </tr>
119
- <tr>
120
- <td><code>destroy</code></td>
121
- <td><code>() =&gt; Promise&lt;void&gt;</code></td>
122
- <td>Cleanup resources and connections</td>
114
+ <td><code>src/core/client.ts</code></td>
115
+ <td><code>SynapseClient</code> class -- top-level orchestrator. Lazy getters for <code>.rpc</code>, <code>.das</code>, <code>.ws</code>, <code>.grpc</code>. Static <code>fromEndpoint()</code> factory.</td>
123
116
  </tr>
124
117
  </tbody>
125
118
  </table>
126
- <a id="md:event-system" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Event System<a href="#md:event-system" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="typescript"><span class="hl-5">// Request lifecycle events</span><br/><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">on</span><span class="hl-0">(</span><span class="hl-4">&#39;request&#39;</span><span class="hl-0">, ({ </span><span class="hl-1">method</span><span class="hl-0">, </span><span class="hl-1">params</span><span class="hl-0">, </span><span class="hl-1">id</span><span class="hl-0"> }) </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">`[</span><span class="hl-7">${</span><span class="hl-1">id</span><span class="hl-7">}</span><span class="hl-4">] </span><span class="hl-7">${</span><span class="hl-1">method</span><span class="hl-7">}</span><span class="hl-4">`</span><span class="hl-0">, </span><span class="hl-1">params</span><span class="hl-0">);</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">on</span><span class="hl-0">(</span><span class="hl-4">&#39;response&#39;</span><span class="hl-0">, ({ </span><span class="hl-1">method</span><span class="hl-0">, </span><span class="hl-1">result</span><span class="hl-0">, </span><span class="hl-1">latency</span><span class="hl-0">, </span><span class="hl-1">id</span><span class="hl-0"> }) </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">`[</span><span class="hl-7">${</span><span class="hl-1">id</span><span class="hl-7">}</span><span class="hl-4">] </span><span class="hl-7">${</span><span class="hl-1">method</span><span class="hl-7">}</span><span class="hl-4"> completed in </span><span class="hl-7">${</span><span class="hl-1">latency</span><span class="hl-7">}</span><span class="hl-4">ms`</span><span class="hl-0">);</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">on</span><span class="hl-0">(</span><span class="hl-4">&#39;error&#39;</span><span class="hl-0">, ({ </span><span class="hl-1">method</span><span class="hl-0">, </span><span class="hl-1">error</span><span class="hl-0">, </span><span class="hl-1">attempt</span><span class="hl-0">, </span><span class="hl-1">id</span><span class="hl-0"> }) </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">error</span><span class="hl-0">(</span><span class="hl-4">`[</span><span class="hl-7">${</span><span class="hl-1">id</span><span class="hl-7">}</span><span class="hl-4">] </span><span class="hl-7">${</span><span class="hl-1">method</span><span class="hl-7">}</span><span class="hl-4"> failed (attempt </span><span class="hl-7">${</span><span class="hl-1">attempt</span><span class="hl-7">}</span><span class="hl-4">):`</span><span class="hl-0">, </span><span class="hl-1">error</span><span class="hl-0">.</span><span class="hl-1">message</span><span class="hl-0">);</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-5">// Retry and rotation events</span><br/><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">on</span><span class="hl-0">(</span><span class="hl-4">&#39;retry&#39;</span><span class="hl-0">, ({ </span><span class="hl-1">method</span><span class="hl-0">, </span><span class="hl-1">attempt</span><span class="hl-0">, </span><span class="hl-1">maxAttempts</span><span class="hl-0">, </span><span class="hl-1">delay</span><span class="hl-0"> }) </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">`Retrying </span><span class="hl-7">${</span><span class="hl-1">method</span><span class="hl-7">}</span><span class="hl-4">: </span><span class="hl-7">${</span><span class="hl-1">attempt</span><span class="hl-7">}</span><span class="hl-4">/</span><span class="hl-7">${</span><span class="hl-1">maxAttempts</span><span class="hl-7">}</span><span class="hl-4"> after </span><span class="hl-7">${</span><span class="hl-1">delay</span><span class="hl-7">}</span><span class="hl-4">ms`</span><span class="hl-0">);</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">on</span><span class="hl-0">(</span><span class="hl-4">&#39;endpoint-rotate&#39;</span><span class="hl-0">, ({ </span><span class="hl-1">oldEndpoint</span><span class="hl-0">, </span><span class="hl-1">newEndpoint</span><span class="hl-0">, </span><span class="hl-1">reason</span><span class="hl-0"> }) </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">`Endpoint rotation: </span><span class="hl-7">${</span><span class="hl-1">oldEndpoint</span><span class="hl-7">}</span><span class="hl-4"> → </span><span class="hl-7">${</span><span class="hl-1">newEndpoint</span><span class="hl-7">}</span><span class="hl-4"> (</span><span class="hl-7">${</span><span class="hl-1">reason</span><span class="hl-7">}</span><span class="hl-4">)`</span><span class="hl-0">);</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-5">// Cache events</span><br/><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">on</span><span class="hl-0">(</span><span class="hl-4">&#39;cache-hit&#39;</span><span class="hl-0">, ({ </span><span class="hl-1">key</span><span class="hl-0">, </span><span class="hl-1">ttl</span><span class="hl-0">, </span><span class="hl-1">layer</span><span class="hl-0"> }) </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">`Cache hit: </span><span class="hl-7">${</span><span class="hl-1">key</span><span class="hl-7">}</span><span class="hl-4"> from </span><span class="hl-7">${</span><span class="hl-1">layer</span><span class="hl-7">}</span><span class="hl-4"> (TTL: </span><span class="hl-7">${</span><span class="hl-1">ttl</span><span class="hl-7">}</span><span class="hl-4">ms)`</span><span class="hl-0">);</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">on</span><span class="hl-0">(</span><span class="hl-4">&#39;cache-miss&#39;</span><span class="hl-0">, ({ </span><span class="hl-1">key</span><span class="hl-0"> }) </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">`Cache miss: </span><span class="hl-7">${</span><span class="hl-1">key</span><span class="hl-7">}</span><span class="hl-4">`</span><span class="hl-0">);</span><br/><span class="hl-0">});</span>
127
- </code><button type="button">Copy</button></pre>
128
-
129
- <hr>
130
- <a id="md:module-documentation" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Module Documentation<a href="#md:module-documentation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><a id="md:1-advanced-features-module" class="tsd-anchor"></a><h3 class="tsd-anchor-link">1. Advanced Features Module<a href="#md:1-advanced-features-module" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p><strong>Location:</strong> <a href="media/README.md"><code>src/advanced/</code></a></p>
131
- <p>Enterprise-grade resilience and performance optimization.</p>
132
- <a id="md:components" class="tsd-anchor"></a><h4 class="tsd-anchor-link">Components<a href="#md:components" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><table>
119
+ <a id="md:rpc" class="tsd-anchor"></a><h3 class="tsd-anchor-link">rpc/<a href="#md:rpc" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>53 Solana JSON-RPC methods. Each method lives in its own file under <code>src/rpc/methods/</code> for tree-shaking.</p>
120
+ <table>
133
121
  <thead>
134
122
  <tr>
135
- <th>Component</th>
123
+ <th>File</th>
136
124
  <th>Purpose</th>
137
- <th>Key Features</th>
138
125
  </tr>
139
126
  </thead>
140
127
  <tbody>
141
128
  <tr>
142
- <td><strong>Circuit Breaker</strong></td>
143
- <td>Prevent cascade failures</td>
144
- <td>State machine (closed/open/half-open), automatic recovery, fallback support</td>
129
+ <td><code>src/rpc/solana-rpc.ts</code></td>
130
+ <td><code>SolanaRpc</code> facade class. Delegates to standalone functions.</td>
145
131
  </tr>
146
132
  <tr>
147
- <td><strong>Smart Caching</strong></td>
148
- <td>Multi-layer intelligent caching</td>
149
- <td>L1 (memory), L2 (extended), L3 (Redis), ML predictive loading, compression</td>
133
+ <td><code>src/rpc/methods/*.ts</code></td>
134
+ <td>One file per RPC method. Each exports a typed async function and optional <code>Opts</code> interface.</td>
150
135
  </tr>
151
136
  <tr>
152
- <td><strong>Load Balancer</strong></td>
153
- <td>Request distribution</td>
154
- <td>Round-robin, weighted, least-connections, IP hash, EWMA strategies</td>
137
+ <td><code>src/rpc/methods/index.ts</code></td>
138
+ <td>Barrel re-export.</td>
155
139
  </tr>
156
140
  </tbody>
157
141
  </table>
158
- <a id="md:quick-example" class="tsd-anchor"></a><h4 class="tsd-anchor-link">Quick Example<a href="#md:quick-example" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-6">import</span><span class="hl-0"> { </span><span class="hl-1">SmartCaching</span><span class="hl-0">, </span><span class="hl-1">CircuitBreaker</span><span class="hl-0">, </span><span class="hl-1">LoadBalancer</span><span class="hl-0"> } </span><span class="hl-6">from</span><span class="hl-0"> </span><span class="hl-4">&#39;@synapse/client-sdk/advanced&#39;</span><span class="hl-0">;</span><br/><br/><span class="hl-5">// Multi-layer caching</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">cache</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">SmartCaching</span><span class="hl-0">({</span><br/><span class="hl-0"> </span><span class="hl-1">maxSize:</span><span class="hl-0"> </span><span class="hl-8">10000</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">enableL2:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">enableDistributed:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">enablePredictive:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0">,</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-5">// Circuit breaker protection</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">breaker</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">CircuitBreaker</span><span class="hl-0">({</span><br/><span class="hl-0"> </span><span class="hl-1">failureThreshold:</span><span class="hl-0"> </span><span class="hl-8">5</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">timeout:</span><span class="hl-0"> </span><span class="hl-8">60000</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">retryInterval:</span><span class="hl-0"> </span><span class="hl-8">30000</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">enableFallback:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0">,</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-5">// Load balancing</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">balancer</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">LoadBalancer</span><span class="hl-0">({</span><br/><span class="hl-0"> </span><span class="hl-1">endpoints:</span><span class="hl-0"> [</span><span class="hl-4">&#39;rpc1&#39;</span><span class="hl-0">, </span><span class="hl-4">&#39;rpc2&#39;</span><span class="hl-0">, </span><span class="hl-4">&#39;rpc3&#39;</span><span class="hl-0">],</span><br/><span class="hl-0"> </span><span class="hl-1">strategy:</span><span class="hl-0"> </span><span class="hl-4">&#39;ewma&#39;</span><span class="hl-0">, </span><span class="hl-5">// Latency-aware</span><br/><span class="hl-0"> </span><span class="hl-1">healthCheckInterval:</span><span class="hl-0"> </span><span class="hl-8">30000</span><span class="hl-0">,</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-5">// Combined usage</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">result</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">breaker</span><span class="hl-0">.</span><span class="hl-3">execute</span><span class="hl-0">(</span><br/><span class="hl-0"> </span><span class="hl-7">async</span><span class="hl-0"> () </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">endpoint</span><span class="hl-0"> = </span><span class="hl-1">balancer</span><span class="hl-0">.</span><span class="hl-3">getNextEndpoint</span><span class="hl-0">();</span><br/><span class="hl-0"> </span><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">cached</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">cache</span><span class="hl-0">.</span><span class="hl-3">get</span><span class="hl-0">(</span><span class="hl-1">cacheKey</span><span class="hl-0">);</span><br/><span class="hl-0"> </span><span class="hl-6">if</span><span class="hl-0"> (</span><span class="hl-1">cached</span><span class="hl-0">) </span><span class="hl-6">return</span><span class="hl-0"> </span><span class="hl-1">cached</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><br/><span class="hl-0"> </span><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">data</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-3">fetchFromEndpoint</span><span class="hl-0">(</span><span class="hl-1">endpoint</span><span class="hl-0">);</span><br/><span class="hl-0"> </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">cache</span><span class="hl-0">.</span><span class="hl-3">set</span><span class="hl-0">(</span><span class="hl-1">cacheKey</span><span class="hl-0">, </span><span class="hl-1">data</span><span class="hl-0">, { </span><span class="hl-1">ttl:</span><span class="hl-0"> </span><span class="hl-8">60000</span><span class="hl-0"> });</span><br/><span class="hl-0"> </span><span class="hl-6">return</span><span class="hl-0"> </span><span class="hl-1">data</span><span class="hl-0">;</span><br/><span class="hl-0"> },</span><br/><span class="hl-0"> </span><span class="hl-7">async</span><span class="hl-0"> () </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-5">// Fallback to stale cache</span><br/><span class="hl-0"> </span><span class="hl-6">return</span><span class="hl-0"> </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">cache</span><span class="hl-0">.</span><span class="hl-3">get</span><span class="hl-0">(</span><span class="hl-1">cacheKey</span><span class="hl-0">, { </span><span class="hl-1">allowStale:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0"> });</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">);</span>
159
- </code><button type="button">Copy</button></pre>
160
-
161
- <p><strong><a href="media/README.md">Read Full Documentation →</a></strong></p>
162
- <hr>
163
- <a id="md:2-websocket-client-module" class="tsd-anchor"></a><h3 class="tsd-anchor-link">2. WebSocket Client Module<a href="#md:2-websocket-client-module" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p><strong>Location:</strong> <a href="media/README-1.md"><code>src/websocket/</code></a></p>
164
- <p>Real-time Solana blockchain data streaming with intelligent reconnection.</p>
165
- <a id="md:subscription-types" class="tsd-anchor"></a><h4 class="tsd-anchor-link">Subscription Types<a href="#md:subscription-types" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><table>
142
+ <p>Method categories:</p>
143
+ <table>
166
144
  <thead>
167
145
  <tr>
168
- <th>Type</th>
169
- <th>Method</th>
170
- <th>Use Case</th>
171
- <th>Commitment Options</th>
146
+ <th>Category</th>
147
+ <th>Methods</th>
172
148
  </tr>
173
149
  </thead>
174
150
  <tbody>
175
151
  <tr>
176
- <td><strong>Account</strong></td>
177
- <td><code>accountSubscribe</code></td>
178
- <td>Monitor account changes</td>
179
- <td>processed, confirmed, finalized</td>
152
+ <td>Account</td>
153
+ <td><code>getAccountInfo</code>, <code>getBalance</code>, <code>getMultipleAccounts</code>, <code>getProgramAccounts</code></td>
154
+ </tr>
155
+ <tr>
156
+ <td>Block</td>
157
+ <td><code>getBlock</code>, <code>getBlockHeight</code>, <code>getBlockTime</code>, <code>getBlockProduction</code>, <code>getBlocks</code>, <code>getBlocksWithLimit</code>, <code>getBlockCommitment</code></td>
180
158
  </tr>
181
159
  <tr>
182
- <td><strong>Program</strong></td>
183
- <td><code>programSubscribe</code></td>
184
- <td>Track program accounts</td>
185
- <td>processed, confirmed, finalized</td>
160
+ <td>Transaction</td>
161
+ <td><code>getTransaction</code>, <code>getSignaturesForAddress</code>, <code>getSignatureStatuses</code>, <code>sendTransaction</code>, <code>simulateTransaction</code>, <code>requestAirdrop</code></td>
186
162
  </tr>
187
163
  <tr>
188
- <td><strong>Slot</strong></td>
189
- <td><code>slotSubscribe</code></td>
190
- <td>Block production tracking</td>
191
- <td>N/A</td>
164
+ <td>Blockhash</td>
165
+ <td><code>getLatestBlockhash</code>, <code>isBlockhashValid</code></td>
192
166
  </tr>
193
167
  <tr>
194
- <td><strong>Signature</strong></td>
195
- <td><code>signatureSubscribe</code></td>
196
- <td>Transaction confirmation</td>
197
- <td>processed, confirmed, finalized</td>
168
+ <td>Cluster / Epoch</td>
169
+ <td><code>getSlot</code>, <code>getSlotLeader</code>, <code>getSlotLeaders</code>, <code>getEpochInfo</code>, <code>getEpochSchedule</code>, <code>getInflationGovernor</code>, <code>getInflationRate</code>, <code>getInflationReward</code>, <code>getVoteAccounts</code>, <code>getClusterNodes</code>, <code>getSupply</code>, <code>getRecentPerformanceSamples</code>, <code>getHealth</code>, <code>getVersion</code>, <code>getGenesisHash</code>, <code>getIdentity</code>, <code>getMinimumBalanceForRentExemption</code>, <code>minimumLedgerSlot</code>, <code>getFirstAvailableBlock</code>, <code>getHighestSnapshotSlot</code>, <code>getLeaderSchedule</code>, <code>getMaxRetransmitSlot</code>, <code>getMaxShredInsertSlot</code>, <code>getTransactionCount</code>, <code>getStakeMinimumDelegation</code>, <code>getRecentPrioritizationFees</code></td>
198
170
  </tr>
199
171
  <tr>
200
- <td><strong>Logs</strong></td>
201
- <td><code>logsSubscribe</code></td>
202
- <td>Transaction logs</td>
203
- <td>processed, confirmed, finalized</td>
172
+ <td>Token</td>
173
+ <td><code>getTokenAccountBalance</code>, <code>getTokenAccountsByOwner</code>, <code>getTokenAccountsByDelegate</code>, <code>getTokenLargestAccounts</code>, <code>getTokenSupply</code>, <code>getLargestAccounts</code>, <code>getStakeActivation</code> (deprecated), <code>getFeeForMessage</code></td>
204
174
  </tr>
205
175
  </tbody>
206
176
  </table>
207
- <a id="md:quick-example-1" class="tsd-anchor"></a><h4 class="tsd-anchor-link">Quick Example<a href="#md:quick-example-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-6">import</span><span class="hl-0"> { </span><span class="hl-1">WebSocketClient</span><span class="hl-0"> } </span><span class="hl-6">from</span><span class="hl-0"> </span><span class="hl-4">&#39;@synapse/client-sdk/websocket&#39;</span><span class="hl-0">;</span><br/><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">wsClient</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">WebSocketClient</span><span class="hl-0">({</span><br/><span class="hl-0"> </span><span class="hl-1">endpoint:</span><span class="hl-0"> </span><span class="hl-4">&#39;wss://your-synapse-gateway.com&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">apiKey:</span><span class="hl-0"> </span><span class="hl-1">process</span><span class="hl-0">.</span><span class="hl-1">env</span><span class="hl-0">.</span><span class="hl-2">SYNAPSE_API_KEY</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">autoReconnect:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">maxReconnectAttempts:</span><span class="hl-0"> </span><span class="hl-8">10</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">reconnectDelay:</span><span class="hl-0"> </span><span class="hl-8">5000</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">enableSmartCaching:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">enableCircuitBreaker:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0">,</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">wsClient</span><span class="hl-0">.</span><span class="hl-3">connect</span><span class="hl-0">();</span><br/><br/><span class="hl-5">// Subscribe to account changes</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">subId</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">wsClient</span><span class="hl-0">.</span><span class="hl-3">accountSubscribe</span><span class="hl-0">(</span><br/><span class="hl-0"> </span><span class="hl-4">&#39;EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v&#39;</span><span class="hl-0">, </span><span class="hl-5">// USDC mint</span><br/><span class="hl-0"> (</span><span class="hl-1">accountInfo</span><span class="hl-0">) </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Account lamports:&#39;</span><span class="hl-0">, </span><span class="hl-1">accountInfo</span><span class="hl-0">.</span><span class="hl-1">lamports</span><span class="hl-0">);</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Account owner:&#39;</span><span class="hl-0">, </span><span class="hl-1">accountInfo</span><span class="hl-0">.</span><span class="hl-1">owner</span><span class="hl-0">);</span><br/><span class="hl-0"> },</span><br/><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">commitment:</span><span class="hl-0"> </span><span class="hl-4">&#39;confirmed&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">encoding:</span><span class="hl-0"> </span><span class="hl-4">&#39;jsonParsed&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">enableCache:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">resilient:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0">, </span><span class="hl-5">// Auto-restore on reconnect</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">);</span><br/><br/><span class="hl-5">// Monitor metrics</span><br/><span class="hl-1">wsClient</span><span class="hl-0">.</span><span class="hl-3">on</span><span class="hl-0">(</span><span class="hl-4">&#39;metrics-update&#39;</span><span class="hl-0">, (</span><span class="hl-1">metrics</span><span class="hl-0">) </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Subscriptions active:&#39;</span><span class="hl-0">, </span><span class="hl-1">metrics</span><span class="hl-0">.</span><span class="hl-1">subscriptionsActive</span><span class="hl-0">);</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Average latency:&#39;</span><span class="hl-0">, </span><span class="hl-1">metrics</span><span class="hl-0">.</span><span class="hl-1">averageLatency</span><span class="hl-0">);</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-5">// Cleanup</span><br/><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">wsClient</span><span class="hl-0">.</span><span class="hl-3">accountUnsubscribe</span><span class="hl-0">(</span><span class="hl-1">subId</span><span class="hl-0">);</span><br/><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">wsClient</span><span class="hl-0">.</span><span class="hl-3">disconnect</span><span class="hl-0">();</span>
208
- </code><button type="button">Copy</button></pre>
209
-
210
- <p><strong><a href="media/README-1.md">Read Full Documentation →</a></strong></p>
211
- <hr>
212
- <a id="md:3-defi-module" class="tsd-anchor"></a><h3 class="tsd-anchor-link">3. DeFi Module<a href="#md:3-defi-module" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p><strong>Location:</strong> <a href="media/README-2.md"><code>src/defi/</code></a></p>
213
- <p>Production-ready DeFi integrations for Solana.</p>
214
- <a id="md:integrations-matrix" class="tsd-anchor"></a><h4 class="tsd-anchor-link">Integrations Matrix<a href="#md:integrations-matrix" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><table>
177
+ <a id="md:das" class="tsd-anchor"></a><h3 class="tsd-anchor-link">das/<a href="#md:das" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>11 DAS (Digital Asset Standard) methods for NFT/cNFT via the Metaplex Read API.</p>
178
+ <table>
215
179
  <thead>
216
180
  <tr>
217
- <th>Integration</th>
218
- <th>Protocol</th>
219
- <th>Features</th>
220
- <th>Performance</th>
181
+ <th>File</th>
182
+ <th>Purpose</th>
221
183
  </tr>
222
184
  </thead>
223
185
  <tbody>
224
186
  <tr>
225
- <td><strong>Jupiter</strong></td>
226
- <td>Jupiter V6 API</td>
227
- <td>Swap aggregation, route optimization, price discovery</td>
228
- <td>&lt;200ms quotes</td>
187
+ <td><code>src/das/types.ts</code></td>
188
+ <td>DAS type definitions: <code>DasAsset</code>, <code>DasContent</code>, <code>DasCompression</code>, <code>DasOwnership</code>, <code>DasProof</code>, <code>DasPage</code>, <code>DasSearchParams</code>, and 10+ supporting interfaces.</td>
229
189
  </tr>
230
190
  <tr>
231
- <td><strong>Jito</strong></td>
232
- <td>Jito Block Engine</td>
233
- <td>MEV protection, bundle submission, 8 regional endpoints</td>
234
- <td>&lt;50ms bundle</td>
191
+ <td><code>src/das/client.ts</code></td>
192
+ <td><code>DasClient</code> facade class.</td>
235
193
  </tr>
236
194
  <tr>
237
- <td><strong>Token Data</strong></td>
238
- <td>Solana RPC</td>
239
- <td>SPL token accounts, supply, holders, balances</td>
240
- <td>&lt;100ms queries</td>
195
+ <td><code>src/das/methods/*.ts</code></td>
196
+ <td><code>getAsset</code>, <code>getAssetProof</code>, <code>getAssetBatch</code>, <code>getAssetProofBatch</code>, <code>getAssetsByOwner</code>, <code>getAssetsByGroup</code>, <code>getAssetsByCreator</code>, <code>getAssetsByAuthority</code>, <code>searchAssets</code>, <code>getSignaturesForAsset</code>, <code>getTokenAccounts</code>.</td>
241
197
  </tr>
198
+ </tbody>
199
+ </table>
200
+ <a id="md:websocket" class="tsd-anchor"></a><h3 class="tsd-anchor-link">websocket/<a href="#md:websocket" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Real-time Solana PubSub over WebSocket.</p>
201
+ <table>
202
+ <thead>
242
203
  <tr>
243
- <td><strong>Price Feed</strong></td>
244
- <td>Jupiter + Birdeye</td>
245
- <td>Multi-source aggregation, median calculation, streaming</td>
246
- <td>&lt;150ms prices</td>
204
+ <th>File</th>
205
+ <th>Purpose</th>
206
+ </tr>
207
+ </thead>
208
+ <tbody>
209
+ <tr>
210
+ <td><code>src/websocket/types.ts</code></td>
211
+ <td><code>WsConfig</code>, subscription parameter interfaces, notification types, <code>WsNotification</code> union.</td>
212
+ </tr>
213
+ <tr>
214
+ <td><code>src/websocket/client.ts</code></td>
215
+ <td><code>WsClient</code> class. Methods: <code>onAccountChange</code>, <code>onProgramAccountChange</code>, <code>onLogs</code>, <code>onSignature</code>, <code>onSlotChange</code>, <code>onRootChange</code>, <code>unsubscribe</code>, <code>close</code>.</td>
247
216
  </tr>
248
217
  </tbody>
249
218
  </table>
250
- <a id="md:advanced-features" class="tsd-anchor"></a><h4 class="tsd-anchor-link">Advanced Features<a href="#md:advanced-features" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><table>
219
+ <a id="md:grpc" class="tsd-anchor"></a><h3 class="tsd-anchor-link">grpc/<a href="#md:grpc" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Optional gRPC transport and Geyser streaming parser.
220
+ Requires <code>@grpc/grpc-js</code> and <code>@grpc/proto-loader</code> as optional peer dependencies.</p>
221
+ <table>
251
222
  <thead>
252
223
  <tr>
253
- <th>Feature</th>
254
- <th>Description</th>
255
- <th>Complexity</th>
224
+ <th>File</th>
225
+ <th>Purpose</th>
256
226
  </tr>
257
227
  </thead>
258
228
  <tbody>
259
229
  <tr>
260
- <td><strong>MEV Protection</strong></td>
261
- <td>Sandwich attack prevention via Jito bundles</td>
262
- <td>High</td>
230
+ <td><code>src/grpc/types.ts</code></td>
231
+ <td><code>GrpcTransportConfig</code>, <code>GrpcCallOptions</code>, <code>UnaryMethod</code>.</td>
232
+ </tr>
233
+ <tr>
234
+ <td><code>src/grpc/transport.ts</code></td>
235
+ <td><code>GrpcTransport</code> class. Lazy proto loading, service resolution, typed unary calls.</td>
263
236
  </tr>
264
237
  <tr>
265
- <td><strong>Arbitrage Detection</strong></td>
266
- <td>Cross-DEX opportunity scanning</td>
267
- <td>High</td>
238
+ <td><code>src/grpc/parser/types.ts</code></td>
239
+ <td>Raw Geyser gRPC protobuf shapes and parsed output types (20+ interfaces).</td>
268
240
  </tr>
269
241
  <tr>
270
- <td><strong>Portfolio Analytics</strong></td>
271
- <td>Risk assessment and diversification scoring</td>
272
- <td>Medium</td>
242
+ <td><code>src/grpc/parser/programs.ts</code></td>
243
+ <td>Known-program registry (80+ programs). <code>resolveProgram</code>, <code>resolveProgramBatch</code>, <code>isProgramInCategory</code>.</td>
273
244
  </tr>
274
245
  <tr>
275
- <td><strong>Flash Loan Simulator</strong></td>
276
- <td>Profitability analysis without execution</td>
277
- <td>Medium</td>
246
+ <td><code>src/grpc/parser/decoder.ts</code></td>
247
+ <td>Low-level decoders: <code>decodeTransaction</code>, <code>decodeAccountUpdate</code>, <code>decodeSlotUpdate</code>, <code>decodeBlockMeta</code>, <code>decodeEntry</code>, and balance/token-balance diff utilities.</td>
278
248
  </tr>
279
249
  <tr>
280
- <td><strong>Yield Farming Finder</strong></td>
281
- <td>APY discovery across protocols</td>
282
- <td>Low</td>
250
+ <td><code>src/grpc/parser/geyser-parser.ts</code></td>
251
+ <td><code>GeyserParser</code> class. High-level stream parsing with event emitter, statistics tracking, batch processing, and configurable filters (skip votes, skip zero balances).</td>
283
252
  </tr>
284
253
  </tbody>
285
254
  </table>
286
- <a id="md:quick-example-2" class="tsd-anchor"></a><h4 class="tsd-anchor-link">Quick Example<a href="#md:quick-example-2" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-6">import</span><span class="hl-0"> { </span><span class="hl-1">JupiterIntegration</span><span class="hl-0">, </span><span class="hl-1">JitoIntegration</span><span class="hl-0">, </span><span class="hl-1">TokenDataIntegration</span><span class="hl-0"> } </span><span class="hl-6">from</span><span class="hl-0"> </span><span class="hl-4">&#39;@synapse/client-sdk/defi&#39;</span><span class="hl-0">;</span><br/><br/><span class="hl-5">// Jupiter swap</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">jupiter</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">JupiterIntegration</span><span class="hl-0">(</span><span class="hl-1">client</span><span class="hl-0">);</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">quote</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">jupiter</span><span class="hl-0">.</span><span class="hl-3">getQuote</span><span class="hl-0">({</span><br/><span class="hl-0"> </span><span class="hl-1">inputMint:</span><span class="hl-0"> </span><span class="hl-4">&#39;So11111111111111111111111111111111111111112&#39;</span><span class="hl-0">, </span><span class="hl-5">// SOL</span><br/><span class="hl-0"> </span><span class="hl-1">outputMint:</span><span class="hl-0"> </span><span class="hl-4">&#39;EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v&#39;</span><span class="hl-0">, </span><span class="hl-5">// USDC</span><br/><span class="hl-0"> </span><span class="hl-1">amount:</span><span class="hl-0"> </span><span class="hl-8">1_000_000_000</span><span class="hl-0">, </span><span class="hl-5">// 1 SOL</span><br/><span class="hl-0"> </span><span class="hl-1">slippageBps:</span><span class="hl-0"> </span><span class="hl-8">50</span><span class="hl-0">, </span><span class="hl-5">// 0.5%</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Quote:&#39;</span><span class="hl-0">, {</span><br/><span class="hl-0"> </span><span class="hl-1">inAmount:</span><span class="hl-0"> </span><span class="hl-1">quote</span><span class="hl-0">.</span><span class="hl-1">inAmount</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">outAmount:</span><span class="hl-0"> </span><span class="hl-1">quote</span><span class="hl-0">.</span><span class="hl-1">outAmount</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">priceImpact:</span><span class="hl-0"> </span><span class="hl-1">quote</span><span class="hl-0">.</span><span class="hl-1">priceImpactPct</span><span class="hl-0">,</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-5">// Jito MEV protection</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">jito</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">JitoIntegration</span><span class="hl-0">(</span><span class="hl-1">client</span><span class="hl-0">);</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">tipAccount</span><span class="hl-0"> = </span><span class="hl-1">jito</span><span class="hl-0">.</span><span class="hl-3">getTipAccount</span><span class="hl-0">(</span><span class="hl-4">&#39;ny&#39;</span><span class="hl-0">); </span><span class="hl-5">// New York region</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">bundle</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">jito</span><span class="hl-0">.</span><span class="hl-3">submitBundle</span><span class="hl-0">({</span><br/><span class="hl-0"> </span><span class="hl-1">transactions:</span><span class="hl-0"> [</span><span class="hl-1">signedTxBase64</span><span class="hl-0">],</span><br/><span class="hl-0"> </span><span class="hl-1">tipLamports:</span><span class="hl-0"> </span><span class="hl-8">1_000_000</span><span class="hl-0">, </span><span class="hl-5">// 0.001 SOL</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Bundle ID:&#39;</span><span class="hl-0">, </span><span class="hl-1">bundle</span><span class="hl-0">.</span><span class="hl-1">bundleId</span><span class="hl-0">);</span><br/><br/><span class="hl-5">// Token data</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">tokenData</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">TokenDataIntegration</span><span class="hl-0">(</span><span class="hl-1">client</span><span class="hl-0">);</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">tokens</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">tokenData</span><span class="hl-0">.</span><span class="hl-3">getTokenAccountsByOwner</span><span class="hl-0">(</span><span class="hl-4">&#39;YourWalletAddress&#39;</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Token accounts:&#39;</span><span class="hl-0">, </span><span class="hl-1">tokens</span><span class="hl-0">.</span><span class="hl-1">length</span><span class="hl-0">);</span>
287
- </code><button type="button">Copy</button></pre>
288
-
289
- <p><strong><a href="media/README-2.md">Read Full Documentation →</a></strong></p>
290
- <hr>
291
- <a id="md:4-nft-module" class="tsd-anchor"></a><h3 class="tsd-anchor-link">4. NFT Module<a href="#md:4-nft-module" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p><strong>Location:</strong> <a href="media/README-3.md"><code>src/nft/</code></a></p>
292
- <p>Complete NFT toolkit for Solana with AI-powered features.</p>
293
- <a id="md:features-matrix-1" class="tsd-anchor"></a><h4 class="tsd-anchor-link">Features Matrix<a href="#md:features-matrix-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><table>
255
+ <a id="md:ai" class="tsd-anchor"></a><h3 class="tsd-anchor-link">ai/<a href="#md:ai" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>AI agent commerce layer. Zod schemas, LangChain tools, protocol integrations, gateway, x402.</p>
256
+ <table>
294
257
  <thead>
295
258
  <tr>
296
- <th>Feature</th>
297
- <th>Description</th>
298
- <th>Data Sources</th>
259
+ <th>File</th>
260
+ <th>Purpose</th>
299
261
  </tr>
300
262
  </thead>
301
263
  <tbody>
302
264
  <tr>
303
- <td><strong>Metadata Fetching</strong></td>
304
- <td>NFT metadata parsing and validation</td>
305
- <td>On-chain + Arweave/IPFS</td>
265
+ <td><code>src/ai/tools/zod/types.ts</code></td>
266
+ <td><code>AgentMethodDef</code> interface -- Zod input/output schema pair.</td>
267
+ </tr>
268
+ <tr>
269
+ <td><code>src/ai/tools/zod/index.ts</code></td>
270
+ <td><code>agentRpcMethods</code> registry (53 method schemas) and <code>createExecutableSolanaTools()</code> factory.</td>
271
+ </tr>
272
+ <tr>
273
+ <td><code>src/ai/tools/protocols/shared.ts</code></td>
274
+ <td><code>ProtocolHttpClient</code>, <code>createMethodRegistry</code>, <code>buildProtocolTools</code> -- shared protocol infrastructure.</td>
275
+ </tr>
276
+ <tr>
277
+ <td><code>src/ai/tools/protocols/jupiter/</code></td>
278
+ <td>Jupiter DEX: 21 methods (swap, quote, route, limit orders, DCA, token list, price). Schemas in <code>schemas.ts</code>, tool factory in <code>tools.ts</code>.</td>
279
+ </tr>
280
+ <tr>
281
+ <td><code>src/ai/tools/protocols/raydium/</code></td>
282
+ <td>Raydium DEX: 16 methods (pools, liquidity, farming, swaps, CLMM).</td>
283
+ </tr>
284
+ <tr>
285
+ <td><code>src/ai/tools/protocols/metaplex/</code></td>
286
+ <td>Metaplex NFT: 12 methods (DAS queries, resolve collection).</td>
287
+ </tr>
288
+ <tr>
289
+ <td><code>src/ai/tools/protocols/index.ts</code></td>
290
+ <td><code>createProtocolTools()</code> super-factory -- creates all protocol toolkits in one call.</td>
306
291
  </tr>
307
292
  <tr>
308
- <td><strong>Rarity Calculation</strong></td>
309
- <td>Statistical rarity scoring algorithms</td>
310
- <td>Collection traits</td>
293
+ <td><code>src/ai/gateway/types.ts</code></td>
294
+ <td>Gateway type definitions: <code>PaymentIntent</code>, <code>PricingTier</code>, <code>ToolListing</code>, <code>SessionReceipt</code>, events.</td>
311
295
  </tr>
312
296
  <tr>
313
- <td><strong>Collection Analytics</strong></td>
314
- <td>Floor price, volume, trends</td>
315
- <td>Magic Eden, Tensor, Solanart</td>
297
+ <td><code>src/ai/gateway/session.ts</code></td>
298
+ <td><code>AgentSession</code> -- budget tracking, rate limiting, TTL enforcement, call counting.</td>
316
299
  </tr>
317
300
  <tr>
318
- <td><strong>Marketplace Aggregation</strong></td>
319
- <td>Multi-marketplace listing aggregation</td>
320
- <td>5+ marketplaces</td>
301
+ <td><code>src/ai/gateway/pricing.ts</code></td>
302
+ <td><code>PricingEngine</code> -- tier resolution, dynamic congestion pricing, bundle discounts.</td>
321
303
  </tr>
322
304
  <tr>
323
- <td><strong>AI Recommendations</strong></td>
324
- <td>ML-powered investment suggestions</td>
325
- <td>Historical data + ML models</td>
305
+ <td><code>src/ai/gateway/validator.ts</code></td>
306
+ <td><code>ResponseValidator</code> -- SHA-256 attestation, integrity verification, attestation log.</td>
307
+ </tr>
308
+ <tr>
309
+ <td><code>src/ai/gateway/marketplace.ts</code></td>
310
+ <td><code>ToolMarketplace</code> -- listing, search, filtering, reputation scoring, bundle registry.</td>
311
+ </tr>
312
+ <tr>
313
+ <td><code>src/ai/gateway/index.ts</code></td>
314
+ <td><code>AgentGateway</code> class -- session lifecycle, execution pipeline, settlement, event system.</td>
315
+ </tr>
316
+ <tr>
317
+ <td><code>src/ai/gateway/x402/types.ts</code></td>
318
+ <td>x402 protocol types: <code>PaymentRequirements</code>, <code>PaymentPayload</code>, <code>SettlementResult</code>, network constants.</td>
319
+ </tr>
320
+ <tr>
321
+ <td><code>src/ai/gateway/x402/paywall.ts</code></td>
322
+ <td><code>X402Paywall</code> -- seller-side HTTP 402 middleware.</td>
323
+ </tr>
324
+ <tr>
325
+ <td><code>src/ai/gateway/x402/client.ts</code></td>
326
+ <td><code>X402BuyerClient</code> -- buyer-side payment header construction.</td>
327
+ </tr>
328
+ <tr>
329
+ <td><code>src/ai/gateway/x402/facilitator.ts</code></td>
330
+ <td><code>FacilitatorClient</code> -- on-chain settlement verification.</td>
331
+ </tr>
332
+ <tr>
333
+ <td><code>src/ai/gateway/x402/registry.ts</code></td>
334
+ <td><code>FACILITATOR_REGISTRY</code> -- pre-configured endpoints for known facilitators (PayAI, Dexter, RelAI, CDP).</td>
326
335
  </tr>
327
336
  </tbody>
328
337
  </table>
329
- <a id="md:quick-example-3" class="tsd-anchor"></a><h4 class="tsd-anchor-link">Quick Example<a href="#md:quick-example-3" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-6">import</span><span class="hl-0"> { </span><span class="hl-1">NFTEngine</span><span class="hl-0">, </span><span class="hl-1">CollectionAnalytics</span><span class="hl-0">, </span><span class="hl-1">AIRarityCalculator</span><span class="hl-0"> } </span><span class="hl-6">from</span><span class="hl-0"> </span><span class="hl-4">&#39;@synapse/client-sdk/nft&#39;</span><span class="hl-0">;</span><br/><br/><span class="hl-5">// Basic NFT operations</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">nft</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">NFTEngine</span><span class="hl-0">(</span><span class="hl-1">client</span><span class="hl-0">);</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">metadata</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">nft</span><span class="hl-0">.</span><span class="hl-3">getNFTMetadata</span><span class="hl-0">(</span><span class="hl-4">&#39;mintAddress&#39;</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;NFT Name:&#39;</span><span class="hl-0">, </span><span class="hl-1">metadata</span><span class="hl-0">.</span><span class="hl-1">name</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Attributes:&#39;</span><span class="hl-0">, </span><span class="hl-1">metadata</span><span class="hl-0">.</span><span class="hl-1">attributes</span><span class="hl-0">);</span><br/><br/><span class="hl-5">// Collection analytics</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">analytics</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">CollectionAnalytics</span><span class="hl-0">(</span><span class="hl-1">client</span><span class="hl-0">);</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">stats</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">analytics</span><span class="hl-0">.</span><span class="hl-3">getCollectionStats</span><span class="hl-0">(</span><span class="hl-4">&#39;collectionMint&#39;</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Floor price:&#39;</span><span class="hl-0">, </span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">floorPrice</span><span class="hl-0">, </span><span class="hl-4">&#39;SOL&#39;</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;24h volume:&#39;</span><span class="hl-0">, </span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">volume24h</span><span class="hl-0">, </span><span class="hl-4">&#39;SOL&#39;</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Unique holders:&#39;</span><span class="hl-0">, </span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">uniqueHolders</span><span class="hl-0">);</span><br/><br/><span class="hl-5">// AI rarity calculation</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">rarityCalc</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">AIRarityCalculator</span><span class="hl-0">(</span><span class="hl-1">client</span><span class="hl-0">);</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">rarity</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">rarityCalc</span><span class="hl-0">.</span><span class="hl-3">calculateRarity</span><span class="hl-0">(</span><span class="hl-1">metadata</span><span class="hl-0">, </span><span class="hl-4">&#39;collectionMint&#39;</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Rarity score:&#39;</span><span class="hl-0">, </span><span class="hl-1">rarity</span><span class="hl-0">.</span><span class="hl-1">score</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Rarity rank:&#39;</span><span class="hl-0">, </span><span class="hl-4">`</span><span class="hl-7">${</span><span class="hl-1">rarity</span><span class="hl-10">.</span><span class="hl-1">rank</span><span class="hl-7">}</span><span class="hl-4">/</span><span class="hl-7">${</span><span class="hl-1">rarity</span><span class="hl-10">.</span><span class="hl-1">totalSupply</span><span class="hl-7">}</span><span class="hl-4">`</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Rarity tier:&#39;</span><span class="hl-0">, </span><span class="hl-1">rarity</span><span class="hl-0">.</span><span class="hl-1">tier</span><span class="hl-0">); </span><span class="hl-5">// &#39;common&#39;, &#39;rare&#39;, &#39;legendary&#39;, etc.</span>
330
- </code><button type="button">Copy</button></pre>
331
-
332
- <p><strong><a href="media/README-3.md">Read Full Documentation →</a></strong></p>
333
- <hr>
334
- <a id="md:5-ai-module" class="tsd-anchor"></a><h3 class="tsd-anchor-link">5. AI Module<a href="#md:5-ai-module" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p><strong>Location:</strong> <a href="media/README-4.md"><code>src/ai/</code></a></p>
335
- <p>OOBE Protocol implementation with Zero-Combine and PDA management.</p>
336
- <a id="md:components-1" class="tsd-anchor"></a><h4 class="tsd-anchor-link">Components<a href="#md:components-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><table>
338
+ <a id="md:utils" class="tsd-anchor"></a><h3 class="tsd-anchor-link">utils/<a href="#md:utils" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><table>
337
339
  <thead>
338
340
  <tr>
339
- <th>Component</th>
341
+ <th>File</th>
340
342
  <th>Purpose</th>
341
- <th>Complexity</th>
342
343
  </tr>
343
344
  </thead>
344
345
  <tbody>
345
346
  <tr>
346
- <td><strong>PDA Manager</strong></td>
347
- <td>Deterministic Program Derived Address generation</td>
348
- <td>Low</td>
347
+ <td><code>src/utils/helpers.ts</code></td>
348
+ <td><code>lamportsToSol</code>, <code>solToLamports</code>, <code>isValidPubkey</code>, <code>isValidSignature</code>, <code>sleep</code>, <code>chunk</code>, <code>retry</code>.</td>
349
349
  </tr>
350
350
  <tr>
351
- <td><strong>Zero-Combine Fetcher</strong></td>
352
- <td>Merkle proof reconstruction from on-chain data</td>
353
- <td>High</td>
354
- </tr>
355
- <tr>
356
- <td><strong>Merkle Operations</strong></td>
357
- <td>Proof generation, validation, and verification</td>
358
- <td>Medium</td>
359
- </tr>
360
- <tr>
361
- <td><strong>OOBE Protocol</strong></td>
362
- <td>AI agent integration for autonomous trading</td>
363
- <td>High</td>
351
+ <td><code>src/utils/synapse.ts</code></td>
352
+ <td><code>SynapseNetwork</code>, <code>SynapseRegion</code> enums, <code>resolveEndpoint</code>, <code>probeLatency</code>, <code>autoSelectRegion</code>, pre-resolved constants (<code>SYNAPSE_MAINNET_US</code>, etc.).</td>
364
353
  </tr>
365
354
  </tbody>
366
355
  </table>
367
- <a id="md:quick-example-4" class="tsd-anchor"></a><h4 class="tsd-anchor-link">Quick Example<a href="#md:quick-example-4" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-6">import</span><span class="hl-0"> { </span><span class="hl-1">PDAManager</span><span class="hl-0">, </span><span class="hl-1">ZeroCombineFetcher</span><span class="hl-0">, </span><span class="hl-1">MerkleOperation</span><span class="hl-0"> } </span><span class="hl-6">from</span><span class="hl-0"> </span><span class="hl-4">&#39;@synapse/client-sdk/ai&#39;</span><span class="hl-0">;</span><br/><br/><span class="hl-5">// PDA derivation</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">pdaManager</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">PDAManager</span><span class="hl-0">(</span><span class="hl-1">client</span><span class="hl-0">, </span><span class="hl-1">walletAddress</span><span class="hl-0">);</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">pdas</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">pdaManager</span><span class="hl-0">.</span><span class="hl-3">deriveAllPDAs</span><span class="hl-0">();</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;User PDAs:&#39;</span><span class="hl-0">, </span><span class="hl-1">pdas</span><span class="hl-0">);</span><br/><br/><span class="hl-5">// Zero-Combine data fetching</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">fetcher</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">ZeroCombineFetcher</span><span class="hl-0">(</span><span class="hl-1">client</span><span class="hl-0">, </span><span class="hl-1">walletAddress</span><span class="hl-0">);</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">result</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">fetcher</span><span class="hl-0">.</span><span class="hl-3">fetchAndReconstruct</span><span class="hl-0">();</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Proof records:&#39;</span><span class="hl-0">, </span><span class="hl-1">result</span><span class="hl-0">.</span><span class="hl-1">tools</span><span class="hl-0">.</span><span class="hl-1">length</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Merkle roots:&#39;</span><span class="hl-0">, </span><span class="hl-1">result</span><span class="hl-0">.</span><span class="hl-1">roots</span><span class="hl-0">);</span><br/><br/><span class="hl-5">// Merkle proof operations</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">merkle</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">MerkleOperation</span><span class="hl-0">();</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">leaves</span><span class="hl-0"> = [</span><br/><span class="hl-0"> { </span><span class="hl-1">data:</span><span class="hl-0"> </span><span class="hl-1">Buffer</span><span class="hl-0">.</span><span class="hl-3">from</span><span class="hl-0">(</span><span class="hl-4">&#39;data1&#39;</span><span class="hl-0">), </span><span class="hl-1">index:</span><span class="hl-0"> </span><span class="hl-8">0</span><span class="hl-0"> },</span><br/><span class="hl-0"> { </span><span class="hl-1">data:</span><span class="hl-0"> </span><span class="hl-1">Buffer</span><span class="hl-0">.</span><span class="hl-3">from</span><span class="hl-0">(</span><span class="hl-4">&#39;data2&#39;</span><span class="hl-0">), </span><span class="hl-1">index:</span><span class="hl-0"> </span><span class="hl-8">1</span><span class="hl-0"> },</span><br/><span class="hl-0">];</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">root</span><span class="hl-0"> = </span><span class="hl-1">merkle</span><span class="hl-0">.</span><span class="hl-3">generateMerkleRoot</span><span class="hl-0">(</span><span class="hl-1">leaves</span><span class="hl-0">);</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">proof</span><span class="hl-0"> = </span><span class="hl-1">merkle</span><span class="hl-0">.</span><span class="hl-3">generateProof</span><span class="hl-0">(</span><span class="hl-1">leaves</span><span class="hl-0">, </span><span class="hl-8">0</span><span class="hl-0">);</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">isValid</span><span class="hl-0"> = </span><span class="hl-1">merkle</span><span class="hl-0">.</span><span class="hl-3">verifyProof</span><span class="hl-0">(</span><span class="hl-1">proof</span><span class="hl-0">, </span><span class="hl-1">leaves</span><span class="hl-0">[</span><span class="hl-8">0</span><span class="hl-0">].</span><span class="hl-1">data</span><span class="hl-0">, </span><span class="hl-1">root</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Proof valid:&#39;</span><span class="hl-0">, </span><span class="hl-1">isValid</span><span class="hl-0">);</span>
356
+ <hr>
357
+ <a id="md:endpoints-and-regions" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Endpoints and Regions<a href="#md:endpoints-and-regions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>The SDK ships with a typed endpoint registry. Each endpoint includes <code>rpc</code>, <code>wss</code>, and <code>grpc</code> URLs.</p>
358
+ <pre><code class="ts"><span class="hl-0">import</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-2">SynapseNetwork</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">SynapseRegion</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">resolveEndpoint</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">autoSelectRegion</span><span class="hl-1">,</span><br/><span class="hl-1">} </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-3">&#39;@oobe-protocol-labs/synapse-client-sdk&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-7">// Explicit resolution</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">ep</span><span class="hl-1"> = </span><span class="hl-6">resolveEndpoint</span><span class="hl-1">(</span><span class="hl-2">SynapseNetwork</span><span class="hl-1">.</span><span class="hl-2">Mainnet</span><span class="hl-1">, </span><span class="hl-2">SynapseRegion</span><span class="hl-1">.</span><span class="hl-5">EU</span><span class="hl-1">);</span><br/><span class="hl-7">// ep.rpc -&gt; &#39;https://mainnet.eu.synapse.com&#39;</span><br/><span class="hl-7">// ep.wss -&gt; &#39;wss://mainnet.eu.synapse.com/ws&#39;</span><br/><span class="hl-7">// ep.grpc -&gt; &#39;https://mainnet.eu.synapse.com:443&#39;</span><br/><br/><span class="hl-7">// Latency-based auto-selection</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">best</span><span class="hl-1"> = </span><span class="hl-0">await</span><span class="hl-1"> </span><span class="hl-6">autoSelectRegion</span><span class="hl-1">(</span><span class="hl-2">SynapseNetwork</span><span class="hl-1">.</span><span class="hl-2">Mainnet</span><span class="hl-1">);</span><br/><span class="hl-2">console</span><span class="hl-1">.</span><span class="hl-6">log</span><span class="hl-1">(</span><span class="hl-2">best</span><span class="hl-1">.</span><span class="hl-2">region</span><span class="hl-1">, </span><span class="hl-2">best</span><span class="hl-1">.</span><span class="hl-2">latencyMs</span><span class="hl-1">);</span>
368
359
  </code><button type="button">Copy</button></pre>
369
360
 
370
- <p><strong><a href="media/README-4.md">Read Full Documentation →</a></strong></p>
371
- <hr>
372
- <a id="md:6-analytics-engine-module" class="tsd-anchor"></a><h3 class="tsd-anchor-link">6. Analytics Engine Module<a href="#md:6-analytics-engine-module" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p><strong>Location:</strong> <a href="./src/analytics/README.md"><code>src/analytics/</code></a></p>
373
- <p>Real-time metrics collection with AI-powered predictions.</p>
374
- <a id="md:capabilities" class="tsd-anchor"></a><h4 class="tsd-anchor-link">Capabilities<a href="#md:capabilities" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><table>
361
+ <p>Available combinations:</p>
362
+ <table>
375
363
  <thead>
376
364
  <tr>
377
- <th>Category</th>
378
- <th>Metrics</th>
379
- <th>Analysis</th>
365
+ <th>Network</th>
366
+ <th>Regions</th>
380
367
  </tr>
381
368
  </thead>
382
369
  <tbody>
383
370
  <tr>
384
- <td><strong>Performance</strong></td>
385
- <td>Requests/s, latency, throughput, error rate</td>
386
- <td>Trend analysis, outlier detection</td>
387
- </tr>
388
- <tr>
389
- <td><strong>Predictions</strong></td>
390
- <td>Latency forecast, load prediction, error probability</td>
391
- <td>ML-based time series</td>
371
+ <td><code>Mainnet</code></td>
372
+ <td>US, EU</td>
392
373
  </tr>
393
374
  <tr>
394
- <td><strong>Anomalies</strong></td>
395
- <td>Spike detection, degradation alerts, pattern changes</td>
396
- <td>Statistical anomaly detection</td>
375
+ <td><code>Devnet</code></td>
376
+ <td>US, EU</td>
397
377
  </tr>
398
378
  <tr>
399
- <td><strong>Optimization</strong></td>
400
- <td>Bottleneck identification, resource recommendations</td>
401
- <td>Rule-based + ML insights</td>
379
+ <td><code>Testnet</code></td>
380
+ <td>US, EU</td>
402
381
  </tr>
403
382
  </tbody>
404
383
  </table>
405
- <a id="md:quick-example-5" class="tsd-anchor"></a><h4 class="tsd-anchor-link">Quick Example<a href="#md:quick-example-5" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-6">import</span><span class="hl-0"> { </span><span class="hl-1">AnalyticsEngine</span><span class="hl-0"> } </span><span class="hl-6">from</span><span class="hl-0"> </span><span class="hl-4">&#39;@synapse/client-sdk/analytics&#39;</span><span class="hl-0">;</span><br/><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">analytics</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">AnalyticsEngine</span><span class="hl-0">({</span><br/><span class="hl-0"> </span><span class="hl-1">enablePredictions:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">enableAnomalyDetection:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">enableTrendAnalysis:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">sampleRate:</span><span class="hl-0"> </span><span class="hl-8">0.1</span><span class="hl-0">, </span><span class="hl-5">// 10% sampling</span><br/><span class="hl-0"> </span><span class="hl-1">retentionDays:</span><span class="hl-0"> </span><span class="hl-8">7</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">alertThresholds:</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">errorRate:</span><span class="hl-0"> </span><span class="hl-8">0.05</span><span class="hl-0">, </span><span class="hl-5">// 5%</span><br/><span class="hl-0"> </span><span class="hl-1">latency:</span><span class="hl-0"> </span><span class="hl-8">1000</span><span class="hl-0">, </span><span class="hl-5">// 1s</span><br/><span class="hl-0"> </span><span class="hl-1">volumeSpike:</span><span class="hl-0"> </span><span class="hl-8">5</span><span class="hl-0">, </span><span class="hl-5">// 5x normal</span><br/><span class="hl-0"> },</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-5">// Record metrics</span><br/><span class="hl-1">analytics</span><span class="hl-0">.</span><span class="hl-3">recordMetrics</span><span class="hl-0">({</span><br/><span class="hl-0"> </span><span class="hl-1">timestamp:</span><span class="hl-0"> </span><span class="hl-1">Date</span><span class="hl-0">.</span><span class="hl-3">now</span><span class="hl-0">(),</span><br/><span class="hl-0"> </span><span class="hl-1">requests:</span><span class="hl-0"> </span><span class="hl-8">1000</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">errors:</span><span class="hl-0"> </span><span class="hl-8">10</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">latency:</span><span class="hl-0"> </span><span class="hl-8">150</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">throughput:</span><span class="hl-0"> </span><span class="hl-8">200</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">activeUsers:</span><span class="hl-0"> </span><span class="hl-8">50</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">gasUsed:</span><span class="hl-0"> </span><span class="hl-8">1_000_000</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">blockHeight:</span><span class="hl-0"> </span><span class="hl-8">250_000_000</span><span class="hl-0">,</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-5">// Get predictions</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">predictions</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">analytics</span><span class="hl-0">.</span><span class="hl-3">generatePredictions</span><span class="hl-0">();</span><br/><span class="hl-1">predictions</span><span class="hl-0">.</span><span class="hl-3">forEach</span><span class="hl-0">(</span><span class="hl-1">pred</span><span class="hl-0"> </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">`</span><span class="hl-7">${</span><span class="hl-1">pred</span><span class="hl-10">.</span><span class="hl-1">metric</span><span class="hl-7">}</span><span class="hl-4"> prediction:`</span><span class="hl-0">, {</span><br/><span class="hl-0"> </span><span class="hl-1">current:</span><span class="hl-0"> </span><span class="hl-1">pred</span><span class="hl-0">.</span><span class="hl-1">currentValue</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">predicted:</span><span class="hl-0"> </span><span class="hl-1">pred</span><span class="hl-0">.</span><span class="hl-1">predictedValue</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">confidence:</span><span class="hl-0"> (</span><span class="hl-1">pred</span><span class="hl-0">.</span><span class="hl-1">confidence</span><span class="hl-0"> * </span><span class="hl-8">100</span><span class="hl-0">).</span><span class="hl-3">toFixed</span><span class="hl-0">(</span><span class="hl-8">1</span><span class="hl-0">) + </span><span class="hl-4">&#39;%&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">trend:</span><span class="hl-0"> </span><span class="hl-1">pred</span><span class="hl-0">.</span><span class="hl-1">trend</span><span class="hl-0">,</span><br/><span class="hl-0"> });</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-5">// Detect anomalies</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">anomalies</span><span class="hl-0"> = </span><span class="hl-1">analytics</span><span class="hl-0">.</span><span class="hl-3">detectAnomalies</span><span class="hl-0">();</span><br/><span class="hl-1">anomalies</span><span class="hl-0">.</span><span class="hl-3">forEach</span><span class="hl-0">(</span><span class="hl-1">anomaly</span><span class="hl-0"> </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">`Anomaly detected: </span><span class="hl-7">${</span><span class="hl-1">anomaly</span><span class="hl-10">.</span><span class="hl-1">metric</span><span class="hl-7">}</span><span class="hl-4">`</span><span class="hl-0">, {</span><br/><span class="hl-0"> </span><span class="hl-1">value:</span><span class="hl-0"> </span><span class="hl-1">anomaly</span><span class="hl-0">.</span><span class="hl-1">value</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">severity:</span><span class="hl-0"> </span><span class="hl-1">anomaly</span><span class="hl-0">.</span><span class="hl-1">severity</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">description:</span><span class="hl-0"> </span><span class="hl-1">anomaly</span><span class="hl-0">.</span><span class="hl-1">description</span><span class="hl-0">,</span><br/><span class="hl-0"> });</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-5">// Get optimization suggestions</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">suggestions</span><span class="hl-0"> = </span><span class="hl-1">analytics</span><span class="hl-0">.</span><span class="hl-3">getOptimizationSuggestions</span><span class="hl-0">();</span><br/><span class="hl-1">suggestions</span><span class="hl-0">.</span><span class="hl-3">forEach</span><span class="hl-0">(</span><span class="hl-1">suggestion</span><span class="hl-0"> </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">`</span><span class="hl-7">${</span><span class="hl-1">suggestion</span><span class="hl-10">.</span><span class="hl-1">category</span><span class="hl-7">}</span><span class="hl-4">: </span><span class="hl-7">${</span><span class="hl-1">suggestion</span><span class="hl-10">.</span><span class="hl-1">suggestion</span><span class="hl-7">}</span><span class="hl-4">`</span><span class="hl-0">);</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">`Expected impact: </span><span class="hl-7">${</span><span class="hl-1">suggestion</span><span class="hl-10">.</span><span class="hl-1">impact</span><span class="hl-7">}</span><span class="hl-4">`</span><span class="hl-0">);</span><br/><span class="hl-0">});</span>
384
+ <hr>
385
+ <a id="md:branded-types" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Branded Types<a href="#md:branded-types" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>The SDK uses branded types for compile-time safety. Primitive values are
386
+ wrapped at construction and the brand is erased at runtime (zero overhead).</p>
387
+ <pre><code class="ts"><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-2">Pubkey</span><span class="hl-1">, </span><span class="hl-2">Signature</span><span class="hl-1">, </span><span class="hl-2">Slot</span><span class="hl-1">, </span><span class="hl-2">Lamports</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-3">&#39;@oobe-protocol-labs/synapse-client-sdk&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">pk</span><span class="hl-1"> = </span><span class="hl-6">Pubkey</span><span class="hl-1">(</span><span class="hl-3">&#39;So11111111111111111111111111111111&#39;</span><span class="hl-1">); </span><span class="hl-7">// branded string</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">sig</span><span class="hl-1"> = </span><span class="hl-6">Signature</span><span class="hl-1">(</span><span class="hl-3">&#39;5vR3z...&#39;</span><span class="hl-1">); </span><span class="hl-7">// branded string</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">slot</span><span class="hl-1"> = </span><span class="hl-6">Slot</span><span class="hl-1">(</span><span class="hl-8">12345678</span><span class="hl-1">); </span><span class="hl-7">// branded number</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">lam</span><span class="hl-1"> = </span><span class="hl-6">Lamports</span><span class="hl-1">(</span><span class="hl-8">1_000_000_000</span><span class="hl-1">); </span><span class="hl-7">// branded number</span>
406
388
  </code><button type="button">Copy</button></pre>
407
389
 
408
- <p><strong><a href="./src/analytics/README.md">Read Full Documentation →</a></strong></p>
390
+ <p>Passing a raw <code>string</code> where <code>Pubkey</code> is expected is a compile-time error.</p>
409
391
  <hr>
410
- <a id="md:7-rpc-methods-module" class="tsd-anchor"></a><h3 class="tsd-anchor-link">7. RPC Methods Module<a href="#md:7-rpc-methods-module" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p><strong>Location:</strong> <a href="media/README-5.md"><code>src/methods/</code></a></p>
411
- <p>Type-safe wrapper for 70+ Solana RPC methods.</p>
412
- <a id="md:method-categories" class="tsd-anchor"></a><h4 class="tsd-anchor-link">Method Categories<a href="#md:method-categories" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><table>
392
+ <a id="md:ai-agent-integration" class="tsd-anchor"></a><h2 class="tsd-anchor-link">AI Agent Integration<a href="#md:ai-agent-integration" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><a id="md:zod-schemas-and-langchain-tools" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Zod Schemas and LangChain Tools<a href="#md:zod-schemas-and-langchain-tools" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Every RPC method has a corresponding Zod input/output schema. These schemas
393
+ are used to generate LangChain <code>DynamicStructuredTool</code> instances:</p>
394
+ <pre><code class="ts"><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-2">createExecutableSolanaTools</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-3">&#39;@oobe-protocol-labs/synapse-client-sdk&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">transport</span><span class="hl-1"> = </span><span class="hl-4">new</span><span class="hl-1"> </span><span class="hl-6">HttpTransport</span><span class="hl-1">({ </span><span class="hl-2">endpoint:</span><span class="hl-1"> </span><span class="hl-3">&#39;...&#39;</span><span class="hl-1"> });</span><br/><span class="hl-4">const</span><span class="hl-1"> { </span><span class="hl-5">tools</span><span class="hl-1">, </span><span class="hl-5">toolMap</span><span class="hl-1"> } = </span><span class="hl-6">createExecutableSolanaTools</span><span class="hl-1">(</span><span class="hl-2">transport</span><span class="hl-1">);</span><br/><span class="hl-7">// tools: DynamicStructuredTool[] (53 tools, prefixed &quot;solana_&quot;)</span><br/><span class="hl-7">// toolMap: Map&lt;string, DynamicStructuredTool&gt;</span>
395
+ </code><button type="button">Copy</button></pre>
396
+
397
+ <p>Options:</p>
398
+ <ul>
399
+ <li><code>prefix</code> -- custom tool name prefix (default: <code>&quot;solana_&quot;</code>)</li>
400
+ <li><code>include</code> -- whitelist of method names</li>
401
+ <li><code>exclude</code> -- blacklist of method names</li>
402
+ </ul>
403
+ <a id="md:protocol-tools" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Protocol Tools<a href="#md:protocol-tools" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>49 additional tools for on-chain protocols:</p>
404
+ <pre><code class="ts"><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-2">createProtocolTools</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-3">&#39;@oobe-protocol-labs/synapse-client-sdk&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-4">const</span><span class="hl-1"> { </span><span class="hl-5">jupiter</span><span class="hl-1">, </span><span class="hl-5">raydium</span><span class="hl-1">, </span><span class="hl-5">metaplex</span><span class="hl-1">, </span><span class="hl-5">allTools</span><span class="hl-1"> } = </span><span class="hl-6">createProtocolTools</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-2">jupiter:</span><span class="hl-1"> { </span><span class="hl-2">apiKey:</span><span class="hl-1"> </span><span class="hl-3">&#39;...&#39;</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-2">raydium:</span><span class="hl-1"> </span><span class="hl-4">true</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">metaplex:</span><span class="hl-1"> { </span><span class="hl-2">transport</span><span class="hl-1"> },</span><br/><span class="hl-1">});</span><br/><span class="hl-7">// allTools: DynamicStructuredTool[] (49 tools)</span>
405
+ </code><button type="button">Copy</button></pre>
406
+
407
+ <table>
413
408
  <thead>
414
409
  <tr>
415
- <th>Category</th>
416
- <th>Methods</th>
417
- <th>Description</th>
410
+ <th>Protocol</th>
411
+ <th>Tool Count</th>
412
+ <th>Categories</th>
418
413
  </tr>
419
414
  </thead>
420
415
  <tbody>
421
416
  <tr>
422
- <td><strong>Account</strong></td>
423
- <td>getAccountInfo, getBalance, getMultipleAccounts, getProgramAccounts</td>
424
- <td>Account data retrieval</td>
425
- </tr>
426
- <tr>
427
- <td><strong>Block</strong></td>
428
- <td>getBlock, getBlockHeight, getBlockTime, getBlocks, getBlockCommitment</td>
429
- <td>Block information</td>
430
- </tr>
431
- <tr>
432
- <td><strong>Transaction</strong></td>
433
- <td>getTransaction, getSignatureStatuses, sendTransaction, simulateTransaction</td>
434
- <td>Transaction operations</td>
417
+ <td>Jupiter</td>
418
+ <td>21</td>
419
+ <td>Ultra Swap, Metis Swap, Quote, Route, Limit Orders, DCA, Token List, Price API</td>
435
420
  </tr>
436
421
  <tr>
437
- <td><strong>Network</strong></td>
438
- <td>getClusterNodes, getEpochInfo, getVersion, getHealth</td>
439
- <td>Network status</td>
422
+ <td>Raydium</td>
423
+ <td>16</td>
424
+ <td>Pools, Liquidity, Farming, Swaps, CLMM Positions, Token Info</td>
440
425
  </tr>
441
426
  <tr>
442
- <td><strong>Token</strong></td>
443
- <td>getTokenAccountBalance, getTokenSupply, getTokenAccountsByOwner, getTokenLargestAccounts</td>
444
- <td>SPL Token operations</td>
427
+ <td>Metaplex</td>
428
+ <td>12</td>
429
+ <td>DAS Queries (asset, proof, owner, group, creator, authority, search), Resolve Collection</td>
445
430
  </tr>
446
431
  </tbody>
447
432
  </table>
448
- <a id="md:quick-example-6" class="tsd-anchor"></a><h4 class="tsd-anchor-link">Quick Example<a href="#md:quick-example-6" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-6">import</span><span class="hl-0"> { </span><span class="hl-1">SolanaRpcMethods</span><span class="hl-0"> } </span><span class="hl-6">from</span><span class="hl-0"> </span><span class="hl-4">&#39;@synapse/client-sdk/methods&#39;</span><span class="hl-0">;</span><br/><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">rpc</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">SolanaRpcMethods</span><span class="hl-0">(</span><span class="hl-1">client</span><span class="hl-0">);</span><br/><br/><span class="hl-5">// Account methods</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">accountInfo</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">rpc</span><span class="hl-0">.</span><span class="hl-3">getAccountInfo</span><span class="hl-0">(</span><span class="hl-4">&#39;address&#39;</span><span class="hl-0">, {</span><br/><span class="hl-0"> </span><span class="hl-1">encoding:</span><span class="hl-0"> </span><span class="hl-4">&#39;jsonParsed&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">commitment:</span><span class="hl-0"> </span><span class="hl-4">&#39;confirmed&#39;</span><span class="hl-0">,</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">balance</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">rpc</span><span class="hl-0">.</span><span class="hl-3">getBalance</span><span class="hl-0">(</span><span class="hl-4">&#39;address&#39;</span><span class="hl-0">, </span><span class="hl-4">&#39;confirmed&#39;</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Balance:&#39;</span><span class="hl-0">, </span><span class="hl-1">balance</span><span class="hl-0"> / </span><span class="hl-8">1e9</span><span class="hl-0">, </span><span class="hl-4">&#39;SOL&#39;</span><span class="hl-0">);</span><br/><br/><span class="hl-5">// Block methods</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">blockHeight</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">rpc</span><span class="hl-0">.</span><span class="hl-3">getBlockHeight</span><span class="hl-0">(</span><span class="hl-4">&#39;finalized&#39;</span><span class="hl-0">);</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">block</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">rpc</span><span class="hl-0">.</span><span class="hl-3">getBlock</span><span class="hl-0">(</span><span class="hl-1">blockHeight</span><span class="hl-0">, {</span><br/><span class="hl-0"> </span><span class="hl-1">encoding:</span><span class="hl-0"> </span><span class="hl-4">&#39;jsonParsed&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">transactionDetails:</span><span class="hl-0"> </span><span class="hl-4">&#39;full&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">rewards:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">maxSupportedTransactionVersion:</span><span class="hl-0"> </span><span class="hl-8">0</span><span class="hl-0">,</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-5">// Transaction methods</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">signature</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">rpc</span><span class="hl-0">.</span><span class="hl-3">sendTransaction</span><span class="hl-0">(</span><span class="hl-1">signedTxBase64</span><span class="hl-0">, {</span><br/><span class="hl-0"> </span><span class="hl-1">skipPreflight:</span><span class="hl-0"> </span><span class="hl-7">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">preflightCommitment:</span><span class="hl-0"> </span><span class="hl-4">&#39;confirmed&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">maxRetries:</span><span class="hl-0"> </span><span class="hl-8">3</span><span class="hl-0">,</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">statuses</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">rpc</span><span class="hl-0">.</span><span class="hl-3">getSignatureStatuses</span><span class="hl-0">([</span><span class="hl-1">signature</span><span class="hl-0">]);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Transaction status:&#39;</span><span class="hl-0">, </span><span class="hl-1">statuses</span><span class="hl-0">[</span><span class="hl-8">0</span><span class="hl-0">]);</span><br/><br/><span class="hl-5">// Token methods</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">tokenAccounts</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">rpc</span><span class="hl-0">.</span><span class="hl-3">getTokenAccountsByOwner</span><span class="hl-0">(</span><br/><span class="hl-0"> </span><span class="hl-4">&#39;ownerAddress&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> { </span><span class="hl-1">programId:</span><span class="hl-0"> </span><span class="hl-4">&#39;TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA&#39;</span><span class="hl-0"> },</span><br/><span class="hl-0"> { </span><span class="hl-1">encoding:</span><span class="hl-0"> </span><span class="hl-4">&#39;jsonParsed&#39;</span><span class="hl-0"> }</span><br/><span class="hl-0">);</span><br/><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">tokenSupply</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">rpc</span><span class="hl-0">.</span><span class="hl-3">getTokenSupply</span><span class="hl-0">(</span><span class="hl-4">&#39;mintAddress&#39;</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Total supply:&#39;</span><span class="hl-0">, </span><span class="hl-1">tokenSupply</span><span class="hl-0">.</span><span class="hl-1">value</span><span class="hl-0">.</span><span class="hl-1">uiAmount</span><span class="hl-0">);</span>
433
+ <a id="md:agent-commerce-gateway" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Agent Commerce Gateway<a href="#md:agent-commerce-gateway" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Session-based metering and payment infrastructure for monetized AI tool access:</p>
434
+ <pre><code class="ts"><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-2">AgentGateway</span><span class="hl-1">, </span><span class="hl-2">createAgentGateway</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-3">&#39;@oobe-protocol-labs/synapse-client-sdk&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">gw</span><span class="hl-1"> = </span><span class="hl-6">createAgentGateway</span><span class="hl-1">({ </span><span class="hl-2">transport</span><span class="hl-1">, </span><span class="hl-2">seller:</span><span class="hl-1"> </span><span class="hl-6">Pubkey</span><span class="hl-1">(</span><span class="hl-3">&#39;...&#39;</span><span class="hl-1">) });</span><br/><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">session</span><span class="hl-1"> = </span><span class="hl-0">await</span><span class="hl-1"> </span><span class="hl-2">gw</span><span class="hl-1">.</span><span class="hl-6">openSession</span><span class="hl-1">(</span><span class="hl-2">paymentIntent</span><span class="hl-1">);</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">result</span><span class="hl-1"> = </span><span class="hl-0">await</span><span class="hl-1"> </span><span class="hl-2">gw</span><span class="hl-1">.</span><span class="hl-6">execute</span><span class="hl-1">(</span><span class="hl-2">session</span><span class="hl-1">.</span><span class="hl-2">id</span><span class="hl-1">, </span><span class="hl-3">&#39;getBalance&#39;</span><span class="hl-1">, [</span><span class="hl-2">pubkey</span><span class="hl-1">]);</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">receipt</span><span class="hl-1"> = </span><span class="hl-0">await</span><span class="hl-1"> </span><span class="hl-2">gw</span><span class="hl-1">.</span><span class="hl-6">settleSession</span><span class="hl-1">(</span><span class="hl-2">session</span><span class="hl-1">.</span><span class="hl-2">id</span><span class="hl-1">);</span>
449
435
  </code><button type="button">Copy</button></pre>
450
436
 
451
- <p><strong><a href="media/README-5.md">Read Full Documentation →</a></strong></p>
452
- <hr>
453
- <a id="md:8-utils-module" class="tsd-anchor"></a><h3 class="tsd-anchor-link">8. Utils Module<a href="#md:8-utils-module" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p><strong>Location:</strong> <a href="media/README-6.md"><code>src/utils/</code></a></p>
454
- <p>Utility functions and constants for common operations.</p>
455
- <a id="md:components-2" class="tsd-anchor"></a><h4 class="tsd-anchor-link">Components<a href="#md:components-2" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-5">// Constants</span><br/><span class="hl-6">import</span><span class="hl-0"> { </span><span class="hl-1">SynapseConstants</span><span class="hl-0"> } </span><span class="hl-6">from</span><span class="hl-0"> </span><span class="hl-4">&#39;@synapse/client-sdk/utils&#39;</span><span class="hl-0">;</span><br/><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Base URL:&#39;</span><span class="hl-0">, </span><span class="hl-1">SynapseConstants</span><span class="hl-0">.</span><span class="hl-2">BASE_URL</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;WebSocket URL:&#39;</span><span class="hl-0">, </span><span class="hl-1">SynapseConstants</span><span class="hl-0">.</span><span class="hl-2">WEBSOCKET_URL</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Default timeout:&#39;</span><span class="hl-0">, </span><span class="hl-1">SynapseConstants</span><span class="hl-0">.</span><span class="hl-2">DEFAULT_TIMEOUT</span><span class="hl-0">);</span><br/><br/><span class="hl-5">// Helpers</span><br/><span class="hl-6">import</span><span class="hl-0"> { </span><span class="hl-1">SynapseUtils</span><span class="hl-0"> } </span><span class="hl-6">from</span><span class="hl-0"> </span><span class="hl-4">&#39;@synapse/client-sdk/utils&#39;</span><span class="hl-0">;</span><br/><br/><span class="hl-5">// Format lamports to SOL</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">sol</span><span class="hl-0"> = </span><span class="hl-1">SynapseUtils</span><span class="hl-0">.</span><span class="hl-3">lamportsToSol</span><span class="hl-0">(</span><span class="hl-8">1_000_000_000</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Amount:&#39;</span><span class="hl-0">, </span><span class="hl-1">sol</span><span class="hl-0">, </span><span class="hl-4">&#39;SOL&#39;</span><span class="hl-0">); </span><span class="hl-5">// 1 SOL</span><br/><br/><span class="hl-5">// Parse SOL to lamports</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">lamports</span><span class="hl-0"> = </span><span class="hl-1">SynapseUtils</span><span class="hl-0">.</span><span class="hl-3">solToLamports</span><span class="hl-0">(</span><span class="hl-8">1.5</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Lamports:&#39;</span><span class="hl-0">, </span><span class="hl-1">lamports</span><span class="hl-0">); </span><span class="hl-5">// 1500000000</span><br/><br/><span class="hl-5">// Validate Solana address</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">isValid</span><span class="hl-0"> = </span><span class="hl-1">SynapseUtils</span><span class="hl-0">.</span><span class="hl-3">isValidAddress</span><span class="hl-0">(</span><span class="hl-4">&#39;EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v&#39;</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Valid address:&#39;</span><span class="hl-0">, </span><span class="hl-1">isValid</span><span class="hl-0">); </span><span class="hl-5">// true</span><br/><br/><span class="hl-5">// Format transaction signature</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">shortSig</span><span class="hl-0"> = </span><span class="hl-1">SynapseUtils</span><span class="hl-0">.</span><span class="hl-3">shortenSignature</span><span class="hl-0">(</span><span class="hl-4">&#39;5j7s6N...&#39;</span><span class="hl-0">, </span><span class="hl-8">8</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Short signature:&#39;</span><span class="hl-0">, </span><span class="hl-1">shortSig</span><span class="hl-0">); </span><span class="hl-5">// 5j7s6N...(shortened)</span>
437
+ <p>Components:</p>
438
+ <ul>
439
+ <li><code>AgentSession</code> -- budget tracking, rate limiting, TTL enforcement</li>
440
+ <li><code>PricingEngine</code> -- tier resolution, dynamic pricing, bundle discounts</li>
441
+ <li><code>ResponseValidator</code> -- SHA-256 attestation, integrity proofs</li>
442
+ <li><code>ToolMarketplace</code> -- listing, discovery, reputation scoring</li>
443
+ </ul>
444
+ <a id="md:x402-payment-protocol" class="tsd-anchor"></a><h3 class="tsd-anchor-link">x402 Payment Protocol<a href="#md:x402-payment-protocol" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Native HTTP 402 payment flow (v1/v2):</p>
445
+ <pre><code class="ts"><span class="hl-7">// Seller side</span><br/><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-2">X402Paywall</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-3">&#39;@oobe-protocol-labs/synapse-client-sdk&#39;</span><span class="hl-1">;</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">paywall</span><span class="hl-1"> = </span><span class="hl-4">new</span><span class="hl-1"> </span><span class="hl-6">X402Paywall</span><span class="hl-1">(</span><span class="hl-2">config</span><span class="hl-1">);</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">result</span><span class="hl-1"> = </span><span class="hl-0">await</span><span class="hl-1"> </span><span class="hl-2">paywall</span><span class="hl-1">.</span><span class="hl-6">processRequest</span><span class="hl-1">(</span><span class="hl-2">request</span><span class="hl-1">);</span><br/><br/><span class="hl-7">// Buyer side</span><br/><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-2">X402BuyerClient</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-3">&#39;@oobe-protocol-labs/synapse-client-sdk&#39;</span><span class="hl-1">;</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">buyer</span><span class="hl-1"> = </span><span class="hl-4">new</span><span class="hl-1"> </span><span class="hl-6">X402BuyerClient</span><span class="hl-1">(</span><span class="hl-2">config</span><span class="hl-1">);</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">response</span><span class="hl-1"> = </span><span class="hl-0">await</span><span class="hl-1"> </span><span class="hl-2">buyer</span><span class="hl-1">.</span><span class="hl-6">payAndRetry</span><span class="hl-1">(</span><span class="hl-2">url</span><span class="hl-1">, </span><span class="hl-2">options</span><span class="hl-1">);</span>
446
+ </code><button type="button">Copy</button></pre>
447
+
448
+ <p>Known facilitator registry:</p>
449
+ <pre><code class="ts"><span class="hl-0">import</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-2">KnownFacilitator</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">resolveKnownFacilitator</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">findFacilitatorsByNetwork</span><span class="hl-1">,</span><br/><span class="hl-1">} </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-3">&#39;@oobe-protocol-labs/synapse-client-sdk&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">config</span><span class="hl-1"> = </span><span class="hl-6">resolveKnownFacilitator</span><span class="hl-1">(</span><span class="hl-2">KnownFacilitator</span><span class="hl-1">.</span><span class="hl-2">PayAI</span><span class="hl-1">);</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-5">solanaFacilitators</span><span class="hl-1"> = </span><span class="hl-6">findFacilitatorsByNetwork</span><span class="hl-1">(</span><span class="hl-3">&#39;solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp&#39;</span><span class="hl-1">);</span>
456
450
  </code><button type="button">Copy</button></pre>
457
451
 
458
- <p><strong><a href="media/README-6.md">Read Full Documentation →</a></strong></p>
459
452
  <hr>
460
- <a id="md:performance-benchmarks" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Performance Benchmarks<a href="#md:performance-benchmarks" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><a id="md:latency-metrics" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Latency Metrics<a href="#md:latency-metrics" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><table>
453
+ <a id="md:testing" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Testing<a href="#md:testing" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>The project uses <a href="https://vitest.dev/" target="_blank" class="external">Vitest</a> with 378 tests across 10 suites.</p>
454
+ <pre><code class="bash"><span class="hl-7"># Run all tests</span><br/><span class="hl-6">pnpm</span><span class="hl-1"> </span><span class="hl-3">test</span><br/><br/><span class="hl-7"># Watch mode</span><br/><span class="hl-6">pnpm</span><span class="hl-1"> </span><span class="hl-3">test:watch</span><br/><br/><span class="hl-7"># Coverage</span><br/><span class="hl-6">pnpm</span><span class="hl-1"> </span><span class="hl-3">test:coverage</span>
455
+ </code><button type="button">Copy</button></pre>
456
+
457
+ <p>Test suites:</p>
458
+ <table>
461
459
  <thead>
462
460
  <tr>
463
- <th>Operation</th>
464
- <th>P50</th>
465
- <th>P95</th>
466
- <th>P99</th>
467
- <th>Throughput</th>
461
+ <th>Suite</th>
462
+ <th>File</th>
463
+ <th>Covers</th>
468
464
  </tr>
469
465
  </thead>
470
466
  <tbody>
471
467
  <tr>
472
- <td>Single RPC call (cached)</td>
473
- <td>&lt;1ms</td>
474
- <td>&lt;2ms</td>
475
- <td>&lt;5ms</td>
476
- <td>1M req/s</td>
468
+ <td>Endpoints</td>
469
+ <td><code>tests/utils/endpoints.test.ts</code></td>
470
+ <td>Network/region resolution, auto-select, constants</td>
477
471
  </tr>
478
472
  <tr>
479
- <td>Single RPC call (uncached)</td>
480
- <td>8ms</td>
481
- <td>15ms</td>
482
- <td>25ms</td>
483
- <td>10k req/s</td>
473
+ <td>gRPC Parser</td>
474
+ <td><code>tests/grpc/parser.test.ts</code></td>
475
+ <td>Decoders, program registry, GeyserParser class</td>
484
476
  </tr>
485
477
  <tr>
486
- <td>Batch RPC call (10 calls)</td>
487
- <td>25ms</td>
488
- <td>45ms</td>
489
- <td>80ms</td>
490
- <td>5k batch/s</td>
478
+ <td>Session</td>
479
+ <td><code>tests/ai/session.test.ts</code></td>
480
+ <td>Budget, rate limits, TTL, pause/resume, events</td>
491
481
  </tr>
492
482
  <tr>
493
- <td>WebSocket message delivery</td>
494
- <td>&lt;1ms</td>
495
- <td>&lt;3ms</td>
496
- <td>&lt;10ms</td>
497
- <td>100k msg/s</td>
483
+ <td>Gateway</td>
484
+ <td><code>tests/ai/gateway.test.ts</code></td>
485
+ <td>Full session lifecycle, execute, settle, metrics</td>
498
486
  </tr>
499
487
  <tr>
500
- <td>Cache hit (L1)</td>
501
- <td>&lt;0.5ms</td>
502
- <td>&lt;1ms</td>
503
- <td>&lt;2ms</td>
504
- <td>1M ops/s</td>
488
+ <td>x402</td>
489
+ <td><code>tests/ai/x402.test.ts</code></td>
490
+ <td>Paywall, facilitator, registry, header encoding</td>
505
491
  </tr>
506
492
  <tr>
507
- <td>Cache hit (L2)</td>
508
- <td>&lt;1ms</td>
509
- <td>&lt;2ms</td>
510
- <td>&lt;5ms</td>
511
- <td>500k ops/s</td>
493
+ <td>Validator</td>
494
+ <td><code>tests/ai/validator.test.ts</code></td>
495
+ <td>Attestation, integrity, signature verification</td>
512
496
  </tr>
513
497
  <tr>
514
- <td>Cache hit (L3 Redis)</td>
515
- <td>2ms</td>
516
- <td>8ms</td>
517
- <td>15ms</td>
518
- <td>50k ops/s</td>
498
+ <td>Marketplace</td>
499
+ <td><code>tests/ai/marketplace.test.ts</code></td>
500
+ <td>Listing, search, reputation, bundles</td>
519
501
  </tr>
520
502
  <tr>
521
- <td>Jupiter swap quote</td>
522
- <td>150ms</td>
523
- <td>250ms</td>
524
- <td>400ms</td>
525
- <td>500 req/s</td>
503
+ <td>Pricing</td>
504
+ <td><code>tests/ai/pricing.test.ts</code></td>
505
+ <td>Tiers, dynamic pricing, cost estimation</td>
526
506
  </tr>
527
507
  <tr>
528
- <td>NFT metadata fetch (cached)</td>
529
- <td>5ms</td>
530
- <td>15ms</td>
531
- <td>30ms</td>
532
- <td>10k req/s</td>
508
+ <td>Protocols</td>
509
+ <td><code>tests/ai/protocols.test.ts</code></td>
510
+ <td>Jupiter/Raydium/Metaplex schemas and tools</td>
533
511
  </tr>
534
512
  <tr>
535
- <td>Circuit breaker overhead</td>
536
- <td>&lt;0.1ms</td>
537
- <td>&lt;0.5ms</td>
538
- <td>&lt;1ms</td>
539
- <td>1M ops/s</td>
513
+ <td>Tools</td>
514
+ <td><code>tests/ai/tools.test.ts</code></td>
515
+ <td>Zod registry, executable tool creation, execution</td>
540
516
  </tr>
541
517
  </tbody>
542
518
  </table>
543
- <a id="md:load-testing-results" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Load Testing Results<a href="#md:load-testing-results" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code><span class="hl-1">Test</span><span class="hl-0"> </span><span class="hl-11">Configuration</span><span class="hl-0">:</span><br/><span class="hl-0">- </span><span class="hl-11">Duration</span><span class="hl-0">: </span><span class="hl-8">5</span><span class="hl-0"> </span><span class="hl-1">minutes</span><br/><span class="hl-0">- </span><span class="hl-1">Concurrent</span><span class="hl-0"> </span><span class="hl-11">users</span><span class="hl-0">: </span><span class="hl-8">1000</span><br/><span class="hl-0">- </span><span class="hl-2">RPC</span><span class="hl-0"> </span><span class="hl-11">endpoints</span><span class="hl-0">: </span><span class="hl-8">3</span><span class="hl-0"> (</span><span class="hl-1">load</span><span class="hl-0"> </span><span class="hl-1">balanced</span><span class="hl-0">)</span><br/><span class="hl-0">- </span><span class="hl-11">Operations</span><span class="hl-0">: </span><span class="hl-3">Mixed</span><span class="hl-0"> (</span><span class="hl-8">50</span><span class="hl-0">% </span><span class="hl-1">reads</span><span class="hl-0">, </span><span class="hl-8">30</span><span class="hl-0">% </span><span class="hl-1">writes</span><span class="hl-0">, </span><span class="hl-8">20</span><span class="hl-0">% </span><span class="hl-1">batch</span><span class="hl-0">)</span><br/><br/><span class="hl-11">Results</span><span class="hl-0">:</span><br/><span class="hl-0">✓ </span><span class="hl-1">Total</span><span class="hl-0"> </span><span class="hl-11">requests</span><span class="hl-0">: </span><span class="hl-8">3</span><span class="hl-0">,</span><span class="hl-8">315</span><span class="hl-0">,</span><span class="hl-8">000</span><br/><span class="hl-0">✓ </span><span class="hl-11">Successful</span><span class="hl-0">: </span><span class="hl-8">3</span><span class="hl-0">,</span><span class="hl-8">312</span><span class="hl-0">,</span><span class="hl-8">450</span><span class="hl-0"> (</span><span class="hl-8">99.92</span><span class="hl-0">%)</span><br/><span class="hl-0">✓ </span><span class="hl-11">Failed</span><span class="hl-0">: </span><span class="hl-8">2</span><span class="hl-0">,</span><span class="hl-8">550</span><span class="hl-0"> (</span><span class="hl-8">0.08</span><span class="hl-0">%)</span><br/><span class="hl-0">✓ </span><span class="hl-1">Average</span><span class="hl-0"> </span><span class="hl-11">RPS</span><span class="hl-0">: </span><span class="hl-8">11</span><span class="hl-0">,</span><span class="hl-8">050</span><br/><span class="hl-0">✓ </span><span class="hl-1">Peak</span><span class="hl-0"> </span><span class="hl-11">RPS</span><span class="hl-0">: </span><span class="hl-8">15</span><span class="hl-0">,</span><span class="hl-8">230</span><br/><span class="hl-0">✓ </span><span class="hl-1">Average</span><span class="hl-0"> </span><span class="hl-11">latency</span><span class="hl-0">: 12.5</span><span class="hl-1">ms</span><br/><span class="hl-0">✓ </span><span class="hl-2">P95</span><span class="hl-0"> </span><span class="hl-11">latency</span><span class="hl-0">: 28</span><span class="hl-1">ms</span><br/><span class="hl-0">✓ </span><span class="hl-2">P99</span><span class="hl-0"> </span><span class="hl-11">latency</span><span class="hl-0">: 45</span><span class="hl-1">ms</span><br/><span class="hl-0">✓ </span><span class="hl-1">Cache</span><span class="hl-0"> </span><span class="hl-1">hit</span><span class="hl-0"> </span><span class="hl-11">rate</span><span class="hl-0">: </span><span class="hl-8">94.3</span><span class="hl-0">%</span><br/><span class="hl-0">✓ </span><span class="hl-1">Circuit</span><span class="hl-0"> </span><span class="hl-1">breaker</span><span class="hl-0"> </span><span class="hl-11">trips</span><span class="hl-0">: </span><span class="hl-8">3</span><br/><span class="hl-0">✓ </span><span class="hl-1">Endpoint</span><span class="hl-0"> </span><span class="hl-11">failovers</span><span class="hl-0">: </span><span class="hl-8">12</span>
544
- </code><button>Copy</button></pre>
545
-
546
519
  <hr>
547
- <a id="md:type-system" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Type System<a href="#md:type-system" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><a id="md:core-types" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Core Types<a href="#md:core-types" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="typescript"><span class="hl-5">// Client configuration</span><br/><span class="hl-6">export</span><span class="hl-0"> </span><span class="hl-7">interface</span><span class="hl-0"> </span><span class="hl-9">SynapseConfig</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">endpoint</span><span class="hl-0">: </span><span class="hl-9">string</span><span class="hl-0"> | </span><span class="hl-9">string</span><span class="hl-0">[];</span><br/><span class="hl-0"> </span><span class="hl-1">apiKey</span><span class="hl-0">?: </span><span class="hl-9">string</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">timeout</span><span class="hl-0">?: </span><span class="hl-9">number</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">debug</span><span class="hl-0">?: </span><span class="hl-9">boolean</span><span class="hl-0">;</span><br/><span class="hl-0">}</span><br/><br/><span class="hl-5">// RPC request/response</span><br/><span class="hl-6">export</span><span class="hl-0"> </span><span class="hl-7">interface</span><span class="hl-0"> </span><span class="hl-9">RpcRequest</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">jsonrpc</span><span class="hl-0">: </span><span class="hl-4">&#39;2.0&#39;</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">id</span><span class="hl-0">: </span><span class="hl-9">number</span><span class="hl-0"> | </span><span class="hl-9">string</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">method</span><span class="hl-0">: </span><span class="hl-9">string</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">params</span><span class="hl-0">?: </span><span class="hl-9">any</span><span class="hl-0">[];</span><br/><span class="hl-0">}</span><br/><br/><span class="hl-6">export</span><span class="hl-0"> </span><span class="hl-7">interface</span><span class="hl-0"> </span><span class="hl-9">RpcResponse</span><span class="hl-0">&lt;</span><span class="hl-9">T</span><span class="hl-0"> = </span><span class="hl-9">any</span><span class="hl-0">&gt; {</span><br/><span class="hl-0"> </span><span class="hl-1">jsonrpc</span><span class="hl-0">: </span><span class="hl-4">&#39;2.0&#39;</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">id</span><span class="hl-0">: </span><span class="hl-9">number</span><span class="hl-0"> | </span><span class="hl-9">string</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">result</span><span class="hl-0">?: </span><span class="hl-9">T</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">error</span><span class="hl-0">?: </span><span class="hl-9">RpcError</span><span class="hl-0">;</span><br/><span class="hl-0">}</span><br/><br/><span class="hl-6">export</span><span class="hl-0"> </span><span class="hl-7">interface</span><span class="hl-0"> </span><span class="hl-9">RpcError</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">code</span><span class="hl-0">: </span><span class="hl-9">number</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">message</span><span class="hl-0">: </span><span class="hl-9">string</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">data</span><span class="hl-0">?: </span><span class="hl-9">any</span><span class="hl-0">;</span><br/><span class="hl-0">}</span><br/><br/><span class="hl-5">// Request options</span><br/><span class="hl-6">export</span><span class="hl-0"> </span><span class="hl-7">interface</span><span class="hl-0"> </span><span class="hl-9">RequestOptions</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">commitment</span><span class="hl-0">?: </span><span class="hl-4">&#39;processed&#39;</span><span class="hl-0"> | </span><span class="hl-4">&#39;confirmed&#39;</span><span class="hl-0"> | </span><span class="hl-4">&#39;finalized&#39;</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">encoding</span><span class="hl-0">?: </span><span class="hl-4">&#39;base58&#39;</span><span class="hl-0"> | </span><span class="hl-4">&#39;base64&#39;</span><span class="hl-0"> | </span><span class="hl-4">&#39;base64+zstd&#39;</span><span class="hl-0"> | </span><span class="hl-4">&#39;jsonParsed&#39;</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">maxSupportedTransactionVersion</span><span class="hl-0">?: </span><span class="hl-9">number</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">skipPreflight</span><span class="hl-0">?: </span><span class="hl-9">boolean</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">preflightCommitment</span><span class="hl-0">?: </span><span class="hl-4">&#39;processed&#39;</span><span class="hl-0"> | </span><span class="hl-4">&#39;confirmed&#39;</span><span class="hl-0"> | </span><span class="hl-4">&#39;finalized&#39;</span><span class="hl-0">;</span><br/><span class="hl-0">}</span><br/><br/><span class="hl-5">// Client statistics</span><br/><span class="hl-6">export</span><span class="hl-0"> </span><span class="hl-7">interface</span><span class="hl-0"> </span><span class="hl-9">ClientStats</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">requestCount</span><span class="hl-0">: </span><span class="hl-9">number</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">errorCount</span><span class="hl-0">: </span><span class="hl-9">number</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">averageLatency</span><span class="hl-0">: </span><span class="hl-9">number</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">cacheHitRate</span><span class="hl-0">: </span><span class="hl-9">number</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">uptime</span><span class="hl-0">: </span><span class="hl-9">number</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">activeConnections</span><span class="hl-0">: </span><span class="hl-9">number</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">pendingRequests</span><span class="hl-0">: </span><span class="hl-9">number</span><span class="hl-0">;</span><br/><span class="hl-0">}</span><br/><br/><span class="hl-5">// Account info</span><br/><span class="hl-6">export</span><span class="hl-0"> </span><span class="hl-7">interface</span><span class="hl-0"> </span><span class="hl-9">AccountInfo</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">lamports</span><span class="hl-0">: </span><span class="hl-9">number</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">owner</span><span class="hl-0">: </span><span class="hl-9">string</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">data</span><span class="hl-0">: </span><span class="hl-9">Buffer</span><span class="hl-0"> | </span><span class="hl-9">string</span><span class="hl-0"> | </span><span class="hl-9">any</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">executable</span><span class="hl-0">: </span><span class="hl-9">boolean</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-1">rentEpoch</span><span class="hl-0">: </span><span class="hl-9">number</span><span class="hl-0">;</span><br/><span class="hl-0">}</span>
520
+ <a id="md:build-and-development" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Build and Development<a href="#md:build-and-development" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><pre><code class="bash"><span class="hl-7"># Type-check (no emit)</span><br/><span class="hl-6">pnpm</span><span class="hl-1"> </span><span class="hl-3">typecheck</span><br/><br/><span class="hl-7"># Build CJS + ESM + docs</span><br/><span class="hl-6">pnpm</span><span class="hl-1"> </span><span class="hl-3">build</span><br/><br/><span class="hl-7"># Watch mode (TypeScript)</span><br/><span class="hl-6">pnpm</span><span class="hl-1"> </span><span class="hl-3">dev</span><br/><br/><span class="hl-7"># Lint</span><br/><span class="hl-6">pnpm</span><span class="hl-1"> </span><span class="hl-3">lint</span><br/><span class="hl-6">pnpm</span><span class="hl-1"> </span><span class="hl-3">lint:check</span>
548
521
  </code><button type="button">Copy</button></pre>
549
522
 
550
- <a id="md:error-types" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Error Types<a href="#md:error-types" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="typescript"><span class="hl-6">export</span><span class="hl-0"> </span><span class="hl-7">class</span><span class="hl-0"> </span><span class="hl-9">SynapseError</span><span class="hl-0"> </span><span class="hl-7">extends</span><span class="hl-0"> </span><span class="hl-9">Error</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-7">constructor</span><span class="hl-0">(</span><br/><span class="hl-0"> </span><span class="hl-1">message</span><span class="hl-0">: </span><span class="hl-9">string</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-7">public</span><span class="hl-0"> </span><span class="hl-1">code</span><span class="hl-0">?: </span><span class="hl-9">number</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-7">public</span><span class="hl-0"> </span><span class="hl-1">data</span><span class="hl-0">?: </span><span class="hl-9">any</span><br/><span class="hl-0"> ) {</span><br/><span class="hl-0"> </span><span class="hl-7">super</span><span class="hl-0">(</span><span class="hl-1">message</span><span class="hl-0">);</span><br/><span class="hl-0"> </span><span class="hl-7">this</span><span class="hl-0">.</span><span class="hl-1">name</span><span class="hl-0"> = </span><span class="hl-4">&#39;SynapseError&#39;</span><span class="hl-0">;</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span><br/><br/><span class="hl-6">export</span><span class="hl-0"> </span><span class="hl-7">class</span><span class="hl-0"> </span><span class="hl-9">NetworkError</span><span class="hl-0"> </span><span class="hl-7">extends</span><span class="hl-0"> </span><span class="hl-9">SynapseError</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-7">constructor</span><span class="hl-0">(</span><br/><span class="hl-0"> </span><span class="hl-1">message</span><span class="hl-0">: </span><span class="hl-9">string</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-7">public</span><span class="hl-0"> </span><span class="hl-1">statusCode</span><span class="hl-0">?: </span><span class="hl-9">number</span><br/><span class="hl-0"> ) {</span><br/><span class="hl-0"> </span><span class="hl-7">super</span><span class="hl-0">(</span><span class="hl-1">message</span><span class="hl-0">, -</span><span class="hl-8">32000</span><span class="hl-0">);</span><br/><span class="hl-0"> </span><span class="hl-7">this</span><span class="hl-0">.</span><span class="hl-1">name</span><span class="hl-0"> = </span><span class="hl-4">&#39;NetworkError&#39;</span><span class="hl-0">;</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span><br/><br/><span class="hl-6">export</span><span class="hl-0"> </span><span class="hl-7">class</span><span class="hl-0"> </span><span class="hl-9">TimeoutError</span><span class="hl-0"> </span><span class="hl-7">extends</span><span class="hl-0"> </span><span class="hl-9">SynapseError</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-7">constructor</span><span class="hl-0">(</span><span class="hl-1">message</span><span class="hl-0">: </span><span class="hl-9">string</span><span class="hl-0">) {</span><br/><span class="hl-0"> </span><span class="hl-7">super</span><span class="hl-0">(</span><span class="hl-1">message</span><span class="hl-0">, -</span><span class="hl-8">32001</span><span class="hl-0">);</span><br/><span class="hl-0"> </span><span class="hl-7">this</span><span class="hl-0">.</span><span class="hl-1">name</span><span class="hl-0"> = </span><span class="hl-4">&#39;TimeoutError&#39;</span><span class="hl-0">;</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span><br/><br/><span class="hl-6">export</span><span class="hl-0"> </span><span class="hl-7">class</span><span class="hl-0"> </span><span class="hl-9">ValidationError</span><span class="hl-0"> </span><span class="hl-7">extends</span><span class="hl-0"> </span><span class="hl-9">SynapseError</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-7">constructor</span><span class="hl-0">(</span><br/><span class="hl-0"> </span><span class="hl-1">message</span><span class="hl-0">: </span><span class="hl-9">string</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-7">public</span><span class="hl-0"> </span><span class="hl-1">field</span><span class="hl-0">?: </span><span class="hl-9">string</span><br/><span class="hl-0"> ) {</span><br/><span class="hl-0"> </span><span class="hl-7">super</span><span class="hl-0">(</span><span class="hl-1">message</span><span class="hl-0">, -</span><span class="hl-8">32602</span><span class="hl-0">);</span><br/><span class="hl-0"> </span><span class="hl-7">this</span><span class="hl-0">.</span><span class="hl-1">name</span><span class="hl-0"> = </span><span class="hl-4">&#39;ValidationError&#39;</span><span class="hl-0">;</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span><br/><br/><span class="hl-6">export</span><span class="hl-0"> </span><span class="hl-7">class</span><span class="hl-0"> </span><span class="hl-9">CircuitBreakerError</span><span class="hl-0"> </span><span class="hl-7">extends</span><span class="hl-0"> </span><span class="hl-9">SynapseError</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-7">constructor</span><span class="hl-0">(</span><span class="hl-1">message</span><span class="hl-0">: </span><span class="hl-9">string</span><span class="hl-0">) {</span><br/><span class="hl-0"> </span><span class="hl-7">super</span><span class="hl-0">(</span><span class="hl-1">message</span><span class="hl-0">, -</span><span class="hl-8">32003</span><span class="hl-0">);</span><br/><span class="hl-0"> </span><span class="hl-7">this</span><span class="hl-0">.</span><span class="hl-1">name</span><span class="hl-0"> = </span><span class="hl-4">&#39;CircuitBreakerError&#39;</span><span class="hl-0">;</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span>
551
- </code><button type="button">Copy</button></pre>
523
+ <p>The build pipeline:</p>
524
+ <ol>
525
+ <li><code>tsc -p tsconfig.cjs.json</code> -- compile to <code>dist/cjs/</code> (CommonJS)</li>
526
+ <li><code>tsc -p tsconfig.esm.json</code> -- compile to <code>dist/esm/</code> (ES Modules)</li>
527
+ <li><code>scripts/fix-esm-imports.mjs</code> -- append <code>.js</code> extensions to ESM imports</li>
528
+ <li><code>typedoc</code> -- generate API reference in <code>dist/docs/</code></li>
529
+ </ol>
530
+ <p>Output structure:</p>
531
+ <pre><code><span class="hl-2">dist</span><span class="hl-1">/</span><br/><span class="hl-1"> </span><span class="hl-2">cjs</span><span class="hl-1">/ </span><span class="hl-2">CommonJS</span><span class="hl-1"> </span><span class="hl-2">build</span><br/><span class="hl-1"> </span><span class="hl-2">esm</span><span class="hl-1">/ </span><span class="hl-5">ES</span><span class="hl-1"> </span><span class="hl-2">Module</span><span class="hl-1"> </span><span class="hl-2">build</span><br/><span class="hl-1"> </span><span class="hl-2">docs</span><span class="hl-1">/ </span><span class="hl-2">TypeDoc</span><span class="hl-1"> </span><span class="hl-5">HTML</span><span class="hl-1"> </span><span class="hl-2">reference</span>
532
+ </code><button>Copy</button></pre>
552
533
 
553
534
  <hr>
554
- <a id="md:best-practices" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Best Practices<a href="#md:best-practices" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><a id="md:1-connection-management" class="tsd-anchor"></a><h3 class="tsd-anchor-link">1. Connection Management<a href="#md:1-connection-management" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="typescript"><span class="hl-5">// ✅ Recommended: Singleton pattern</span><br/><span class="hl-7">class</span><span class="hl-0"> </span><span class="hl-9">SynapseService</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-7">private</span><span class="hl-0"> </span><span class="hl-7">static</span><span class="hl-0"> </span><span class="hl-1">instance</span><span class="hl-0">: </span><span class="hl-9">SynapseClient</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><br/><span class="hl-0"> </span><span class="hl-7">static</span><span class="hl-0"> </span><span class="hl-3">getInstance</span><span class="hl-0">(): </span><span class="hl-9">SynapseClient</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-6">if</span><span class="hl-0"> (!</span><span class="hl-7">this</span><span class="hl-0">.</span><span class="hl-1">instance</span><span class="hl-0">) {</span><br/><span class="hl-0"> </span><span class="hl-7">this</span><span class="hl-0">.</span><span class="hl-1">instance</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">SynapseClient</span><span class="hl-0">({</span><br/><span class="hl-0"> </span><span class="hl-1">endpoint:</span><span class="hl-0"> </span><span class="hl-1">process</span><span class="hl-0">.</span><span class="hl-1">env</span><span class="hl-0">.</span><span class="hl-2">SYNAPSE_ENDPOINT</span><span class="hl-0">!,</span><br/><span class="hl-0"> </span><span class="hl-1">apiKey:</span><span class="hl-0"> </span><span class="hl-1">process</span><span class="hl-0">.</span><span class="hl-1">env</span><span class="hl-0">.</span><span class="hl-2">SYNAPSE_API_KEY</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">timeout:</span><span class="hl-0"> </span><span class="hl-8">30000</span><span class="hl-0">,</span><br/><span class="hl-0"> });</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> </span><span class="hl-6">return</span><span class="hl-0"> </span><span class="hl-7">this</span><span class="hl-0">.</span><span class="hl-1">instance</span><span class="hl-0">;</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span><br/><br/><span class="hl-5">// Usage</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">client</span><span class="hl-0"> = </span><span class="hl-1">SynapseService</span><span class="hl-0">.</span><span class="hl-3">getInstance</span><span class="hl-0">();</span><br/><br/><span class="hl-5">// ❌ Not recommended: New client per request</span><br/><span class="hl-7">function</span><span class="hl-0"> </span><span class="hl-3">getBalance</span><span class="hl-0">(</span><span class="hl-1">address</span><span class="hl-0">: </span><span class="hl-9">string</span><span class="hl-0">) {</span><br/><span class="hl-0"> </span><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">client</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">SynapseClient</span><span class="hl-0">({ </span><span class="hl-1">endpoint:</span><span class="hl-0"> </span><span class="hl-4">&#39;...&#39;</span><span class="hl-0"> }); </span><span class="hl-5">// Avoid this</span><br/><span class="hl-0"> </span><span class="hl-6">return</span><span class="hl-0"> </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">call</span><span class="hl-0">(</span><span class="hl-4">&#39;getBalance&#39;</span><span class="hl-0">, [</span><span class="hl-1">address</span><span class="hl-0">]);</span><br/><span class="hl-0">}</span>
555
- </code><button type="button">Copy</button></pre>
556
-
557
- <a id="md:2-error-handling" class="tsd-anchor"></a><h3 class="tsd-anchor-link">2. Error Handling<a href="#md:2-error-handling" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="typescript"><span class="hl-6">import</span><span class="hl-0"> { </span><span class="hl-1">SynapseError</span><span class="hl-0">, </span><span class="hl-1">NetworkError</span><span class="hl-0">, </span><span class="hl-1">TimeoutError</span><span class="hl-0"> } </span><span class="hl-6">from</span><span class="hl-0"> </span><span class="hl-4">&#39;@synapse/client-sdk&#39;</span><span class="hl-0">;</span><br/><br/><span class="hl-7">async</span><span class="hl-0"> </span><span class="hl-7">function</span><span class="hl-0"> </span><span class="hl-3">robustRpcCall</span><span class="hl-0">&lt;</span><span class="hl-9">T</span><span class="hl-0">&gt;(</span><br/><span class="hl-0"> </span><span class="hl-1">method</span><span class="hl-0">: </span><span class="hl-9">string</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">params</span><span class="hl-0">: </span><span class="hl-9">any</span><span class="hl-0">[],</span><br/><span class="hl-0"> </span><span class="hl-1">maxRetries</span><span class="hl-0">: </span><span class="hl-9">number</span><span class="hl-0"> = </span><span class="hl-8">3</span><br/><span class="hl-0">): </span><span class="hl-9">Promise</span><span class="hl-0">&lt;</span><span class="hl-9">T</span><span class="hl-0">&gt; {</span><br/><span class="hl-0"> </span><span class="hl-6">for</span><span class="hl-0"> (</span><span class="hl-7">let</span><span class="hl-0"> </span><span class="hl-1">attempt</span><span class="hl-0"> = </span><span class="hl-8">1</span><span class="hl-0">; </span><span class="hl-1">attempt</span><span class="hl-0"> &lt;= </span><span class="hl-1">maxRetries</span><span class="hl-0">; </span><span class="hl-1">attempt</span><span class="hl-0">++) {</span><br/><span class="hl-0"> </span><span class="hl-6">try</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-6">return</span><span class="hl-0"> </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">call</span><span class="hl-0">&lt;</span><span class="hl-9">T</span><span class="hl-0">&gt;(</span><span class="hl-1">method</span><span class="hl-0">, </span><span class="hl-1">params</span><span class="hl-0">);</span><br/><span class="hl-0"> } </span><span class="hl-6">catch</span><span class="hl-0"> (</span><span class="hl-1">error</span><span class="hl-0">) {</span><br/><span class="hl-0"> </span><span class="hl-6">if</span><span class="hl-0"> (</span><span class="hl-1">error</span><span class="hl-0"> </span><span class="hl-7">instanceof</span><span class="hl-0"> </span><span class="hl-9">TimeoutError</span><span class="hl-0">) {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">warn</span><span class="hl-0">(</span><span class="hl-4">`Timeout on attempt </span><span class="hl-7">${</span><span class="hl-1">attempt</span><span class="hl-7">}</span><span class="hl-4">/</span><span class="hl-7">${</span><span class="hl-1">maxRetries</span><span class="hl-7">}</span><span class="hl-4">`</span><span class="hl-0">);</span><br/><span class="hl-0"> </span><span class="hl-6">if</span><span class="hl-0"> (</span><span class="hl-1">attempt</span><span class="hl-0"> === </span><span class="hl-1">maxRetries</span><span class="hl-0">) </span><span class="hl-6">throw</span><span class="hl-0"> </span><span class="hl-1">error</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-3">sleep</span><span class="hl-0">(</span><span class="hl-8">1000</span><span class="hl-0"> * </span><span class="hl-1">attempt</span><span class="hl-0">); </span><span class="hl-5">// Exponential backoff</span><br/><span class="hl-0"> } </span><span class="hl-6">else</span><span class="hl-0"> </span><span class="hl-6">if</span><span class="hl-0"> (</span><span class="hl-1">error</span><span class="hl-0"> </span><span class="hl-7">instanceof</span><span class="hl-0"> </span><span class="hl-9">NetworkError</span><span class="hl-0">) {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">error</span><span class="hl-0">(</span><span class="hl-4">&#39;Network error:&#39;</span><span class="hl-0">, </span><span class="hl-1">error</span><span class="hl-0">.</span><span class="hl-1">statusCode</span><span class="hl-0">, </span><span class="hl-1">error</span><span class="hl-0">.</span><span class="hl-1">message</span><span class="hl-0">);</span><br/><span class="hl-0"> </span><span class="hl-6">if</span><span class="hl-0"> (</span><span class="hl-1">attempt</span><span class="hl-0"> === </span><span class="hl-1">maxRetries</span><span class="hl-0">) </span><span class="hl-6">throw</span><span class="hl-0"> </span><span class="hl-1">error</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-3">sleep</span><span class="hl-0">(</span><span class="hl-8">2000</span><span class="hl-0"> * </span><span class="hl-1">attempt</span><span class="hl-0">);</span><br/><span class="hl-0"> } </span><span class="hl-6">else</span><span class="hl-0"> </span><span class="hl-6">if</span><span class="hl-0"> (</span><span class="hl-1">error</span><span class="hl-0"> </span><span class="hl-7">instanceof</span><span class="hl-0"> </span><span class="hl-9">SynapseError</span><span class="hl-0">) {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">error</span><span class="hl-0">(</span><span class="hl-4">&#39;RPC error:&#39;</span><span class="hl-0">, </span><span class="hl-1">error</span><span class="hl-0">.</span><span class="hl-1">code</span><span class="hl-0">, </span><span class="hl-1">error</span><span class="hl-0">.</span><span class="hl-1">message</span><span class="hl-0">);</span><br/><span class="hl-0"> </span><span class="hl-6">throw</span><span class="hl-0"> </span><span class="hl-1">error</span><span class="hl-0">; </span><span class="hl-5">// Don&#39;t retry RPC errors</span><br/><span class="hl-0"> } </span><span class="hl-6">else</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-6">throw</span><span class="hl-0"> </span><span class="hl-1">error</span><span class="hl-0">; </span><span class="hl-5">// Unknown error</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> </span><span class="hl-6">throw</span><span class="hl-0"> </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">Error</span><span class="hl-0">(</span><span class="hl-4">&#39;Max retries exceeded&#39;</span><span class="hl-0">);</span><br/><span class="hl-0">}</span>
558
- </code><button type="button">Copy</button></pre>
559
-
560
- <a id="md:3-batch-operations" class="tsd-anchor"></a><h3 class="tsd-anchor-link">3. Batch Operations<a href="#md:3-batch-operations" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="typescript"><span class="hl-5">// ✅ Efficient: Batch related calls</span><br/><span class="hl-7">const</span><span class="hl-0"> [</span><span class="hl-2">balance1</span><span class="hl-0">, </span><span class="hl-2">balance2</span><span class="hl-0">, </span><span class="hl-2">balance3</span><span class="hl-0">, </span><span class="hl-2">accountInfo</span><span class="hl-0">] = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-9">Promise</span><span class="hl-0">.</span><span class="hl-3">all</span><span class="hl-0">([</span><br/><span class="hl-0"> </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">call</span><span class="hl-0">(</span><span class="hl-4">&#39;getBalance&#39;</span><span class="hl-0">, [</span><span class="hl-4">&#39;address1&#39;</span><span class="hl-0">]),</span><br/><span class="hl-0"> </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">call</span><span class="hl-0">(</span><span class="hl-4">&#39;getBalance&#39;</span><span class="hl-0">, [</span><span class="hl-4">&#39;address2&#39;</span><span class="hl-0">]),</span><br/><span class="hl-0"> </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">call</span><span class="hl-0">(</span><span class="hl-4">&#39;getBalance&#39;</span><span class="hl-0">, [</span><span class="hl-4">&#39;address3&#39;</span><span class="hl-0">]),</span><br/><span class="hl-0"> </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">call</span><span class="hl-0">(</span><span class="hl-4">&#39;getAccountInfo&#39;</span><span class="hl-0">, [</span><span class="hl-4">&#39;address4&#39;</span><span class="hl-0">]),</span><br/><span class="hl-0">]);</span><br/><br/><span class="hl-5">// Or use batch method</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">results</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">batch</span><span class="hl-0">([</span><br/><span class="hl-0"> { </span><span class="hl-1">method:</span><span class="hl-0"> </span><span class="hl-4">&#39;getBalance&#39;</span><span class="hl-0">, </span><span class="hl-1">params:</span><span class="hl-0"> [</span><span class="hl-4">&#39;address1&#39;</span><span class="hl-0">] },</span><br/><span class="hl-0"> { </span><span class="hl-1">method:</span><span class="hl-0"> </span><span class="hl-4">&#39;getBalance&#39;</span><span class="hl-0">, </span><span class="hl-1">params:</span><span class="hl-0"> [</span><span class="hl-4">&#39;address2&#39;</span><span class="hl-0">] },</span><br/><span class="hl-0"> { </span><span class="hl-1">method:</span><span class="hl-0"> </span><span class="hl-4">&#39;getBalance&#39;</span><span class="hl-0">, </span><span class="hl-1">params:</span><span class="hl-0"> [</span><span class="hl-4">&#39;address3&#39;</span><span class="hl-0">] },</span><br/><span class="hl-0"> { </span><span class="hl-1">method:</span><span class="hl-0"> </span><span class="hl-4">&#39;getAccountInfo&#39;</span><span class="hl-0">, </span><span class="hl-1">params:</span><span class="hl-0"> [</span><span class="hl-4">&#39;address4&#39;</span><span class="hl-0">] },</span><br/><span class="hl-0">]);</span><br/><br/><span class="hl-5">// ❌ Inefficient: Sequential calls</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">balance1</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">call</span><span class="hl-0">(</span><span class="hl-4">&#39;getBalance&#39;</span><span class="hl-0">, [</span><span class="hl-4">&#39;address1&#39;</span><span class="hl-0">]);</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">balance2</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">call</span><span class="hl-0">(</span><span class="hl-4">&#39;getBalance&#39;</span><span class="hl-0">, [</span><span class="hl-4">&#39;address2&#39;</span><span class="hl-0">]);</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">balance3</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">call</span><span class="hl-0">(</span><span class="hl-4">&#39;getBalance&#39;</span><span class="hl-0">, [</span><span class="hl-4">&#39;address3&#39;</span><span class="hl-0">]);</span>
535
+ <a id="md:package-exports" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Package Exports<a href="#md:package-exports" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>The package exposes granular entry points for consumers that need only a subset:</p>
536
+ <pre><code class="json"><span class="hl-1">{</span><br/><span class="hl-1"> </span><span class="hl-9">&quot;.&quot;</span><span class="hl-1">: </span><span class="hl-3">&quot;Full SDK&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-9">&quot;./core&quot;</span><span class="hl-1">: </span><span class="hl-3">&quot;SynapseClient class only&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-9">&quot;./core/types&quot;</span><span class="hl-1">: </span><span class="hl-3">&quot;Branded types and RPC type definitions&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-9">&quot;./rpc&quot;</span><span class="hl-1">: </span><span class="hl-3">&quot;SolanaRpc facade + all 53 method functions&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-9">&quot;./grpc&quot;</span><span class="hl-1">: </span><span class="hl-3">&quot;GrpcTransport + Geyser parser&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-9">&quot;./das&quot;</span><span class="hl-1">: </span><span class="hl-3">&quot;DasClient + 11 DAS method functions&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-9">&quot;./websocket&quot;</span><span class="hl-1">: </span><span class="hl-3">&quot;WsClient + subscription types&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-9">&quot;./utils&quot;</span><span class="hl-1">: </span><span class="hl-3">&quot;Helpers + endpoint resolution&quot;</span><br/><span class="hl-1">}</span>
561
537
  </code><button type="button">Copy</button></pre>
562
538
 
563
- <a id="md:4-caching-strategy" class="tsd-anchor"></a><h3 class="tsd-anchor-link">4. Caching Strategy<a href="#md:4-caching-strategy" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="typescript"><span class="hl-6">import</span><span class="hl-0"> { </span><span class="hl-1">SmartCaching</span><span class="hl-0"> } </span><span class="hl-6">from</span><span class="hl-0"> </span><span class="hl-4">&#39;@synapse/client-sdk/advanced&#39;</span><span class="hl-0">;</span><br/><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">cache</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">SmartCaching</span><span class="hl-0">({</span><br/><span class="hl-0"> </span><span class="hl-1">maxSize:</span><span class="hl-0"> </span><span class="hl-8">10000</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">enableL2:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">enablePredictive:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0">,</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-7">async</span><span class="hl-0"> </span><span class="hl-7">function</span><span class="hl-0"> </span><span class="hl-3">getAccountInfoCached</span><span class="hl-0">(</span><span class="hl-1">address</span><span class="hl-0">: </span><span class="hl-9">string</span><span class="hl-0">): </span><span class="hl-9">Promise</span><span class="hl-0">&lt;</span><span class="hl-9">AccountInfo</span><span class="hl-0">&gt; {</span><br/><span class="hl-0"> </span><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">cacheKey</span><span class="hl-0"> = </span><span class="hl-4">`account:</span><span class="hl-7">${</span><span class="hl-1">address</span><span class="hl-7">}</span><span class="hl-4">`</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><br/><span class="hl-0"> </span><span class="hl-5">// Check cache first</span><br/><span class="hl-0"> </span><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">cached</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">cache</span><span class="hl-0">.</span><span class="hl-3">get</span><span class="hl-0">&lt;</span><span class="hl-9">AccountInfo</span><span class="hl-0">&gt;(</span><span class="hl-1">cacheKey</span><span class="hl-0">);</span><br/><span class="hl-0"> </span><span class="hl-6">if</span><span class="hl-0"> (</span><span class="hl-1">cached</span><span class="hl-0">) </span><span class="hl-6">return</span><span class="hl-0"> </span><span class="hl-1">cached</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><br/><span class="hl-0"> </span><span class="hl-5">// Fetch from RPC</span><br/><span class="hl-0"> </span><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">accountInfo</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">call</span><span class="hl-0">&lt;</span><span class="hl-9">AccountInfo</span><span class="hl-0">&gt;(</span><span class="hl-4">&#39;getAccountInfo&#39;</span><span class="hl-0">, [</span><span class="hl-1">address</span><span class="hl-0">]);</span><br/><span class="hl-0"> </span><br/><span class="hl-0"> </span><span class="hl-5">// Store in cache with appropriate TTL</span><br/><span class="hl-0"> </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">cache</span><span class="hl-0">.</span><span class="hl-3">set</span><span class="hl-0">(</span><span class="hl-1">cacheKey</span><span class="hl-0">, </span><span class="hl-1">accountInfo</span><span class="hl-0">, {</span><br/><span class="hl-0"> </span><span class="hl-1">ttl:</span><span class="hl-0"> </span><span class="hl-8">60000</span><span class="hl-0">, </span><span class="hl-5">// 1 minute for account data</span><br/><span class="hl-0"> </span><span class="hl-1">compress:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">tags:</span><span class="hl-0"> [</span><span class="hl-4">`user:</span><span class="hl-7">${</span><span class="hl-1">address</span><span class="hl-7">}</span><span class="hl-4">`</span><span class="hl-0">],</span><br/><span class="hl-0"> });</span><br/><span class="hl-0"> </span><br/><span class="hl-0"> </span><span class="hl-6">return</span><span class="hl-0"> </span><span class="hl-1">accountInfo</span><span class="hl-0">;</span><br/><span class="hl-0">}</span><br/><br/><span class="hl-5">// Different TTL strategies</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">TTL_STRATEGIES</span><span class="hl-0"> = {</span><br/><span class="hl-0"> </span><span class="hl-1">static:</span><span class="hl-0"> </span><span class="hl-8">3600000</span><span class="hl-0">, </span><span class="hl-5">// 1 hour (e.g., token metadata)</span><br/><span class="hl-0"> </span><span class="hl-1">semi_dynamic:</span><span class="hl-0"> </span><span class="hl-8">300000</span><span class="hl-0">, </span><span class="hl-5">// 5 minutes (e.g., token prices)</span><br/><span class="hl-0"> </span><span class="hl-1">dynamic:</span><span class="hl-0"> </span><span class="hl-8">60000</span><span class="hl-0">, </span><span class="hl-5">// 1 minute (e.g., account balances)</span><br/><span class="hl-0"> </span><span class="hl-1">realtime:</span><span class="hl-0"> </span><span class="hl-8">5000</span><span class="hl-0">, </span><span class="hl-5">// 5 seconds (e.g., slot info)</span><br/><span class="hl-0">};</span>
564
- </code><button type="button">Copy</button></pre>
565
-
566
- <a id="md:5-circuit-breaker-integration" class="tsd-anchor"></a><h3 class="tsd-anchor-link">5. Circuit Breaker Integration<a href="#md:5-circuit-breaker-integration" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="typescript"><span class="hl-6">import</span><span class="hl-0"> { </span><span class="hl-1">CircuitBreaker</span><span class="hl-0"> } </span><span class="hl-6">from</span><span class="hl-0"> </span><span class="hl-4">&#39;@synapse/client-sdk/advanced&#39;</span><span class="hl-0">;</span><br/><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">breaker</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">CircuitBreaker</span><span class="hl-0">({</span><br/><span class="hl-0"> </span><span class="hl-1">failureThreshold:</span><span class="hl-0"> </span><span class="hl-8">5</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">timeout:</span><span class="hl-0"> </span><span class="hl-8">60000</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">retryInterval:</span><span class="hl-0"> </span><span class="hl-8">30000</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">enableFallback:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0">,</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-7">async</span><span class="hl-0"> </span><span class="hl-7">function</span><span class="hl-0"> </span><span class="hl-3">protectedRpcCall</span><span class="hl-0">&lt;</span><span class="hl-9">T</span><span class="hl-0">&gt;(</span><br/><span class="hl-0"> </span><span class="hl-1">method</span><span class="hl-0">: </span><span class="hl-9">string</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">params</span><span class="hl-0">: </span><span class="hl-9">any</span><span class="hl-0">[]</span><br/><span class="hl-0">): </span><span class="hl-9">Promise</span><span class="hl-0">&lt;</span><span class="hl-9">T</span><span class="hl-0">&gt; {</span><br/><span class="hl-0"> </span><span class="hl-6">return</span><span class="hl-0"> </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">breaker</span><span class="hl-0">.</span><span class="hl-3">execute</span><span class="hl-0">(</span><br/><span class="hl-0"> </span><span class="hl-5">// Primary operation</span><br/><span class="hl-0"> </span><span class="hl-7">async</span><span class="hl-0"> () </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-6">return</span><span class="hl-0"> </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">call</span><span class="hl-0">&lt;</span><span class="hl-9">T</span><span class="hl-0">&gt;(</span><span class="hl-1">method</span><span class="hl-0">, </span><span class="hl-1">params</span><span class="hl-0">);</span><br/><span class="hl-0"> },</span><br/><span class="hl-0"> </span><span class="hl-5">// Fallback operation</span><br/><span class="hl-0"> </span><span class="hl-7">async</span><span class="hl-0"> () </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-5">// Try cache</span><br/><span class="hl-0"> </span><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">cacheKey</span><span class="hl-0"> = </span><span class="hl-4">`</span><span class="hl-7">${</span><span class="hl-1">method</span><span class="hl-7">}</span><span class="hl-4">:</span><span class="hl-7">${</span><span class="hl-2">JSON</span><span class="hl-10">.</span><span class="hl-3">stringify</span><span class="hl-10">(</span><span class="hl-1">params</span><span class="hl-10">)</span><span class="hl-7">}</span><span class="hl-4">`</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">cached</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">cache</span><span class="hl-0">.</span><span class="hl-3">get</span><span class="hl-0">&lt;</span><span class="hl-9">T</span><span class="hl-0">&gt;(</span><span class="hl-1">cacheKey</span><span class="hl-0">, { </span><span class="hl-1">allowStale:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0"> });</span><br/><span class="hl-0"> </span><br/><span class="hl-0"> </span><span class="hl-6">if</span><span class="hl-0"> (</span><span class="hl-1">cached</span><span class="hl-0">) {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">warn</span><span class="hl-0">(</span><span class="hl-4">&#39;Using stale cache due to circuit breaker open&#39;</span><span class="hl-0">);</span><br/><span class="hl-0"> </span><span class="hl-6">return</span><span class="hl-0"> </span><span class="hl-1">cached</span><span class="hl-0">;</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> </span><br/><span class="hl-0"> </span><span class="hl-6">throw</span><span class="hl-0"> </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">CircuitBreakerError</span><span class="hl-0">(</span><span class="hl-4">&#39;Circuit breaker open and no fallback available&#39;</span><span class="hl-0">);</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> );</span><br/><span class="hl-0">}</span>
567
- </code><button type="button">Copy</button></pre>
568
-
569
- <a id="md:6-monitoring-and-observability" class="tsd-anchor"></a><h3 class="tsd-anchor-link">6. Monitoring and Observability<a href="#md:6-monitoring-and-observability" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="typescript"><span class="hl-5">// Metrics collection</span><br/><span class="hl-3">setInterval</span><span class="hl-0">(() </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">stats</span><span class="hl-0"> = </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">getStats</span><span class="hl-0">();</span><br/><span class="hl-0"> </span><br/><span class="hl-0"> </span><span class="hl-5">// Log metrics</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Client Metrics:&#39;</span><span class="hl-0">, {</span><br/><span class="hl-0"> </span><span class="hl-1">rps:</span><span class="hl-0"> (</span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">requestCount</span><span class="hl-0"> / ((</span><span class="hl-1">Date</span><span class="hl-0">.</span><span class="hl-3">now</span><span class="hl-0">() - </span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">uptime</span><span class="hl-0">) / </span><span class="hl-8">1000</span><span class="hl-0">)).</span><span class="hl-3">toFixed</span><span class="hl-0">(</span><span class="hl-8">2</span><span class="hl-0">),</span><br/><span class="hl-0"> </span><span class="hl-1">errorRate:</span><span class="hl-0"> ((</span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">errorCount</span><span class="hl-0"> / </span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">requestCount</span><span class="hl-0">) * </span><span class="hl-8">100</span><span class="hl-0">).</span><span class="hl-3">toFixed</span><span class="hl-0">(</span><span class="hl-8">2</span><span class="hl-0">) + </span><span class="hl-4">&#39;%&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">avgLatency:</span><span class="hl-0"> </span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">averageLatency</span><span class="hl-0">.</span><span class="hl-3">toFixed</span><span class="hl-0">(</span><span class="hl-8">2</span><span class="hl-0">) + </span><span class="hl-4">&#39;ms&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">cacheHitRate:</span><span class="hl-0"> (</span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">cacheHitRate</span><span class="hl-0"> * </span><span class="hl-8">100</span><span class="hl-0">).</span><span class="hl-3">toFixed</span><span class="hl-0">(</span><span class="hl-8">2</span><span class="hl-0">) + </span><span class="hl-4">&#39;%&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> });</span><br/><span class="hl-0"> </span><br/><span class="hl-0"> </span><span class="hl-5">// Alert on anomalies</span><br/><span class="hl-0"> </span><span class="hl-6">if</span><span class="hl-0"> (</span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">averageLatency</span><span class="hl-0"> &gt; </span><span class="hl-8">1000</span><span class="hl-0">) {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">warn</span><span class="hl-0">(</span><span class="hl-4">&#39;High latency detected:&#39;</span><span class="hl-0">, </span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">averageLatency</span><span class="hl-0">);</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> </span><br/><span class="hl-0"> </span><span class="hl-6">if</span><span class="hl-0"> (</span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">errorCount</span><span class="hl-0"> / </span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">requestCount</span><span class="hl-0"> &gt; </span><span class="hl-8">0.05</span><span class="hl-0">) {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">error</span><span class="hl-0">(</span><span class="hl-4">&#39;High error rate:&#39;</span><span class="hl-0">, ((</span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">errorCount</span><span class="hl-0"> / </span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">requestCount</span><span class="hl-0">) * </span><span class="hl-8">100</span><span class="hl-0">).</span><span class="hl-3">toFixed</span><span class="hl-0">(</span><span class="hl-8">2</span><span class="hl-0">) + </span><span class="hl-4">&#39;%&#39;</span><span class="hl-0">);</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}, </span><span class="hl-8">60000</span><span class="hl-0">); </span><span class="hl-5">// Every minute</span><br/><br/><span class="hl-5">// Event-based monitoring</span><br/><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">on</span><span class="hl-0">(</span><span class="hl-4">&#39;error&#39;</span><span class="hl-0">, (</span><span class="hl-1">error</span><span class="hl-0">) </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-5">// Send to monitoring service</span><br/><span class="hl-0"> </span><span class="hl-3">sendToMonitoring</span><span class="hl-0">({</span><br/><span class="hl-0"> </span><span class="hl-1">type:</span><span class="hl-0"> </span><span class="hl-4">&#39;rpc_error&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">error:</span><span class="hl-0"> </span><span class="hl-1">error</span><span class="hl-0">.</span><span class="hl-1">message</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">code:</span><span class="hl-0"> </span><span class="hl-1">error</span><span class="hl-0">.</span><span class="hl-1">code</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">timestamp:</span><span class="hl-0"> </span><span class="hl-1">Date</span><span class="hl-0">.</span><span class="hl-3">now</span><span class="hl-0">(),</span><br/><span class="hl-0"> });</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">on</span><span class="hl-0">(</span><span class="hl-4">&#39;endpoint-rotate&#39;</span><span class="hl-0">, ({ </span><span class="hl-1">reason</span><span class="hl-0"> }) </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-5">// Track endpoint health</span><br/><span class="hl-0"> </span><span class="hl-1">metrics</span><span class="hl-0">.</span><span class="hl-3">increment</span><span class="hl-0">(</span><span class="hl-4">&#39;endpoint.rotation&#39;</span><span class="hl-0">, { </span><span class="hl-1">reason</span><span class="hl-0"> });</span><br/><span class="hl-0">});</span>
539
+ <p>Import examples:</p>
540
+ <pre><code class="ts"><span class="hl-7">// Full SDK</span><br/><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-2">SynapseClient</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-3">&#39;@oobe-protocol-labs/synapse-client-sdk&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-7">// Types only (zero runtime)</span><br/><span class="hl-0">import</span><span class="hl-1"> </span><span class="hl-0">type</span><span class="hl-1"> { </span><span class="hl-2">Pubkey</span><span class="hl-1">, </span><span class="hl-2">Signature</span><span class="hl-1">, </span><span class="hl-2">AccountInfo</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-3">&#39;@oobe-protocol-labs/synapse-client-sdk/core/types&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-7">// Individual RPC method (tree-shakeable)</span><br/><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-2">getBalance</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-3">&#39;@oobe-protocol-labs/synapse-client-sdk/rpc&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-7">// WebSocket only</span><br/><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-2">WsClient</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-3">&#39;@oobe-protocol-labs/synapse-client-sdk/websocket&#39;</span><span class="hl-1">;</span>
570
541
  </code><button type="button">Copy</button></pre>
571
542
 
572
543
  <hr>
573
- <a id="md:environment-variables" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Environment Variables<a href="#md:environment-variables" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><pre><code class="bash"><span class="hl-5"># Required</span><br/><span class="hl-1">SYNAPSE_ENDPOINT</span><span class="hl-0">=</span><span class="hl-4">https://your-synapse-gateway.com</span><br/><span class="hl-1">SYNAPSE_WS_ENDPOINT</span><span class="hl-0">=</span><span class="hl-4">wss://your-synapse-gateway.com</span><br/><span class="hl-1">SYNAPSE_API_KEY</span><span class="hl-0">=</span><span class="hl-4">your_api_key_here</span><br/><br/><span class="hl-5"># Optional - Client Configuration</span><br/><span class="hl-1">SYNAPSE_TIMEOUT</span><span class="hl-0">=</span><span class="hl-4">30000</span><br/><span class="hl-1">SYNAPSE_DEBUG</span><span class="hl-0">=</span><span class="hl-4">false</span><br/><span class="hl-1">SYNAPSE_MAX_RETRIES</span><span class="hl-0">=</span><span class="hl-4">3</span><br/><span class="hl-1">SYNAPSE_RETRY_DELAY</span><span class="hl-0">=</span><span class="hl-4">1000</span><br/><br/><span class="hl-5"># Optional - Advanced Features</span><br/><span class="hl-1">SYNAPSE_ENABLE_CACHE</span><span class="hl-0">=</span><span class="hl-4">true</span><br/><span class="hl-1">SYNAPSE_CACHE_SIZE</span><span class="hl-0">=</span><span class="hl-4">10000</span><br/><span class="hl-1">SYNAPSE_ENABLE_CIRCUIT_BREAKER</span><span class="hl-0">=</span><span class="hl-4">true</span><br/><span class="hl-1">SYNAPSE_CIRCUIT_BREAKER_THRESHOLD</span><span class="hl-0">=</span><span class="hl-4">5</span><br/><br/><span class="hl-5"># Optional - WebSocket Configuration</span><br/><span class="hl-1">SYNAPSE_WS_AUTO_RECONNECT</span><span class="hl-0">=</span><span class="hl-4">true</span><br/><span class="hl-1">SYNAPSE_WS_MAX_RECONNECT_ATTEMPTS</span><span class="hl-0">=</span><span class="hl-4">10</span><br/><span class="hl-1">SYNAPSE_WS_RECONNECT_DELAY</span><span class="hl-0">=</span><span class="hl-4">5000</span><br/><span class="hl-1">SYNAPSE_WS_HEARTBEAT_INTERVAL</span><span class="hl-0">=</span><span class="hl-4">30000</span><br/><br/><span class="hl-5"># Optional - Redis (for L3 cache)</span><br/><span class="hl-1">SYNAPSE_REDIS_URL</span><span class="hl-0">=</span><span class="hl-4">redis://localhost:6379</span><br/><span class="hl-1">SYNAPSE_REDIS_PASSWORD</span><span class="hl-0">=</span><span class="hl-4">your_redis_password</span><br/><br/><span class="hl-5"># Optional - Analytics</span><br/><span class="hl-1">SYNAPSE_ENABLE_ANALYTICS</span><span class="hl-0">=</span><span class="hl-4">true</span><br/><span class="hl-1">SYNAPSE_ANALYTICS_SAMPLE_RATE</span><span class="hl-0">=</span><span class="hl-4">0.1</span><br/><span class="hl-1">SYNAPSE_ANALYTICS_RETENTION_DAYS</span><span class="hl-0">=</span><span class="hl-4">7</span>
574
- </code><button type="button">Copy</button></pre>
575
-
576
- <hr>
577
- <a id="md:system-requirements" class="tsd-anchor"></a><h2 class="tsd-anchor-link">System Requirements<a href="#md:system-requirements" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><a id="md:runtime-requirements" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Runtime Requirements<a href="#md:runtime-requirements" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><table>
544
+ <a id="md:documentation" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Documentation<a href="#md:documentation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><table>
578
545
  <thead>
579
546
  <tr>
580
- <th>Component</th>
581
- <th>Minimum</th>
582
- <th>Recommended</th>
583
- <th>Notes</th>
547
+ <th>Resource</th>
548
+ <th>Location</th>
584
549
  </tr>
585
550
  </thead>
586
551
  <tbody>
587
552
  <tr>
588
- <td><strong>Node.js</strong></td>
589
- <td>18.0.0</td>
590
- <td>20.x LTS</td>
591
- <td>ESM support required</td>
553
+ <td>TypeDoc API reference</td>
554
+ <td><code>docs/</code> (HTML, auto-generated)</td>
592
555
  </tr>
593
556
  <tr>
594
- <td><strong>TypeScript</strong></td>
595
- <td>5.0.0</td>
596
- <td>5.3.x</td>
597
- <td>For development only</td>
557
+ <td>Changelog</td>
558
+ <td><a href="media/CHANGELOG.md">CHANGELOG.md</a></td>
598
559
  </tr>
599
560
  <tr>
600
- <td><strong>Memory</strong></td>
601
- <td>512MB</td>
602
- <td>2GB</td>
603
- <td>Per instance</td>
561
+ <td>Contributing guide</td>
562
+ <td><a href="media/CONTRIBUTING.md">CONTRIBUTING.md</a></td>
604
563
  </tr>
605
564
  <tr>
606
- <td><strong>CPU</strong></td>
607
- <td>2 cores</td>
608
- <td>4+ cores</td>
609
- <td>For optimal throughput</td>
565
+ <td>AI skill guides</td>
566
+ <td><code>src/ai/skills/</code> (10 markdown files)</td>
610
567
  </tr>
611
568
  <tr>
612
- <td><strong>Network</strong></td>
613
- <td>10 Mbps</td>
614
- <td>100 Mbps</td>
615
- <td>Stable connection</td>
569
+ <td>Example scripts</td>
570
+ <td><code>examples/</code></td>
616
571
  </tr>
617
572
  </tbody>
618
573
  </table>
619
- <a id="md:dependencies" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Dependencies<a href="#md:dependencies" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="json"><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-12">&quot;dependencies&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-12">&quot;@solana/web3.js&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;^1.87.0&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-12">&quot;eventemitter3&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;^5.0.1&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-12">&quot;lru-cache&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;^10.0.0&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-12">&quot;ws&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;^8.14.0&quot;</span><br/><span class="hl-0"> },</span><br/><span class="hl-0"> </span><span class="hl-12">&quot;devDependencies&quot;</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-12">&quot;typescript&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;^5.3.0&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-12">&quot;@types/node&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;^20.0.0&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-12">&quot;@types/ws&quot;</span><span class="hl-0">: </span><span class="hl-4">&quot;^8.5.0&quot;</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span>
620
- </code><button type="button">Copy</button></pre>
621
-
622
- <a id="md:browser-support" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Browser Support<a href="#md:browser-support" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><table>
574
+ <p>Skill guides (in <code>src/ai/skills/</code>):</p>
575
+ <table>
623
576
  <thead>
624
577
  <tr>
625
- <th>Browser</th>
626
- <th>Minimum Version</th>
627
- <th>Notes</th>
578
+ <th>File</th>
579
+ <th>Topic</th>
628
580
  </tr>
629
581
  </thead>
630
582
  <tbody>
631
583
  <tr>
632
- <td>Chrome</td>
633
- <td>90+</td>
634
- <td>Full support</td>
584
+ <td><code>01-langchain-tools.md</code></td>
585
+ <td>Creating and using LangChain tools</td>
586
+ </tr>
587
+ <tr>
588
+ <td><code>02-gateway-sessions.md</code></td>
589
+ <td>Session lifecycle and management</td>
590
+ </tr>
591
+ <tr>
592
+ <td><code>03-pricing-metering.md</code></td>
593
+ <td>Pricing tiers and metering</td>
594
+ </tr>
595
+ <tr>
596
+ <td><code>04-response-attestation.md</code></td>
597
+ <td>Response integrity and attestation</td>
598
+ </tr>
599
+ <tr>
600
+ <td><code>05-tool-marketplace.md</code></td>
601
+ <td>Listing and discovering tools</td>
602
+ </tr>
603
+ <tr>
604
+ <td><code>06-x402-seller-paywall.md</code></td>
605
+ <td>Seller-side x402 integration</td>
635
606
  </tr>
636
607
  <tr>
637
- <td>Firefox</td>
638
- <td>88+</td>
639
- <td>Full support</td>
608
+ <td><code>07-x402-buyer-client.md</code></td>
609
+ <td>Buyer-side x402 integration</td>
640
610
  </tr>
641
611
  <tr>
642
- <td>Safari</td>
643
- <td>14+</td>
644
- <td>WebSocket compression may be limited</td>
612
+ <td><code>08-full-gateway-orchestration.md</code></td>
613
+ <td>End-to-end gateway orchestration</td>
645
614
  </tr>
646
615
  <tr>
647
- <td>Edge</td>
648
- <td>90+</td>
649
- <td>Full support</td>
616
+ <td><code>09-events-observability.md</code></td>
617
+ <td>Event system and observability</td>
650
618
  </tr>
651
619
  </tbody>
652
620
  </table>
653
- <hr>
654
- <a id="md:migration-guide" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Migration Guide<a href="#md:migration-guide" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><a id="md:from-v1x-to-v2x" class="tsd-anchor"></a><h3 class="tsd-anchor-link">From v1.x to v2.x<a href="#md:from-v1x-to-v2x" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Version 2.0 introduces breaking changes for improved performance and type safety.</p>
655
- <a id="md:1-client-initialization" class="tsd-anchor"></a><h4 class="tsd-anchor-link">1. Client Initialization<a href="#md:1-client-initialization" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-5">// v1.x</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">client</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">SynapseClient</span><span class="hl-0">(</span><span class="hl-4">&#39;https://endpoint.com&#39;</span><span class="hl-0">, </span><span class="hl-4">&#39;api-key&#39;</span><span class="hl-0">);</span><br/><br/><span class="hl-5">// v2.x</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">client</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">SynapseClient</span><span class="hl-0">({</span><br/><span class="hl-0"> </span><span class="hl-1">endpoint:</span><span class="hl-0"> </span><span class="hl-4">&#39;https://endpoint.com&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">apiKey:</span><span class="hl-0"> </span><span class="hl-4">&#39;api-key&#39;</span><span class="hl-0">,</span><br/><span class="hl-0">});</span>
656
- </code><button type="button">Copy</button></pre>
657
-
658
- <a id="md:2-rpc-method-calls" class="tsd-anchor"></a><h4 class="tsd-anchor-link">2. RPC Method Calls<a href="#md:2-rpc-method-calls" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-5">// v1.x</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">balance</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">getBalance</span><span class="hl-0">(</span><span class="hl-4">&#39;address&#39;</span><span class="hl-0">);</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">accountInfo</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">getAccountInfo</span><span class="hl-0">(</span><span class="hl-4">&#39;address&#39;</span><span class="hl-0">);</span><br/><br/><span class="hl-5">// v2.x</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">balance</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">call</span><span class="hl-0">(</span><span class="hl-4">&#39;getBalance&#39;</span><span class="hl-0">, [</span><span class="hl-4">&#39;address&#39;</span><span class="hl-0">]);</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">accountInfo</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">call</span><span class="hl-0">(</span><span class="hl-4">&#39;getAccountInfo&#39;</span><span class="hl-0">, [</span><span class="hl-4">&#39;address&#39;</span><span class="hl-0">, { </span><span class="hl-1">encoding:</span><span class="hl-0"> </span><span class="hl-4">&#39;jsonParsed&#39;</span><span class="hl-0"> }]);</span><br/><br/><span class="hl-5">// Or use SolanaRpcMethods wrapper</span><br/><span class="hl-6">import</span><span class="hl-0"> { </span><span class="hl-1">SolanaRpcMethods</span><span class="hl-0"> } </span><span class="hl-6">from</span><span class="hl-0"> </span><span class="hl-4">&#39;@synapse/client-sdk/methods&#39;</span><span class="hl-0">;</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">rpc</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">SolanaRpcMethods</span><span class="hl-0">(</span><span class="hl-1">client</span><span class="hl-0">);</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">balance</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">rpc</span><span class="hl-0">.</span><span class="hl-3">getBalance</span><span class="hl-0">(</span><span class="hl-4">&#39;address&#39;</span><span class="hl-0">);</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">accountInfo</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">rpc</span><span class="hl-0">.</span><span class="hl-3">getAccountInfo</span><span class="hl-0">(</span><span class="hl-4">&#39;address&#39;</span><span class="hl-0">, { </span><span class="hl-1">encoding:</span><span class="hl-0"> </span><span class="hl-4">&#39;jsonParsed&#39;</span><span class="hl-0"> });</span>
659
- </code><button type="button">Copy</button></pre>
660
-
661
- <a id="md:3-error-handling" class="tsd-anchor"></a><h4 class="tsd-anchor-link">3. Error Handling<a href="#md:3-error-handling" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-5">// v1.x</span><br/><span class="hl-6">catch</span><span class="hl-0"> (</span><span class="hl-1">error</span><span class="hl-0">) {</span><br/><span class="hl-0"> </span><span class="hl-6">if</span><span class="hl-0"> (</span><span class="hl-1">error</span><span class="hl-0">.</span><span class="hl-1">code</span><span class="hl-0"> === -</span><span class="hl-8">32602</span><span class="hl-0">) {</span><br/><span class="hl-0"> </span><span class="hl-5">// Handle validation error</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span><br/><br/><span class="hl-5">// v2.x</span><br/><span class="hl-6">import</span><span class="hl-0"> { </span><span class="hl-1">SynapseError</span><span class="hl-0">, </span><span class="hl-1">ValidationError</span><span class="hl-0">, </span><span class="hl-1">NetworkError</span><span class="hl-0"> } </span><span class="hl-6">from</span><span class="hl-0"> </span><span class="hl-4">&#39;@synapse/client-sdk&#39;</span><span class="hl-0">;</span><br/><br/><span class="hl-6">catch</span><span class="hl-0"> (</span><span class="hl-1">error</span><span class="hl-0">) {</span><br/><span class="hl-0"> </span><span class="hl-6">if</span><span class="hl-0"> (</span><span class="hl-1">error</span><span class="hl-0"> </span><span class="hl-7">instanceof</span><span class="hl-0"> </span><span class="hl-9">ValidationError</span><span class="hl-0">) {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">error</span><span class="hl-0">(</span><span class="hl-4">&#39;Validation error:&#39;</span><span class="hl-0">, </span><span class="hl-1">error</span><span class="hl-0">.</span><span class="hl-1">field</span><span class="hl-0">, </span><span class="hl-1">error</span><span class="hl-0">.</span><span class="hl-1">message</span><span class="hl-0">);</span><br/><span class="hl-0"> } </span><span class="hl-6">else</span><span class="hl-0"> </span><span class="hl-6">if</span><span class="hl-0"> (</span><span class="hl-1">error</span><span class="hl-0"> </span><span class="hl-7">instanceof</span><span class="hl-0"> </span><span class="hl-9">NetworkError</span><span class="hl-0">) {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">error</span><span class="hl-0">(</span><span class="hl-4">&#39;Network error:&#39;</span><span class="hl-0">, </span><span class="hl-1">error</span><span class="hl-0">.</span><span class="hl-1">statusCode</span><span class="hl-0">, </span><span class="hl-1">error</span><span class="hl-0">.</span><span class="hl-1">message</span><span class="hl-0">);</span><br/><span class="hl-0"> } </span><span class="hl-6">else</span><span class="hl-0"> </span><span class="hl-6">if</span><span class="hl-0"> (</span><span class="hl-1">error</span><span class="hl-0"> </span><span class="hl-7">instanceof</span><span class="hl-0"> </span><span class="hl-9">SynapseError</span><span class="hl-0">) {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">error</span><span class="hl-0">(</span><span class="hl-4">&#39;Synapse error:&#39;</span><span class="hl-0">, </span><span class="hl-1">error</span><span class="hl-0">.</span><span class="hl-1">code</span><span class="hl-0">, </span><span class="hl-1">error</span><span class="hl-0">.</span><span class="hl-1">message</span><span class="hl-0">);</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span>
662
- </code><button type="button">Copy</button></pre>
663
-
664
- <a id="md:4-websocket-subscriptions" class="tsd-anchor"></a><h4 class="tsd-anchor-link">4. WebSocket Subscriptions<a href="#md:4-websocket-subscriptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-5">// v1.x</span><br/><span class="hl-1">ws</span><span class="hl-0">.</span><span class="hl-3">accountSubscribe</span><span class="hl-0">(</span><span class="hl-4">&#39;address&#39;</span><span class="hl-0">, (</span><span class="hl-1">data</span><span class="hl-0">) </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-1">data</span><span class="hl-0">);</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-5">// v2.x</span><br/><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">subId</span><span class="hl-0"> = </span><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">ws</span><span class="hl-0">.</span><span class="hl-3">accountSubscribe</span><span class="hl-0">(</span><br/><span class="hl-0"> </span><span class="hl-4">&#39;address&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> (</span><span class="hl-1">data</span><span class="hl-0">) </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-1">data</span><span class="hl-0">);</span><br/><span class="hl-0"> },</span><br/><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">commitment:</span><span class="hl-0"> </span><span class="hl-4">&#39;confirmed&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">encoding:</span><span class="hl-0"> </span><span class="hl-4">&#39;jsonParsed&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">);</span><br/><br/><span class="hl-5">// Remember to unsubscribe</span><br/><span class="hl-6">await</span><span class="hl-0"> </span><span class="hl-1">ws</span><span class="hl-0">.</span><span class="hl-3">accountUnsubscribe</span><span class="hl-0">(</span><span class="hl-1">subId</span><span class="hl-0">);</span>
621
+ <p>To regenerate the API reference:</p>
622
+ <pre><code class="bash"><span class="hl-6">pnpm</span><span class="hl-1"> </span><span class="hl-3">docs</span>
665
623
  </code><button type="button">Copy</button></pre>
666
624
 
667
625
  <hr>
668
- <a id="md:troubleshooting" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Troubleshooting<a href="#md:troubleshooting" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><a id="md:common-issues" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Common Issues<a href="#md:common-issues" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><a id="md:1-high-latency" class="tsd-anchor"></a><h4 class="tsd-anchor-link">1. High Latency<a href="#md:1-high-latency" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><p><strong>Symptoms:</strong> Requests taking &gt;1s to complete</p>
669
- <p><strong>Diagnosis:</strong></p>
670
- <pre><code class="typescript"><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">stats</span><span class="hl-0"> = </span><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">getStats</span><span class="hl-0">();</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Average latency:&#39;</span><span class="hl-0">, </span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">averageLatency</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Cache hit rate:&#39;</span><span class="hl-0">, </span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">cacheHitRate</span><span class="hl-0">);</span><br/><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Pending requests:&#39;</span><span class="hl-0">, </span><span class="hl-1">stats</span><span class="hl-0">.</span><span class="hl-1">pendingRequests</span><span class="hl-0">);</span>
671
- </code><button type="button">Copy</button></pre>
672
-
673
- <p><strong>Solutions:</strong></p>
674
- <ul>
675
- <li>Enable caching for read operations</li>
676
- <li>Use batch operations instead of sequential calls</li>
677
- <li>Check network connectivity to RPC endpoint</li>
678
- <li>Use multiple endpoints with load balancing</li>
679
- <li>Verify endpoint proximity (use regional endpoints)</li>
680
- </ul>
681
- <a id="md:2-connection-errors" class="tsd-anchor"></a><h4 class="tsd-anchor-link">2. Connection Errors<a href="#md:2-connection-errors" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><p><strong>Symptoms:</strong> <code>NetworkError</code> or connection timeouts</p>
682
- <p><strong>Diagnosis:</strong></p>
683
- <pre><code class="typescript"><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">on</span><span class="hl-0">(</span><span class="hl-4">&#39;error&#39;</span><span class="hl-0">, (</span><span class="hl-1">error</span><span class="hl-0">) </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">error</span><span class="hl-0">(</span><span class="hl-4">&#39;Connection error:&#39;</span><span class="hl-0">, </span><span class="hl-1">error</span><span class="hl-0">);</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">on</span><span class="hl-0">(</span><span class="hl-4">&#39;endpoint-rotate&#39;</span><span class="hl-0">, ({ </span><span class="hl-1">reason</span><span class="hl-0"> }) </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Endpoint rotation reason:&#39;</span><span class="hl-0">, </span><span class="hl-1">reason</span><span class="hl-0">);</span><br/><span class="hl-0">});</span>
684
- </code><button type="button">Copy</button></pre>
685
-
686
- <p><strong>Solutions:</strong></p>
687
- <ul>
688
- <li>Verify endpoint URL and API key</li>
689
- <li>Check firewall/proxy settings</li>
690
- <li>Implement retry logic with exponential backoff</li>
691
- <li>Use circuit breaker for automatic fallback</li>
692
- <li>Test endpoint health manually</li>
693
- </ul>
694
- <a id="md:3-memory-leaks" class="tsd-anchor"></a><h4 class="tsd-anchor-link">3. Memory Leaks<a href="#md:3-memory-leaks" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><p><strong>Symptoms:</strong> Increasing memory usage over time</p>
695
- <p><strong>Diagnosis:</strong></p>
696
- <pre><code class="typescript"><span class="hl-3">setInterval</span><span class="hl-0">(() </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">used</span><span class="hl-0"> = </span><span class="hl-1">process</span><span class="hl-0">.</span><span class="hl-3">memoryUsage</span><span class="hl-0">();</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Memory usage:&#39;</span><span class="hl-0">, {</span><br/><span class="hl-0"> </span><span class="hl-1">rss:</span><span class="hl-0"> (</span><span class="hl-1">used</span><span class="hl-0">.</span><span class="hl-1">rss</span><span class="hl-0"> / </span><span class="hl-8">1024</span><span class="hl-0"> / </span><span class="hl-8">1024</span><span class="hl-0">).</span><span class="hl-3">toFixed</span><span class="hl-0">(</span><span class="hl-8">2</span><span class="hl-0">) + </span><span class="hl-4">&#39; MB&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">heapTotal:</span><span class="hl-0"> (</span><span class="hl-1">used</span><span class="hl-0">.</span><span class="hl-1">heapTotal</span><span class="hl-0"> / </span><span class="hl-8">1024</span><span class="hl-0"> / </span><span class="hl-8">1024</span><span class="hl-0">).</span><span class="hl-3">toFixed</span><span class="hl-0">(</span><span class="hl-8">2</span><span class="hl-0">) + </span><span class="hl-4">&#39; MB&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">heapUsed:</span><span class="hl-0"> (</span><span class="hl-1">used</span><span class="hl-0">.</span><span class="hl-1">heapUsed</span><span class="hl-0"> / </span><span class="hl-8">1024</span><span class="hl-0"> / </span><span class="hl-8">1024</span><span class="hl-0">).</span><span class="hl-3">toFixed</span><span class="hl-0">(</span><span class="hl-8">2</span><span class="hl-0">) + </span><span class="hl-4">&#39; MB&#39;</span><span class="hl-0">,</span><br/><span class="hl-0"> });</span><br/><span class="hl-0">}, </span><span class="hl-8">30000</span><span class="hl-0">);</span>
697
- </code><button type="button">Copy</button></pre>
698
-
699
- <p><strong>Solutions:</strong></p>
700
- <ul>
701
- <li>Call <code>client.destroy()</code> when done</li>
702
- <li>Unsubscribe from WebSocket subscriptions</li>
703
- <li>Clear caches periodically: <code>client.clearCache()</code></li>
704
- <li>Remove event listeners when not needed</li>
705
- <li>Use <code>--max-old-space-size</code> flag to increase heap limit</li>
706
- </ul>
707
- <a id="md:4-websocket-disconnections" class="tsd-anchor"></a><h4 class="tsd-anchor-link">4. WebSocket Disconnections<a href="#md:4-websocket-disconnections" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><p><strong>Symptoms:</strong> Frequent WebSocket disconnects</p>
708
- <p><strong>Diagnosis:</strong></p>
709
- <pre><code class="typescript"><span class="hl-1">wsClient</span><span class="hl-0">.</span><span class="hl-3">on</span><span class="hl-0">(</span><span class="hl-4">&#39;disconnected&#39;</span><span class="hl-0">, ({ </span><span class="hl-1">code</span><span class="hl-0">, </span><span class="hl-1">reason</span><span class="hl-0"> }) </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Disconnect code:&#39;</span><span class="hl-0">, </span><span class="hl-1">code</span><span class="hl-0">);</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">&#39;Disconnect reason:&#39;</span><span class="hl-0">, </span><span class="hl-1">reason</span><span class="hl-0">);</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-1">wsClient</span><span class="hl-0">.</span><span class="hl-3">on</span><span class="hl-0">(</span><span class="hl-4">&#39;reconnecting&#39;</span><span class="hl-0">, ({ </span><span class="hl-1">attempt</span><span class="hl-0">, </span><span class="hl-1">maxAttempts</span><span class="hl-0"> }) </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">log</span><span class="hl-0">(</span><span class="hl-4">`Reconnect attempt </span><span class="hl-7">${</span><span class="hl-1">attempt</span><span class="hl-7">}</span><span class="hl-4">/</span><span class="hl-7">${</span><span class="hl-1">maxAttempts</span><span class="hl-7">}</span><span class="hl-4">`</span><span class="hl-0">);</span><br/><span class="hl-0">});</span>
710
- </code><button type="button">Copy</button></pre>
711
-
712
- <p><strong>Solutions:</strong></p>
713
- <ul>
714
- <li>Reduce heartbeat interval for faster detection</li>
715
- <li>Increase <code>maxReconnectAttempts</code></li>
716
- <li>Check network stability</li>
717
- <li>Use resilient subscriptions</li>
718
- <li>Implement fallback to HTTP polling</li>
719
- </ul>
720
- <a id="md:5-rate-limiting" class="tsd-anchor"></a><h4 class="tsd-anchor-link">5. Rate Limiting<a href="#md:5-rate-limiting" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><p><strong>Symptoms:</strong> 429 Too Many Requests errors</p>
721
- <p><strong>Diagnosis:</strong></p>
722
- <pre><code class="typescript"><span class="hl-1">client</span><span class="hl-0">.</span><span class="hl-3">on</span><span class="hl-0">(</span><span class="hl-4">&#39;error&#39;</span><span class="hl-0">, (</span><span class="hl-1">error</span><span class="hl-0">) </span><span class="hl-7">=&gt;</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-6">if</span><span class="hl-0"> (</span><span class="hl-1">error</span><span class="hl-0">.</span><span class="hl-1">code</span><span class="hl-0"> === </span><span class="hl-8">429</span><span class="hl-0">) {</span><br/><span class="hl-0"> </span><span class="hl-1">console</span><span class="hl-0">.</span><span class="hl-3">error</span><span class="hl-0">(</span><span class="hl-4">&#39;Rate limit exceeded&#39;</span><span class="hl-0">);</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">});</span>
723
- </code><button type="button">Copy</button></pre>
724
-
725
- <p><strong>Solutions:</strong></p>
726
- <ul>
727
- <li>Implement request throttling</li>
728
- <li>Use caching to reduce API calls</li>
729
- <li>Batch operations when possible</li>
730
- <li>Upgrade API plan for higher limits</li>
731
- <li>Implement exponential backoff on rate limit errors</li>
732
- </ul>
733
- <a id="md:debug-mode" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Debug Mode<a href="#md:debug-mode" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Enable debug logging for detailed insights:</p>
734
- <pre><code class="typescript"><span class="hl-7">const</span><span class="hl-0"> </span><span class="hl-2">client</span><span class="hl-0"> = </span><span class="hl-7">new</span><span class="hl-0"> </span><span class="hl-3">SynapseClient</span><span class="hl-0">({</span><br/><span class="hl-0"> </span><span class="hl-1">endpoint:</span><span class="hl-0"> </span><span class="hl-1">process</span><span class="hl-0">.</span><span class="hl-1">env</span><span class="hl-0">.</span><span class="hl-2">SYNAPSE_ENDPOINT</span><span class="hl-0">!,</span><br/><span class="hl-0"> </span><span class="hl-1">apiKey:</span><span class="hl-0"> </span><span class="hl-1">process</span><span class="hl-0">.</span><span class="hl-1">env</span><span class="hl-0">.</span><span class="hl-2">SYNAPSE_API_KEY</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">debug:</span><span class="hl-0"> </span><span class="hl-7">true</span><span class="hl-0">, </span><span class="hl-5">// Enable debug logs</span><br/><span class="hl-0">});</span><br/><br/><span class="hl-5">// Console output:</span><br/><span class="hl-5">// 🚀 Synapse Client initialized: https://...</span><br/><span class="hl-5">// 📤 [1] getBalance [&quot;addr...&quot;]</span><br/><span class="hl-5">// 📥 [1] ✅ 45ms</span><br/><span class="hl-5">// 📤 [2] getAccountInfo [&quot;addr...&quot;, {...}]</span><br/><span class="hl-5">// 📥 [2] ✅ 82ms</span>
735
- </code><button type="button">Copy</button></pre>
736
-
737
- <hr>
738
- <a id="md:contributing" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Contributing<a href="#md:contributing" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>Contributions are welcome! Please follow these guidelines:</p>
739
- <a id="md:development-setup" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Development Setup<a href="#md:development-setup" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="bash"><span class="hl-5"># Clone repository</span><br/><span class="hl-3">git</span><span class="hl-0"> </span><span class="hl-4">clone</span><span class="hl-0"> </span><span class="hl-4">https://github.com/CryptoFamilyNFT/synapse.git</span><br/><span class="hl-3">cd</span><span class="hl-0"> </span><span class="hl-4">synapse/packages/synapse-client-sdk</span><br/><br/><span class="hl-5"># Install dependencies</span><br/><span class="hl-3">pnpm</span><span class="hl-0"> </span><span class="hl-4">install</span><br/><br/><span class="hl-5"># Build project</span><br/><span class="hl-3">pnpm</span><span class="hl-0"> </span><span class="hl-4">build</span><br/><br/><span class="hl-5"># Run tests</span><br/><span class="hl-3">pnpm</span><span class="hl-0"> </span><span class="hl-4">test</span><br/><br/><span class="hl-5"># Run linter</span><br/><span class="hl-3">pnpm</span><span class="hl-0"> </span><span class="hl-4">lint</span><br/><br/><span class="hl-5"># Type check</span><br/><span class="hl-3">pnpm</span><span class="hl-0"> </span><span class="hl-4">type-check</span>
740
- </code><button type="button">Copy</button></pre>
626
+ <a id="md:source-map" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Source Map<a href="#md:source-map" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><pre><code><span class="hl-2">src</span><span class="hl-1">/</span><br/><span class="hl-1"> </span><span class="hl-2">index</span><span class="hl-1">.</span><span class="hl-2">ts</span><span class="hl-1"> </span><span class="hl-2">Main</span><span class="hl-1"> </span><span class="hl-2">entry</span><span class="hl-1"> </span><span class="hl-2">point</span><span class="hl-1">, </span><span class="hl-2">barrel</span><span class="hl-1"> </span><span class="hl-10">exports</span><br/><span class="hl-1"> </span><span class="hl-2">core</span><span class="hl-1">/</span><br/><span class="hl-1"> </span><span class="hl-2">types</span><span class="hl-1">.</span><span class="hl-2">ts</span><span class="hl-1"> </span><span class="hl-2">Branded</span><span class="hl-1"> </span><span class="hl-2">types</span><span class="hl-1">, </span><span class="hl-5">RPC</span><span class="hl-1"> </span><span class="hl-2">wire</span><span class="hl-1"> </span><span class="hl-2">types</span><br/><span class="hl-1"> </span><span class="hl-2">errors</span><span class="hl-1">.</span><span class="hl-2">ts</span><span class="hl-1"> </span><span class="hl-2">Error</span><span class="hl-1"> </span><span class="hl-2">hierarchy</span><br/><span class="hl-1"> </span><span class="hl-2">transport</span><span class="hl-1">.</span><span class="hl-2">ts</span><span class="hl-1"> </span><span class="hl-6">HttpTransport</span><span class="hl-1"> (</span><span class="hl-5">JSON</span><span class="hl-1">-</span><span class="hl-5">RPC</span><span class="hl-1">)</span><br/><span class="hl-1"> </span><span class="hl-2">client</span><span class="hl-1">.</span><span class="hl-2">ts</span><span class="hl-1"> </span><span class="hl-2">SynapseClient</span><span class="hl-1"> </span><span class="hl-2">orchestrator</span><br/><span class="hl-1"> </span><span class="hl-2">rpc</span><span class="hl-1">/</span><br/><span class="hl-1"> </span><span class="hl-2">solana</span><span class="hl-1">-</span><span class="hl-2">rpc</span><span class="hl-1">.</span><span class="hl-2">ts</span><span class="hl-1"> </span><span class="hl-2">SolanaRpc</span><span class="hl-1"> </span><span class="hl-6">facade</span><span class="hl-1"> (</span><span class="hl-8">53</span><span class="hl-1"> </span><span class="hl-2">methods</span><span class="hl-1">)</span><br/><span class="hl-1"> </span><span class="hl-2">methods</span><span class="hl-1">/ </span><span class="hl-2">One</span><span class="hl-1"> </span><span class="hl-2">file</span><span class="hl-1"> </span><span class="hl-2">per</span><span class="hl-1"> </span><span class="hl-5">RPC</span><span class="hl-1"> </span><span class="hl-6">method</span><span class="hl-1"> (</span><span class="hl-8">53</span><span class="hl-1"> </span><span class="hl-2">files</span><span class="hl-1">)</span><br/><span class="hl-1"> </span><span class="hl-2">das</span><span class="hl-1">/</span><br/><span class="hl-1"> </span><span class="hl-2">types</span><span class="hl-1">.</span><span class="hl-2">ts</span><span class="hl-1"> </span><span class="hl-5">DAS</span><span class="hl-1"> </span><span class="hl-4">type</span><span class="hl-1"> </span><span class="hl-10">definitions</span><br/><span class="hl-1"> client.ts DasClient facade (11 methods)</span><br/><span class="hl-1"> methods/ One file per DAS method (11 files)</span><br/><span class="hl-1"> websocket/</span><br/><span class="hl-1"> types.ts Subscription and notification types</span><br/><span class="hl-1"> client.ts WsClient (6 subscription methods)</span><br/><span class="hl-1"> grpc/</span><br/><span class="hl-1"> types.ts gRPC transport types</span><br/><span class="hl-1"> transport.ts GrpcTransport class</span><br/><span class="hl-1"> parser/</span><br/><span class="hl-1"> types.ts Geyser protobuf types</span><br/><span class="hl-1"> programs.ts Known-program registry (80+)</span><br/><span class="hl-1"> decoder.ts Low-level stream decoders</span><br/><span class="hl-1"> geyser-parser.ts GeyserParser high-level class</span><br/><span class="hl-1"> ai/</span><br/><span class="hl-1"> tools/</span><br/><span class="hl-1"> zod/ Zod schemas for 53 RPC methods</span><br/><span class="hl-1"> protocols/</span><br/><span class="hl-1"> shared.ts Protocol infrastructure</span><br/><span class="hl-1"> jupiter/ Jupiter DEX (21 methods)</span><br/><span class="hl-1"> raydium/ Raydium DEX (16 methods)</span><br/><span class="hl-1"> metaplex/ Metaplex NFT (12 methods)</span><br/><span class="hl-1"> gateway/</span><br/><span class="hl-1"> types.ts Gateway type definitions</span><br/><span class="hl-1"> session.ts AgentSession</span><br/><span class="hl-1"> pricing.ts PricingEngine</span><br/><span class="hl-1"> validator.ts ResponseValidator</span><br/><span class="hl-1"> marketplace.ts ToolMarketplace</span><br/><span class="hl-1"> index.ts AgentGateway</span><br/><span class="hl-1"> x402/</span><br/><span class="hl-1"> types.ts x402 protocol types</span><br/><span class="hl-1"> paywall.ts Seller-side paywall</span><br/><span class="hl-1"> client.ts Buyer-side client</span><br/><span class="hl-1"> facilitator.ts Settlement verification</span><br/><span class="hl-1"> registry.ts Known facilitators</span><br/><span class="hl-1"> skills/ 10 markdown skill guides</span><br/><span class="hl-1"> utils/</span><br/><span class="hl-1"> helpers.ts lamportsToSol, sleep, chunk, retry</span><br/><span class="hl-1"> synapse.ts Endpoint registry, auto-select</span>
627
+ </code><button>Copy</button></pre>
741
628
 
742
- <a id="md:guidelines" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Guidelines<a href="#md:guidelines" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><ol>
743
- <li><strong>Code Style:</strong> Follow TypeScript best practices and existing code style</li>
744
- <li><strong>Testing:</strong> Add tests for new features (<code>pnpm test</code>)</li>
745
- <li><strong>Documentation:</strong> Update relevant README files</li>
746
- <li><strong>Type Safety:</strong> Ensure full TypeScript coverage</li>
747
- <li><strong>Performance:</strong> Benchmark changes if applicable (<code>pnpm benchmark</code>)</li>
748
- <li><strong>Commit Messages:</strong> Use conventional commits format</li>
749
- </ol>
750
- <a id="md:pull-request-process" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Pull Request Process<a href="#md:pull-request-process" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><ol>
751
- <li>Fork the repository</li>
752
- <li>Create a feature branch (<code>git checkout -b feature/amazing-feature</code>)</li>
753
- <li>Make your changes</li>
754
- <li>Add tests and documentation</li>
755
- <li>Run tests and linter (<code>pnpm test &amp;&amp; pnpm lint</code>)</li>
756
- <li>Commit your changes (<code>git commit -m 'feat: add amazing feature'</code>)</li>
757
- <li>Push to branch (<code>git push origin feature/amazing-feature</code>)</li>
758
- <li>Open a Pull Request</li>
759
- </ol>
760
629
  <hr>
761
- <a id="md:license" class="tsd-anchor"></a><h2 class="tsd-anchor-link">License<a href="#md:license" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>MIT License - See <a href="media/LICENSE">LICENSE</a> for complete terms.</p>
762
- <p>Copyright (c) 2024 CryptoFamilyNFT</p>
763
- <p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the &quot;Software&quot;), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
764
- <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
765
- <p>THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
766
- <hr>
767
- <a id="md:support" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Support<a href="#md:support" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><ul>
768
- <li><strong>Documentation:</strong> <a href="https://docs.synapse.com" target="_blank" class="external">https://docs.synapse.com</a></li>
769
- <li><strong>GitHub Issues:</strong> <a href="https://github.com/CryptoFamilyNFT/synapse/issues" target="_blank" class="external">https://github.com/CryptoFamilyNFT/synapse/issues</a></li>
770
- <li><strong>Discord:</strong> <a href="https://discord.gg/synapse" target="_blank" class="external">https://discord.gg/synapse</a></li>
771
- <li><strong>Email:</strong> <a href="mailto:support@synapse.com">support@synapse.com</a></li>
772
- </ul>
630
+ <a id="md:contributing" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Contributing<a href="#md:contributing" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>See <a href="media/CONTRIBUTING.md">CONTRIBUTING.md</a> for the branching strategy, commit conventions, and development setup.</p>
773
631
  <hr>
774
- <p><strong>Synapse Client SDK</strong> - Enterprise-grade Solana development toolkit</p>
775
- <p>Built with precision by the Synapse Team</p>
776
- </div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#md:synapse-client-sdk"><span>Synapse <wbr/>Client SDK</span></a><ul><li><a href="#md:architecture-overview"><span>Architecture <wbr/>Overview</span></a></li><li><a href="#md:features-matrix"><span>Features <wbr/>Matrix</span></a></li><li><a href="#md:installation"><span>Installation</span></a></li><li><a href="#md:quick-start"><span>Quick <wbr/>Start</span></a></li><li><ul><li><a href="#md:basic-client-initialization"><span>Basic <wbr/>Client <wbr/>Initialization</span></a></li><li><a href="#md:client-statistics"><span>Client <wbr/>Statistics</span></a></li><li><a href="#md:endpoint-rotation"><span>Endpoint <wbr/>Rotation</span></a></li></ul></li><li><a href="#md:core-client"><span>Core <wbr/>Client</span></a></li><li><ul><li><a href="#md:configuration"><span>Configuration</span></a></li><li><a href="#md:core-methods"><span>Core <wbr/>Methods</span></a></li><li><a href="#md:event-system"><span>Event <wbr/>System</span></a></li></ul></li><li><a href="#md:module-documentation"><span>Module <wbr/>Documentation</span></a></li><li><ul><li><a href="#md:1-advanced-features-module"><span>1. <wbr/>Advanced <wbr/>Features <wbr/>Module</span></a></li><li><ul><li><a href="#md:components"><span>Components</span></a></li><li><a href="#md:quick-example"><span>Quick <wbr/>Example</span></a></li></ul></li><li><a href="#md:2-websocket-client-module"><span>2. <wbr/>Web<wbr/>Socket <wbr/>Client <wbr/>Module</span></a></li><li><ul><li><a href="#md:subscription-types"><span>Subscription <wbr/>Types</span></a></li><li><a href="#md:quick-example-1"><span>Quick <wbr/>Example</span></a></li></ul></li><li><a href="#md:3-defi-module"><span>3. <wbr/>De<wbr/>Fi <wbr/>Module</span></a></li><li><ul><li><a href="#md:integrations-matrix"><span>Integrations <wbr/>Matrix</span></a></li><li><a href="#md:advanced-features"><span>Advanced <wbr/>Features</span></a></li><li><a href="#md:quick-example-2"><span>Quick <wbr/>Example</span></a></li></ul></li><li><a href="#md:4-nft-module"><span>4. NFT <wbr/>Module</span></a></li><li><ul><li><a href="#md:features-matrix-1"><span>Features <wbr/>Matrix</span></a></li><li><a href="#md:quick-example-3"><span>Quick <wbr/>Example</span></a></li></ul></li><li><a href="#md:5-ai-module"><span>5. AI <wbr/>Module</span></a></li><li><ul><li><a href="#md:components-1"><span>Components</span></a></li><li><a href="#md:quick-example-4"><span>Quick <wbr/>Example</span></a></li></ul></li><li><a href="#md:6-analytics-engine-module"><span>6. <wbr/>Analytics <wbr/>Engine <wbr/>Module</span></a></li><li><ul><li><a href="#md:capabilities"><span>Capabilities</span></a></li><li><a href="#md:quick-example-5"><span>Quick <wbr/>Example</span></a></li></ul></li><li><a href="#md:7-rpc-methods-module"><span>7. RPC <wbr/>Methods <wbr/>Module</span></a></li><li><ul><li><a href="#md:method-categories"><span>Method <wbr/>Categories</span></a></li><li><a href="#md:quick-example-6"><span>Quick <wbr/>Example</span></a></li></ul></li><li><a href="#md:8-utils-module"><span>8. <wbr/>Utils <wbr/>Module</span></a></li><li><ul><li><a href="#md:components-2"><span>Components</span></a></li></ul></li></ul></li><li><a href="#md:performance-benchmarks"><span>Performance <wbr/>Benchmarks</span></a></li><li><ul><li><a href="#md:latency-metrics"><span>Latency <wbr/>Metrics</span></a></li><li><a href="#md:load-testing-results"><span>Load <wbr/>Testing <wbr/>Results</span></a></li></ul></li><li><a href="#md:type-system"><span>Type <wbr/>System</span></a></li><li><ul><li><a href="#md:core-types"><span>Core <wbr/>Types</span></a></li><li><a href="#md:error-types"><span>Error <wbr/>Types</span></a></li></ul></li><li><a href="#md:best-practices"><span>Best <wbr/>Practices</span></a></li><li><ul><li><a href="#md:1-connection-management"><span>1. <wbr/>Connection <wbr/>Management</span></a></li><li><a href="#md:2-error-handling"><span>2. <wbr/>Error <wbr/>Handling</span></a></li><li><a href="#md:3-batch-operations"><span>3. <wbr/>Batch <wbr/>Operations</span></a></li><li><a href="#md:4-caching-strategy"><span>4. <wbr/>Caching <wbr/>Strategy</span></a></li><li><a href="#md:5-circuit-breaker-integration"><span>5. <wbr/>Circuit <wbr/>Breaker <wbr/>Integration</span></a></li><li><a href="#md:6-monitoring-and-observability"><span>6. <wbr/>Monitoring and <wbr/>Observability</span></a></li></ul></li><li><a href="#md:environment-variables"><span>Environment <wbr/>Variables</span></a></li><li><a href="#md:system-requirements"><span>System <wbr/>Requirements</span></a></li><li><ul><li><a href="#md:runtime-requirements"><span>Runtime <wbr/>Requirements</span></a></li><li><a href="#md:dependencies"><span>Dependencies</span></a></li><li><a href="#md:browser-support"><span>Browser <wbr/>Support</span></a></li></ul></li><li><a href="#md:migration-guide"><span>Migration <wbr/>Guide</span></a></li><li><ul><li><a href="#md:from-v1x-to-v2x"><span>From v1.x to v2.x</span></a></li><li><ul><li><a href="#md:1-client-initialization"><span>1. <wbr/>Client <wbr/>Initialization</span></a></li><li><a href="#md:2-rpc-method-calls"><span>2. RPC <wbr/>Method <wbr/>Calls</span></a></li><li><a href="#md:3-error-handling"><span>3. <wbr/>Error <wbr/>Handling</span></a></li><li><a href="#md:4-websocket-subscriptions"><span>4. <wbr/>Web<wbr/>Socket <wbr/>Subscriptions</span></a></li></ul></li></ul></li><li><a href="#md:troubleshooting"><span>Troubleshooting</span></a></li><li><ul><li><a href="#md:common-issues"><span>Common <wbr/>Issues</span></a></li><li><ul><li><a href="#md:1-high-latency"><span>1. <wbr/>High <wbr/>Latency</span></a></li><li><a href="#md:2-connection-errors"><span>2. <wbr/>Connection <wbr/>Errors</span></a></li><li><a href="#md:3-memory-leaks"><span>3. <wbr/>Memory <wbr/>Leaks</span></a></li><li><a href="#md:4-websocket-disconnections"><span>4. <wbr/>Web<wbr/>Socket <wbr/>Disconnections</span></a></li><li><a href="#md:5-rate-limiting"><span>5. <wbr/>Rate <wbr/>Limiting</span></a></li></ul></li><li><a href="#md:debug-mode"><span>Debug <wbr/>Mode</span></a></li></ul></li><li><a href="#md:contributing"><span>Contributing</span></a></li><li><ul><li><a href="#md:development-setup"><span>Development <wbr/>Setup</span></a></li><li><a href="#md:guidelines"><span>Guidelines</span></a></li><li><a href="#md:pull-request-process"><span>Pull <wbr/>Request <wbr/>Process</span></a></li></ul></li><li><a href="#md:license"><span>License</span></a></li><li><a href="#md:support"><span>Support</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html" class="current"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-1"></use></svg><span>@oobe-protocol-labs/synapse-client-sdk</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base="."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
632
+ <a id="md:license" class="tsd-anchor"></a><h2 class="tsd-anchor-link">License<a href="#md:license" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>MIT -- see <a href="media/LICENSE">LICENSE</a>.</p>
633
+ <p>Copyright (c) OOBE Protocol Labs -- <a href="https://oobeprotocol.ai" target="_blank" class="external">oobeprotocol.ai</a></p>
634
+ </div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#md:oobe-protocol-labssynapse-client-sdk"><span>@oobe-<wbr/>protocol-<wbr/>labs/synapse-<wbr/>client-<wbr/>sdk</span></a><ul><li><a href="#md:table-of-contents"><span>Table of <wbr/>Contents</span></a></li><li><a href="#md:installation"><span>Installation</span></a></li><li><a href="#md:quick-start"><span>Quick <wbr/>Start</span></a></li><li><ul><li><a href="#md:factory-helpers"><span>Factory helpers</span></a></li></ul></li><li><a href="#md:architecture"><span>Architecture</span></a></li><li><a href="#md:module-reference"><span>Module <wbr/>Reference</span></a></li><li><ul><li><a href="#md:core"><span>core/</span></a></li><li><a href="#md:rpc"><span>rpc/</span></a></li><li><a href="#md:das"><span>das/</span></a></li><li><a href="#md:websocket"><span>websocket/</span></a></li><li><a href="#md:grpc"><span>grpc/</span></a></li><li><a href="#md:ai"><span>ai/</span></a></li><li><a href="#md:utils"><span>utils/</span></a></li></ul></li><li><a href="#md:endpoints-and-regions"><span>Endpoints and <wbr/>Regions</span></a></li><li><a href="#md:branded-types"><span>Branded <wbr/>Types</span></a></li><li><a href="#md:ai-agent-integration"><span>AI <wbr/>Agent <wbr/>Integration</span></a></li><li><ul><li><a href="#md:zod-schemas-and-langchain-tools"><span>Zod <wbr/>Schemas and <wbr/>Lang<wbr/>Chain <wbr/>Tools</span></a></li><li><a href="#md:protocol-tools"><span>Protocol <wbr/>Tools</span></a></li><li><a href="#md:agent-commerce-gateway"><span>Agent <wbr/>Commerce <wbr/>Gateway</span></a></li><li><a href="#md:x402-payment-protocol"><span>x402 <wbr/>Payment <wbr/>Protocol</span></a></li></ul></li><li><a href="#md:testing"><span>Testing</span></a></li><li><a href="#md:build-and-development"><span>Build and <wbr/>Development</span></a></li><li><a href="#md:package-exports"><span>Package <wbr/>Exports</span></a></li><li><a href="#md:documentation"><span>Documentation</span></a></li><li><a href="#md:source-map"><span>Source <wbr/>Map</span></a></li><li><a href="#md:contributing"><span>Contributing</span></a></li><li><a href="#md:license"><span>License</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html" class="current"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-1"></use></svg><span>@oobe-protocol-labs/synapse-client-sdk</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base="."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>