safehands-pharos 1.4.0 → 2.6.0

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 (571) hide show
  1. package/.agents/policies/default.json +15 -0
  2. package/.env.example +81 -64
  3. package/README.md +301 -333
  4. package/SECURITY.md +112 -0
  5. package/SKILL.md +59 -0
  6. package/contracts/SafeHandsAttestation.sol +182 -0
  7. package/contracts/SafeHandsRegistry.sol +149 -0
  8. package/dist/agent/SafeHandsGuardianAgent.d.ts +39 -0
  9. package/dist/agent/SafeHandsGuardianAgent.d.ts.map +1 -0
  10. package/dist/agent/SafeHandsGuardianAgent.js +98 -0
  11. package/dist/agent/SafeHandsGuardianAgent.js.map +1 -0
  12. package/dist/agent/agentDecisionFormatter.d.ts +43 -0
  13. package/dist/agent/agentDecisionFormatter.d.ts.map +1 -0
  14. package/dist/agent/agentDecisionFormatter.js +96 -0
  15. package/dist/agent/agentDecisionFormatter.js.map +1 -0
  16. package/dist/agent/agentEnrich.d.ts +28 -0
  17. package/dist/agent/agentEnrich.d.ts.map +1 -0
  18. package/dist/agent/agentEnrich.js +99 -0
  19. package/dist/agent/agentEnrich.js.map +1 -0
  20. package/dist/agent/agentIntentClassifier.d.ts +44 -0
  21. package/dist/agent/agentIntentClassifier.d.ts.map +1 -0
  22. package/dist/agent/agentIntentClassifier.js +77 -0
  23. package/dist/agent/agentIntentClassifier.js.map +1 -0
  24. package/dist/agent/agentPolicyResolver.d.ts +44 -0
  25. package/dist/agent/agentPolicyResolver.d.ts.map +1 -0
  26. package/dist/agent/agentPolicyResolver.js +94 -0
  27. package/dist/agent/agentPolicyResolver.js.map +1 -0
  28. package/dist/agent/agentRuntime.d.ts +12 -0
  29. package/dist/agent/agentRuntime.d.ts.map +1 -0
  30. package/dist/agent/agentRuntime.js +31 -0
  31. package/dist/agent/agentRuntime.js.map +1 -0
  32. package/dist/agent/agentToolRouter.d.ts +24 -0
  33. package/dist/agent/agentToolRouter.d.ts.map +1 -0
  34. package/dist/agent/agentToolRouter.js +89 -0
  35. package/dist/agent/agentToolRouter.js.map +1 -0
  36. package/dist/agent/guardianOperator.d.ts +35 -0
  37. package/dist/agent/guardianOperator.d.ts.map +1 -0
  38. package/dist/agent/guardianOperator.js +65 -0
  39. package/dist/agent/guardianOperator.js.map +1 -0
  40. package/dist/agent/index.d.ts +8 -0
  41. package/dist/agent/index.d.ts.map +1 -0
  42. package/dist/agent/index.js +14 -0
  43. package/dist/agent/index.js.map +1 -0
  44. package/dist/api/activityRoutes.d.ts +70 -0
  45. package/dist/api/activityRoutes.d.ts.map +1 -0
  46. package/dist/api/activityRoutes.js +100 -0
  47. package/dist/api/activityRoutes.js.map +1 -0
  48. package/dist/api/agentRoutes.d.ts +16 -0
  49. package/dist/api/agentRoutes.d.ts.map +1 -0
  50. package/dist/api/agentRoutes.js +37 -0
  51. package/dist/api/agentRoutes.js.map +1 -0
  52. package/dist/api/broadcastRoutes.d.ts +34 -0
  53. package/dist/api/broadcastRoutes.d.ts.map +1 -0
  54. package/dist/api/broadcastRoutes.js +147 -0
  55. package/dist/api/broadcastRoutes.js.map +1 -0
  56. package/dist/api/consolePage.d.ts +2 -0
  57. package/dist/api/consolePage.d.ts.map +1 -0
  58. package/dist/api/consolePage.js +206 -0
  59. package/dist/api/consolePage.js.map +1 -0
  60. package/dist/api/httpHardening.d.ts +75 -0
  61. package/dist/api/httpHardening.d.ts.map +1 -0
  62. package/dist/api/httpHardening.js +122 -0
  63. package/dist/api/httpHardening.js.map +1 -0
  64. package/dist/api/indexerRoutes.d.ts +46 -0
  65. package/dist/api/indexerRoutes.d.ts.map +1 -0
  66. package/dist/api/indexerRoutes.js +75 -0
  67. package/dist/api/indexerRoutes.js.map +1 -0
  68. package/dist/api/paidRoutes.d.ts +8 -0
  69. package/dist/api/paidRoutes.d.ts.map +1 -0
  70. package/dist/api/paidRoutes.js +175 -0
  71. package/dist/api/paidRoutes.js.map +1 -0
  72. package/dist/api/prepareRoutes.d.ts +58 -0
  73. package/dist/api/prepareRoutes.d.ts.map +1 -0
  74. package/dist/api/prepareRoutes.js +90 -0
  75. package/dist/api/prepareRoutes.js.map +1 -0
  76. package/dist/api/response.d.ts +39 -0
  77. package/dist/api/response.d.ts.map +1 -0
  78. package/dist/api/response.js +53 -0
  79. package/dist/api/response.js.map +1 -0
  80. package/dist/api/routes.d.ts +175 -0
  81. package/dist/api/routes.d.ts.map +1 -0
  82. package/dist/api/routes.js +276 -0
  83. package/dist/api/routes.js.map +1 -0
  84. package/dist/api/schemas.d.ts +147 -0
  85. package/dist/api/schemas.d.ts.map +1 -0
  86. package/dist/api/schemas.js +81 -0
  87. package/dist/api/schemas.js.map +1 -0
  88. package/dist/api/server.d.ts +11 -0
  89. package/dist/api/server.d.ts.map +1 -0
  90. package/dist/api/server.js +505 -0
  91. package/dist/api/server.js.map +1 -0
  92. package/dist/api/toolRoutes.d.ts +14 -0
  93. package/dist/api/toolRoutes.d.ts.map +1 -0
  94. package/dist/api/toolRoutes.js +138 -0
  95. package/dist/api/toolRoutes.js.map +1 -0
  96. package/dist/api/walletPrepareRoutes.d.ts +74 -0
  97. package/dist/api/walletPrepareRoutes.d.ts.map +1 -0
  98. package/dist/api/walletPrepareRoutes.js +127 -0
  99. package/dist/api/walletPrepareRoutes.js.map +1 -0
  100. package/dist/api/x402Gate.d.ts +51 -0
  101. package/dist/api/x402Gate.d.ts.map +1 -0
  102. package/dist/api/x402Gate.js +184 -0
  103. package/dist/api/x402Gate.js.map +1 -0
  104. package/dist/cli.d.ts +5 -5
  105. package/dist/cli.d.ts.map +1 -1
  106. package/dist/cli.js +154 -124
  107. package/dist/cli.js.map +1 -1
  108. package/dist/data/ecosystemRegistry.data.d.ts +3 -0
  109. package/dist/data/ecosystemRegistry.data.d.ts.map +1 -0
  110. package/dist/data/ecosystemRegistry.data.js +582 -0
  111. package/dist/data/ecosystemRegistry.data.js.map +1 -0
  112. package/dist/demo.d.ts +1 -1
  113. package/dist/demo.d.ts.map +1 -1
  114. package/dist/demo.js +206 -171
  115. package/dist/demo.js.map +1 -1
  116. package/dist/index.d.ts +2 -2
  117. package/dist/index.d.ts.map +1 -1
  118. package/dist/index.js +249 -164
  119. package/dist/index.js.map +1 -1
  120. package/dist/init.d.ts +1 -1
  121. package/dist/init.d.ts.map +1 -1
  122. package/dist/init.js +127 -65
  123. package/dist/init.js.map +1 -1
  124. package/dist/lib/analysis/approval.d.ts +29 -0
  125. package/dist/lib/analysis/approval.d.ts.map +1 -0
  126. package/dist/lib/analysis/approval.js +162 -0
  127. package/dist/lib/analysis/approval.js.map +1 -0
  128. package/dist/lib/analysis/calldata.d.ts +60 -0
  129. package/dist/lib/analysis/calldata.d.ts.map +1 -0
  130. package/dist/lib/analysis/calldata.js +349 -0
  131. package/dist/lib/analysis/calldata.js.map +1 -0
  132. package/dist/lib/analysis/contractIntel.d.ts +65 -0
  133. package/dist/lib/analysis/contractIntel.d.ts.map +1 -0
  134. package/dist/lib/analysis/contractIntel.js +320 -0
  135. package/dist/lib/analysis/contractIntel.js.map +1 -0
  136. package/dist/lib/analysis/evm.d.ts +42 -0
  137. package/dist/lib/analysis/evm.d.ts.map +1 -0
  138. package/dist/lib/analysis/evm.js +185 -0
  139. package/dist/lib/analysis/evm.js.map +1 -0
  140. package/dist/lib/analysis/gas.d.ts +4 -0
  141. package/dist/lib/analysis/gas.d.ts.map +1 -0
  142. package/dist/lib/analysis/gas.js +13 -0
  143. package/dist/lib/analysis/gas.js.map +1 -0
  144. package/dist/lib/analysis/index.d.ts +11 -0
  145. package/dist/lib/analysis/index.d.ts.map +1 -0
  146. package/dist/lib/analysis/index.js +16 -0
  147. package/dist/lib/analysis/index.js.map +1 -0
  148. package/dist/lib/analysis/pharosTokens.d.ts +31 -0
  149. package/dist/lib/analysis/pharosTokens.d.ts.map +1 -0
  150. package/dist/lib/analysis/pharosTokens.js +78 -0
  151. package/dist/lib/analysis/pharosTokens.js.map +1 -0
  152. package/dist/lib/analysis/safeTx.d.ts +27 -0
  153. package/dist/lib/analysis/safeTx.d.ts.map +1 -0
  154. package/dist/lib/analysis/safeTx.js +118 -0
  155. package/dist/lib/analysis/safeTx.js.map +1 -0
  156. package/dist/lib/analysis/token.d.ts +21 -0
  157. package/dist/lib/analysis/token.d.ts.map +1 -0
  158. package/dist/lib/analysis/token.js +151 -0
  159. package/dist/lib/analysis/token.js.map +1 -0
  160. package/dist/lib/analysis/types.d.ts +49 -0
  161. package/dist/lib/analysis/types.d.ts.map +1 -0
  162. package/dist/lib/analysis/types.js +10 -0
  163. package/dist/lib/analysis/types.js.map +1 -0
  164. package/dist/lib/analysis/x402.d.ts +24 -0
  165. package/dist/lib/analysis/x402.d.ts.map +1 -0
  166. package/dist/lib/analysis/x402.js +60 -0
  167. package/dist/lib/analysis/x402.js.map +1 -0
  168. package/dist/lib/auditLog.d.ts +1 -0
  169. package/dist/lib/auditLog.d.ts.map +1 -1
  170. package/dist/lib/auditLog.js +0 -0
  171. package/dist/lib/auditLog.js.map +1 -1
  172. package/dist/lib/config.d.ts +77 -0
  173. package/dist/lib/config.d.ts.map +1 -0
  174. package/dist/lib/config.js +120 -0
  175. package/dist/lib/config.js.map +1 -0
  176. package/dist/lib/constants.d.ts +452 -291
  177. package/dist/lib/constants.d.ts.map +1 -1
  178. package/dist/lib/constants.js +509 -292
  179. package/dist/lib/constants.js.map +1 -1
  180. package/dist/lib/dodoApi.d.ts +101 -78
  181. package/dist/lib/dodoApi.d.ts.map +1 -1
  182. package/dist/lib/dodoApi.js +259 -196
  183. package/dist/lib/dodoApi.js.map +1 -1
  184. package/dist/lib/ecosystemRegistry.d.ts +116 -0
  185. package/dist/lib/ecosystemRegistry.d.ts.map +1 -0
  186. package/dist/lib/ecosystemRegistry.js +178 -0
  187. package/dist/lib/ecosystemRegistry.js.map +1 -0
  188. package/dist/lib/envLoader.d.ts +2 -0
  189. package/dist/lib/envLoader.d.ts.map +1 -0
  190. package/dist/lib/envLoader.js +65 -0
  191. package/dist/lib/envLoader.js.map +1 -0
  192. package/dist/lib/goldsky.d.ts +58 -0
  193. package/dist/lib/goldsky.d.ts.map +1 -0
  194. package/dist/lib/goldsky.js +275 -0
  195. package/dist/lib/goldsky.js.map +1 -0
  196. package/dist/lib/guardian/decision.d.ts +23 -0
  197. package/dist/lib/guardian/decision.d.ts.map +1 -0
  198. package/dist/lib/guardian/decision.js +40 -0
  199. package/dist/lib/guardian/decision.js.map +1 -0
  200. package/dist/lib/http.d.ts +13 -14
  201. package/dist/lib/http.d.ts.map +1 -1
  202. package/dist/lib/http.js +383 -118
  203. package/dist/lib/http.js.map +1 -1
  204. package/dist/lib/managedExecution.d.ts +19 -0
  205. package/dist/lib/managedExecution.d.ts.map +1 -0
  206. package/dist/lib/managedExecution.js +64 -0
  207. package/dist/lib/managedExecution.js.map +1 -0
  208. package/dist/lib/merkleBatcher.d.ts +23 -0
  209. package/dist/lib/merkleBatcher.d.ts.map +1 -0
  210. package/dist/lib/merkleBatcher.js +62 -0
  211. package/dist/lib/merkleBatcher.js.map +1 -0
  212. package/dist/lib/networks.d.ts +48 -0
  213. package/dist/lib/networks.d.ts.map +1 -0
  214. package/dist/lib/networks.js +103 -0
  215. package/dist/lib/networks.js.map +1 -0
  216. package/dist/lib/observability/accessContext.d.ts +29 -0
  217. package/dist/lib/observability/accessContext.d.ts.map +1 -0
  218. package/dist/lib/observability/accessContext.js +50 -0
  219. package/dist/lib/observability/accessContext.js.map +1 -0
  220. package/dist/lib/observability/activityStore.d.ts +70 -0
  221. package/dist/lib/observability/activityStore.d.ts.map +1 -0
  222. package/dist/lib/observability/activityStore.js +149 -0
  223. package/dist/lib/observability/activityStore.js.map +1 -0
  224. package/dist/lib/observability/apiKey.d.ts +55 -0
  225. package/dist/lib/observability/apiKey.d.ts.map +1 -0
  226. package/dist/lib/observability/apiKey.js +141 -0
  227. package/dist/lib/observability/apiKey.js.map +1 -0
  228. package/dist/lib/observability/logger.d.ts +30 -0
  229. package/dist/lib/observability/logger.d.ts.map +1 -0
  230. package/dist/lib/observability/logger.js +30 -0
  231. package/dist/lib/observability/logger.js.map +1 -0
  232. package/dist/lib/observability/quota.d.ts +33 -0
  233. package/dist/lib/observability/quota.d.ts.map +1 -0
  234. package/dist/lib/observability/quota.js +49 -0
  235. package/dist/lib/observability/quota.js.map +1 -0
  236. package/dist/lib/observability/requestId.d.ts +8 -0
  237. package/dist/lib/observability/requestId.d.ts.map +1 -0
  238. package/dist/lib/observability/requestId.js +24 -0
  239. package/dist/lib/observability/requestId.js.map +1 -0
  240. package/dist/lib/observability/sanitize.d.ts +77 -0
  241. package/dist/lib/observability/sanitize.d.ts.map +1 -0
  242. package/dist/lib/observability/sanitize.js +228 -0
  243. package/dist/lib/observability/sanitize.js.map +1 -0
  244. package/dist/lib/observability/scopes.d.ts +20 -0
  245. package/dist/lib/observability/scopes.d.ts.map +1 -0
  246. package/dist/lib/observability/scopes.js +77 -0
  247. package/dist/lib/observability/scopes.js.map +1 -0
  248. package/dist/lib/okxDexApi.d.ts +106 -0
  249. package/dist/lib/okxDexApi.d.ts.map +1 -0
  250. package/dist/lib/okxDexApi.js +221 -0
  251. package/dist/lib/okxDexApi.js.map +1 -0
  252. package/dist/lib/persistentJsonStore.d.ts +5 -0
  253. package/dist/lib/persistentJsonStore.d.ts.map +1 -0
  254. package/dist/lib/persistentJsonStore.js +39 -0
  255. package/dist/lib/persistentJsonStore.js.map +1 -0
  256. package/dist/lib/pharos/attestationPublisher.d.ts +50 -0
  257. package/dist/lib/pharos/attestationPublisher.d.ts.map +1 -0
  258. package/dist/lib/pharos/attestationPublisher.js +262 -0
  259. package/dist/lib/pharos/attestationPublisher.js.map +1 -0
  260. package/dist/lib/pharos/ecosystem.d.ts +52 -0
  261. package/dist/lib/pharos/ecosystem.d.ts.map +1 -0
  262. package/dist/lib/pharos/ecosystem.js +431 -0
  263. package/dist/lib/pharos/ecosystem.js.map +1 -0
  264. package/dist/lib/pharos/ecosystemEvidence.d.ts +53 -0
  265. package/dist/lib/pharos/ecosystemEvidence.d.ts.map +1 -0
  266. package/dist/lib/pharos/ecosystemEvidence.js +133 -0
  267. package/dist/lib/pharos/ecosystemEvidence.js.map +1 -0
  268. package/dist/lib/pharos/rpc.d.ts +44 -0
  269. package/dist/lib/pharos/rpc.d.ts.map +1 -0
  270. package/dist/lib/pharos/rpc.js +90 -0
  271. package/dist/lib/pharos/rpc.js.map +1 -0
  272. package/dist/lib/pharos/rpcEvidence.d.ts +49 -0
  273. package/dist/lib/pharos/rpcEvidence.d.ts.map +1 -0
  274. package/dist/lib/pharos/rpcEvidence.js +46 -0
  275. package/dist/lib/pharos/rpcEvidence.js.map +1 -0
  276. package/dist/lib/pharos/rpcMethods.d.ts +46 -0
  277. package/dist/lib/pharos/rpcMethods.d.ts.map +1 -0
  278. package/dist/lib/pharos/rpcMethods.js +176 -0
  279. package/dist/lib/pharos/rpcMethods.js.map +1 -0
  280. package/dist/lib/pharos/spvVerifier.d.ts +47 -0
  281. package/dist/lib/pharos/spvVerifier.d.ts.map +1 -0
  282. package/dist/lib/pharos/spvVerifier.js +105 -0
  283. package/dist/lib/pharos/spvVerifier.js.map +1 -0
  284. package/dist/lib/pharos/userSignedBroadcaster.d.ts +10 -0
  285. package/dist/lib/pharos/userSignedBroadcaster.d.ts.map +1 -0
  286. package/dist/lib/pharos/userSignedBroadcaster.js +50 -0
  287. package/dist/lib/pharos/userSignedBroadcaster.js.map +1 -0
  288. package/dist/lib/pharosClient.d.ts +53 -58
  289. package/dist/lib/pharosClient.d.ts.map +1 -1
  290. package/dist/lib/pharosClient.js +56 -63
  291. package/dist/lib/pharosClient.js.map +1 -1
  292. package/dist/lib/policy/actionPolicyEngine.d.ts +89 -53
  293. package/dist/lib/policy/actionPolicyEngine.d.ts.map +1 -1
  294. package/dist/lib/policy/actionPolicyEngine.js +373 -212
  295. package/dist/lib/policy/actionPolicyEngine.js.map +1 -1
  296. package/dist/lib/policy/agentPolicy.d.ts +29 -0
  297. package/dist/lib/policy/agentPolicy.d.ts.map +1 -0
  298. package/dist/lib/policy/agentPolicy.js +154 -0
  299. package/dist/lib/policy/agentPolicy.js.map +1 -0
  300. package/dist/lib/policy/policyPresets.d.ts +30 -0
  301. package/dist/lib/policy/policyPresets.d.ts.map +1 -0
  302. package/dist/lib/policy/policyPresets.js +124 -0
  303. package/dist/lib/policy/policyPresets.js.map +1 -0
  304. package/dist/lib/policy/writeExecutionGate.d.ts +23 -0
  305. package/dist/lib/policy/writeExecutionGate.d.ts.map +1 -0
  306. package/dist/lib/policy/writeExecutionGate.js +65 -0
  307. package/dist/lib/policy/writeExecutionGate.js.map +1 -0
  308. package/dist/lib/preparedTxStore.d.ts +21 -0
  309. package/dist/lib/preparedTxStore.d.ts.map +1 -0
  310. package/dist/lib/preparedTxStore.js +90 -0
  311. package/dist/lib/preparedTxStore.js.map +1 -0
  312. package/dist/lib/price/chainlinkPushProvider.d.ts +34 -0
  313. package/dist/lib/price/chainlinkPushProvider.d.ts.map +1 -0
  314. package/dist/lib/price/chainlinkPushProvider.js +36 -0
  315. package/dist/lib/price/chainlinkPushProvider.js.map +1 -0
  316. package/dist/lib/price/feedRegistry.d.ts +26 -0
  317. package/dist/lib/price/feedRegistry.d.ts.map +1 -0
  318. package/dist/lib/price/feedRegistry.js +67 -0
  319. package/dist/lib/price/feedRegistry.js.map +1 -0
  320. package/dist/lib/price/priceResolver.d.ts +35 -0
  321. package/dist/lib/price/priceResolver.d.ts.map +1 -0
  322. package/dist/lib/price/priceResolver.js +246 -0
  323. package/dist/lib/price/priceResolver.js.map +1 -0
  324. package/dist/lib/price/supraProvider.d.ts +9 -0
  325. package/dist/lib/price/supraProvider.d.ts.map +1 -0
  326. package/dist/lib/price/supraProvider.js +17 -0
  327. package/dist/lib/price/supraProvider.js.map +1 -0
  328. package/dist/lib/price/types.d.ts +67 -0
  329. package/dist/lib/price/types.d.ts.map +1 -0
  330. package/dist/lib/price/types.js +7 -0
  331. package/dist/lib/price/types.js.map +1 -0
  332. package/dist/lib/productionGuards.d.ts +16 -0
  333. package/dist/lib/productionGuards.d.ts.map +1 -0
  334. package/dist/lib/productionGuards.js +93 -0
  335. package/dist/lib/productionGuards.js.map +1 -0
  336. package/dist/lib/recipientSafety.d.ts +5 -0
  337. package/dist/lib/recipientSafety.d.ts.map +1 -0
  338. package/dist/lib/recipientSafety.js +28 -0
  339. package/dist/lib/recipientSafety.js.map +1 -0
  340. package/dist/lib/riskEngine.d.ts +45 -26
  341. package/dist/lib/riskEngine.d.ts.map +1 -1
  342. package/dist/lib/riskEngine.js +346 -283
  343. package/dist/lib/riskEngine.js.map +1 -1
  344. package/dist/lib/riskInclusion.d.ts +72 -0
  345. package/dist/lib/riskInclusion.d.ts.map +1 -0
  346. package/dist/lib/riskInclusion.js +252 -0
  347. package/dist/lib/riskInclusion.js.map +1 -0
  348. package/dist/lib/safeHandsRegistry.d.ts +32 -0
  349. package/dist/lib/safeHandsRegistry.d.ts.map +1 -0
  350. package/dist/lib/safeHandsRegistry.js +151 -0
  351. package/dist/lib/safeHandsRegistry.js.map +1 -0
  352. package/dist/lib/signer/index.d.ts +24 -24
  353. package/dist/lib/signer/index.d.ts.map +1 -1
  354. package/dist/lib/signer/index.js +110 -88
  355. package/dist/lib/signer/index.js.map +1 -1
  356. package/dist/lib/spendAccumulator.d.ts +24 -1
  357. package/dist/lib/spendAccumulator.d.ts.map +1 -1
  358. package/dist/lib/spendAccumulator.js +76 -6
  359. package/dist/lib/spendAccumulator.js.map +1 -1
  360. package/dist/lib/toolResponse.d.ts +30 -25
  361. package/dist/lib/toolResponse.d.ts.map +1 -1
  362. package/dist/lib/toolResponse.js +57 -53
  363. package/dist/lib/toolResponse.js.map +1 -1
  364. package/dist/lib/validation.d.ts +7 -0
  365. package/dist/lib/validation.d.ts.map +1 -0
  366. package/dist/lib/validation.js +62 -0
  367. package/dist/lib/validation.js.map +1 -0
  368. package/dist/lib/wallet/index.d.ts +33 -37
  369. package/dist/lib/wallet/index.d.ts.map +1 -1
  370. package/dist/lib/wallet/index.js +141 -128
  371. package/dist/lib/wallet/index.js.map +1 -1
  372. package/dist/lib/x402ReplayStore.d.ts +6 -0
  373. package/dist/lib/x402ReplayStore.d.ts.map +1 -0
  374. package/dist/lib/x402ReplayStore.js +79 -0
  375. package/dist/lib/x402ReplayStore.js.map +1 -0
  376. package/dist/safehands.zip +0 -0
  377. package/dist/sdk.d.ts +14 -0
  378. package/dist/sdk.d.ts.map +1 -0
  379. package/dist/sdk.js +25 -0
  380. package/dist/sdk.js.map +1 -0
  381. package/dist/tools/approveToken.d.ts +66 -45
  382. package/dist/tools/approveToken.d.ts.map +1 -1
  383. package/dist/tools/approveToken.js +152 -85
  384. package/dist/tools/approveToken.js.map +1 -1
  385. package/dist/tools/assessRisk.d.ts +66 -79
  386. package/dist/tools/assessRisk.d.ts.map +1 -1
  387. package/dist/tools/assessRisk.js +63 -104
  388. package/dist/tools/assessRisk.js.map +1 -1
  389. package/dist/tools/checkAllowance.d.ts +49 -43
  390. package/dist/tools/checkAllowance.d.ts.map +1 -1
  391. package/dist/tools/checkAllowance.js +78 -56
  392. package/dist/tools/checkAllowance.js.map +1 -1
  393. package/dist/tools/checkTokenSecurity.d.ts +103 -46
  394. package/dist/tools/checkTokenSecurity.d.ts.map +1 -1
  395. package/dist/tools/checkTokenSecurity.js +240 -95
  396. package/dist/tools/checkTokenSecurity.js.map +1 -1
  397. package/dist/tools/createAgentWallet.d.ts +30 -26
  398. package/dist/tools/createAgentWallet.d.ts.map +1 -1
  399. package/dist/tools/createAgentWallet.js +87 -58
  400. package/dist/tools/createAgentWallet.js.map +1 -1
  401. package/dist/tools/estimateGas.d.ts +84 -79
  402. package/dist/tools/estimateGas.d.ts.map +1 -1
  403. package/dist/tools/estimateGas.js +130 -124
  404. package/dist/tools/estimateGas.js.map +1 -1
  405. package/dist/tools/executeSwap.d.ts +109 -61
  406. package/dist/tools/executeSwap.d.ts.map +1 -1
  407. package/dist/tools/executeSwap.js +289 -141
  408. package/dist/tools/executeSwap.js.map +1 -1
  409. package/dist/tools/explainRisk.d.ts +29 -29
  410. package/dist/tools/explainRisk.d.ts.map +1 -1
  411. package/dist/tools/explainRisk.js +33 -32
  412. package/dist/tools/explainRisk.js.map +1 -1
  413. package/dist/tools/getAgentPolicy.d.ts +15 -0
  414. package/dist/tools/getAgentPolicy.d.ts.map +1 -0
  415. package/dist/tools/getAgentPolicy.js +16 -0
  416. package/dist/tools/getAgentPolicy.js.map +1 -0
  417. package/dist/tools/getAgentReputation.d.ts +31 -0
  418. package/dist/tools/getAgentReputation.d.ts.map +1 -0
  419. package/dist/tools/getAgentReputation.js +44 -0
  420. package/dist/tools/getAgentReputation.js.map +1 -0
  421. package/dist/tools/getAgentWallet.d.ts +21 -21
  422. package/dist/tools/getAgentWallet.d.ts.map +1 -1
  423. package/dist/tools/getAgentWallet.js +37 -27
  424. package/dist/tools/getAgentWallet.js.map +1 -1
  425. package/dist/tools/getAgentWalletBalance.d.ts +11 -11
  426. package/dist/tools/getAgentWalletBalance.d.ts.map +1 -1
  427. package/dist/tools/getAgentWalletBalance.js +102 -70
  428. package/dist/tools/getAgentWalletBalance.js.map +1 -1
  429. package/dist/tools/getExecutionHistory.d.ts +49 -49
  430. package/dist/tools/getExecutionHistory.d.ts.map +1 -1
  431. package/dist/tools/getExecutionHistory.js +148 -154
  432. package/dist/tools/getExecutionHistory.js.map +1 -1
  433. package/dist/tools/getGasPrice.d.ts +43 -43
  434. package/dist/tools/getGasPrice.d.ts.map +0 -0
  435. package/dist/tools/getGasPrice.js +59 -59
  436. package/dist/tools/getGasPrice.js.map +1 -1
  437. package/dist/tools/getPoolInfo.d.ts +75 -75
  438. package/dist/tools/getPoolInfo.d.ts.map +1 -1
  439. package/dist/tools/getPoolInfo.js +142 -137
  440. package/dist/tools/getPoolInfo.js.map +1 -1
  441. package/dist/tools/getSpvProof.d.ts +24 -0
  442. package/dist/tools/getSpvProof.d.ts.map +1 -0
  443. package/dist/tools/getSpvProof.js +64 -0
  444. package/dist/tools/getSpvProof.js.map +1 -0
  445. package/dist/tools/getTokenPrice.d.ts +56 -113
  446. package/dist/tools/getTokenPrice.d.ts.map +1 -1
  447. package/dist/tools/getTokenPrice.js +110 -117
  448. package/dist/tools/getTokenPrice.js.map +1 -1
  449. package/dist/tools/getTransactionStatus.d.ts +43 -43
  450. package/dist/tools/getTransactionStatus.d.ts.map +0 -0
  451. package/dist/tools/getTransactionStatus.js +59 -59
  452. package/dist/tools/getTransactionStatus.js.map +0 -0
  453. package/dist/tools/getWalletBalance.d.ts +103 -68
  454. package/dist/tools/getWalletBalance.d.ts.map +1 -1
  455. package/dist/tools/getWalletBalance.js +127 -87
  456. package/dist/tools/getWalletBalance.js.map +1 -1
  457. package/dist/tools/publishRiskScore.d.ts +85 -63
  458. package/dist/tools/publishRiskScore.d.ts.map +1 -1
  459. package/dist/tools/publishRiskScore.js +136 -88
  460. package/dist/tools/publishRiskScore.js.map +1 -1
  461. package/dist/tools/queryGoldsky.d.ts +20 -0
  462. package/dist/tools/queryGoldsky.d.ts.map +1 -0
  463. package/dist/tools/queryGoldsky.js +29 -0
  464. package/dist/tools/queryGoldsky.js.map +1 -0
  465. package/dist/tools/queryRiskRegistry.d.ts +38 -38
  466. package/dist/tools/queryRiskRegistry.d.ts.map +1 -1
  467. package/dist/tools/queryRiskRegistry.js +59 -55
  468. package/dist/tools/queryRiskRegistry.js.map +1 -1
  469. package/dist/tools/safehandsPreflightCheck.d.ts +92 -77
  470. package/dist/tools/safehandsPreflightCheck.d.ts.map +1 -1
  471. package/dist/tools/safehandsPreflightCheck.js +174 -47
  472. package/dist/tools/safehandsPreflightCheck.js.map +1 -1
  473. package/dist/tools/safehandsRiskReport.d.ts +96 -81
  474. package/dist/tools/safehandsRiskReport.d.ts.map +1 -1
  475. package/dist/tools/safehandsRiskReport.js +48 -28
  476. package/dist/tools/safehandsRiskReport.js.map +1 -1
  477. package/dist/tools/safehandsSafeExecute.d.ts +20 -20
  478. package/dist/tools/safehandsSafeExecute.d.ts.map +1 -1
  479. package/dist/tools/safehandsSafeExecute.js +164 -81
  480. package/dist/tools/safehandsSafeExecute.js.map +1 -1
  481. package/dist/tools/safehandsWalletHealth.d.ts +28 -14
  482. package/dist/tools/safehandsWalletHealth.d.ts.map +1 -1
  483. package/dist/tools/safehandsWalletHealth.js +145 -103
  484. package/dist/tools/safehandsWalletHealth.js.map +1 -1
  485. package/dist/tools/safehandsX402Preflight.d.ts +26 -26
  486. package/dist/tools/safehandsX402Preflight.d.ts.map +1 -1
  487. package/dist/tools/safehandsX402Preflight.js +86 -65
  488. package/dist/tools/safehandsX402Preflight.js.map +1 -1
  489. package/dist/tools/sendPayment.d.ts +63 -57
  490. package/dist/tools/sendPayment.d.ts.map +1 -1
  491. package/dist/tools/sendPayment.js +144 -117
  492. package/dist/tools/sendPayment.js.map +1 -1
  493. package/dist/tools/setAgentPolicy.d.ts +75 -0
  494. package/dist/tools/setAgentPolicy.d.ts.map +1 -0
  495. package/dist/tools/setAgentPolicy.js +80 -0
  496. package/dist/tools/setAgentPolicy.js.map +1 -0
  497. package/dist/tools/simulateTransaction.d.ts +64 -60
  498. package/dist/tools/simulateTransaction.d.ts.map +1 -1
  499. package/dist/tools/simulateTransaction.js +116 -83
  500. package/dist/tools/simulateTransaction.js.map +1 -1
  501. package/dist/tools/tokenRegistryStatus.d.ts +46 -26
  502. package/dist/tools/tokenRegistryStatus.d.ts.map +1 -1
  503. package/dist/tools/tokenRegistryStatus.js +126 -96
  504. package/dist/tools/tokenRegistryStatus.js.map +1 -1
  505. package/dist/tools/verifyRiskInclusion.d.ts +59 -0
  506. package/dist/tools/verifyRiskInclusion.d.ts.map +1 -0
  507. package/dist/tools/verifyRiskInclusion.js +40 -0
  508. package/dist/tools/verifyRiskInclusion.js.map +1 -0
  509. package/dist/tools/x402PayAndFetch.d.ts +87 -81
  510. package/dist/tools/x402PayAndFetch.d.ts.map +1 -1
  511. package/dist/tools/x402PayAndFetch.js +295 -152
  512. package/dist/tools/x402PayAndFetch.js.map +1 -1
  513. package/dist/worker.d.ts +3 -0
  514. package/dist/worker.d.ts.map +1 -0
  515. package/dist/worker.js +39 -0
  516. package/dist/worker.js.map +1 -0
  517. package/dist/x402Server.d.ts +1 -1
  518. package/dist/x402Server.d.ts.map +1 -1
  519. package/dist/x402Server.js +409 -252
  520. package/dist/x402Server.js.map +1 -1
  521. package/docs/REVIEWER_QUICKSTART.md +113 -0
  522. package/docs/SAFEHANDS_REVIEWER_DEMO_SCRIPT.md +228 -0
  523. package/package.json +130 -83
  524. package/contracts/RiskRegistry.json +0 -223
  525. package/contracts/RiskRegistry.sol +0 -58
  526. package/dist/lib/testDodoLive.d.ts +0 -2
  527. package/dist/lib/testDodoLive.d.ts.map +0 -1
  528. package/dist/lib/testDodoLive.js +0 -105
  529. package/dist/lib/testDodoLive.js.map +0 -1
  530. package/dist/lib/testLiveSafehands.d.ts +0 -2
  531. package/dist/lib/testLiveSafehands.d.ts.map +0 -1
  532. package/dist/lib/testLiveSafehands.js +0 -93
  533. package/dist/lib/testLiveSafehands.js.map +0 -1
  534. package/dist/lib/testRpc.d.ts +0 -2
  535. package/dist/lib/testRpc.d.ts.map +0 -1
  536. package/dist/lib/testRpc.js +0 -30
  537. package/dist/lib/testRpc.js.map +0 -1
  538. package/dist/lib/testRpcLive.d.ts +0 -2
  539. package/dist/lib/testRpcLive.d.ts.map +0 -1
  540. package/dist/lib/testRpcLive.js +0 -89
  541. package/dist/lib/testRpcLive.js.map +0 -1
  542. package/dist/lib/testTools.d.ts +0 -2
  543. package/dist/lib/testTools.d.ts.map +0 -1
  544. package/dist/lib/testTools.js +0 -398
  545. package/dist/lib/testTools.js.map +0 -1
  546. package/dist/lib/testX402Live.d.ts +0 -2
  547. package/dist/lib/testX402Live.d.ts.map +0 -1
  548. package/dist/lib/testX402Live.js +0 -160
  549. package/dist/lib/testX402Live.js.map +0 -1
  550. package/dist/scripts/checkDeploy.d.ts +0 -2
  551. package/dist/scripts/checkDeploy.d.ts.map +0 -1
  552. package/dist/scripts/checkDeploy.js +0 -25
  553. package/dist/scripts/checkDeploy.js.map +0 -1
  554. package/dist/scripts/deployRegistry.d.ts +0 -2
  555. package/dist/scripts/deployRegistry.d.ts.map +0 -1
  556. package/dist/scripts/deployRegistry.js +0 -101
  557. package/dist/scripts/deployRegistry.js.map +0 -1
  558. package/dist/scripts/testRegistry.d.ts +0 -2
  559. package/dist/scripts/testRegistry.d.ts.map +0 -1
  560. package/dist/scripts/testRegistry.js +0 -44
  561. package/dist/scripts/testRegistry.js.map +0 -1
  562. package/examples/dashboard/index.html +0 -337
  563. package/examples/pharos-skill-engine/SKILL.safehands.md +0 -85
  564. package/examples/pharos-skill-engine/assets/safehands/example-actions.json +0 -49
  565. package/examples/pharos-skill-engine/assets/safehands/policy-defaults.json +0 -11
  566. package/examples/pharos-skill-engine/references/safehands.md +0 -345
  567. package/examples/scenario-hack.ts +0 -38
  568. package/skill/SKILL.md +0 -133
  569. package/skill/assets/safehands/example-actions.json +0 -49
  570. package/skill/assets/safehands/policy-defaults.json +0 -11
  571. package/skill/references/safehands.md +0 -345
@@ -1 +1 @@
1
- {"version":3,"file":"x402Server.js","sourceRoot":"","sources":["../src/x402Server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"x402Server.js","sourceRoot":"","sources":["../src/x402Server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ # SafeHands reviewer quickstart
2
+
3
+ SafeHands is the pre-execution transaction firewall for AI agent finance on Pharos, mainnet-first (Pacific, chain `1672`). It is read-only by default and only executes writes/payments after explicit environment flags, signer availability, policy checks, and authorization where required.
4
+
5
+ **No-install path:** the fully-hosted, zero-custody agent is live on [Anvita Flow](https://flow.anvita.xyz/home) as `safehands` (Agent Carnival Phase 2); any Steward Agent on the marketplace can discover and call it (no server, no keys). To try the safety engine on your own machine without cloning, run `npx -y github:SZtch/safehands-pharos --demo`. To exercise the HTTP API directly, self-host the read-only backend locally (`npm run build && node dist/api/server.js` → `http://localhost:4022`) and use the curl examples in [SAFEHANDS_REVIEWER_DEMO_SCRIPT.md](./SAFEHANDS_REVIEWER_DEMO_SCRIPT.md). For the fastest "firewall in action" moment (the engine blocking a drainer-style unlimited approve from raw calldata, offline), see the 60-second section in that script.
6
+
7
+ ## 1. Install and build
8
+
9
+ ```bash
10
+ npm ci
11
+ npm run build
12
+ ```
13
+
14
+ No `.env`, private key, or wallet is required for default review.
15
+
16
+ ## 2. Run validation
17
+
18
+ ```bash
19
+ npm test
20
+ npm run demo
21
+ npm pack --dry-run
22
+ ```
23
+
24
+ Expected:
25
+
26
+ - `npm run build` compiles TypeScript.
27
+ - `npm test` runs the hermetic deterministic suite: policy engine, write gate, x402 gate, token-security fail-closed behavior, execution hardening, SDK exports, wallet crypto, and risk inclusion; no network, never broadcasts. Live read-only RPC checks run separately via `npm run test:live`.
28
+ - `npm run demo` runs 12 non-destructive demo scenarios (no private key, no wallet, no broadcast).
29
+ - `npm pack --dry-run` includes `dist`, contracts, core docs, `SKILL.md`, and the default policy.
30
+
31
+ <details>
32
+ <summary>The 12 demo scenarios</summary>
33
+
34
+ 1. `safehands_wallet_health` returns read-only/default wallet status.
35
+ 2. `safehands_preflight_check` allows a small PROS payment intent on Pharos Pacific Mainnet.
36
+ 3. `safehands_preflight_check` blocks an unlimited USDC approval.
37
+ 4. `token_registry_status` recognizes Pacific Mainnet USDC from the active mainnet registry.
38
+ 5. `safehands_x402_preflight` validates an x402 URL, amount, and Pacific USDC payment token without signing.
39
+ 6. `x402_pay_and_fetch` fetches a free endpoint without payment.
40
+ 7. `x402_pay_and_fetch` refuses paid execution while write tools are disabled.
41
+ 8. SSRF protection blocks localhost/private-IP fetches by default.
42
+ 9. `send_payment` fails closed because write tools are disabled by default.
43
+ 10. `explain_risk` returns a human-readable reason for the blocked approval.
44
+ 11. **Tokenized-asset (RWA) transfer compliance**: an approval on an unregistered asset token with an unverified spender returns `REQUIRE_CONFIRMATION` (risk `MEDIUM`).
45
+ 12. **Real-Fi settlement cap**: an x402/USDC settlement over the active policy cap returns `BLOCK` (risk `HIGH`).
46
+
47
+ </details>
48
+
49
+ `npm run test:contracts` is available for Solidity tests when the Hardhat compiler is available. Some environments need network access or a cached compiler to run it.
50
+
51
+ ## 3. What to check
52
+
53
+ ### Read-only SafeHands behavior
54
+
55
+ - `safehands_preflight_check` returns ALLOW/BLOCK/REQUIRE_CONFIRMATION decisions.
56
+ - `token_registry_status` uses the active network registry.
57
+ - `safehands_x402_preflight` validates URL, amount, token, chain, and signer readiness without paying.
58
+ - `safehands_wallet_health` works without a private key.
59
+
60
+ ### Gated execution behavior
61
+
62
+ Execution tools are disabled by default. To enable them intentionally, the operator must configure the relevant flags, signer mode, funding, policy limits, and authorization. Write/execution tools are **experimental and unaudited**: they ship disabled and are opt-in, self-hosted, single-tenant only.
63
+
64
+ Typical gates:
65
+
66
+ 1. `WRITE_TOOLS_ENABLED=true`
67
+ 2. signer or managed wallet available
68
+ 3. funded wallet
69
+ 4. per-agent policy limits
70
+ 5. preflight decision not blocked
71
+ 6. managed-wallet authorization when required
72
+
73
+ ### Token consistency
74
+
75
+ Pacific Mainnet token-aware tools must use Pacific Mainnet token addresses. If a token such as USDT is not configured for Pacific Mainnet, tools should return `UNSUPPORTED_TOKEN` or a structured unsupported entry instead of querying an Atlantic/testnet address.
76
+
77
+ ## 4. Key files
78
+
79
+ | File | Purpose |
80
+ |---|---|
81
+ | `src/index.ts` | MCP server registering 33 tools |
82
+ | `src/lib/constants.ts` | network/token/x402 constants and active-network helpers |
83
+ | `src/tools/tokenRegistryStatus.ts` | active-network token classification |
84
+ | `src/lib/policy/actionPolicyEngine.ts` | deterministic policy engine |
85
+ | `src/tools/safehandsX402Preflight.ts` | x402 preflight |
86
+ | `src/tools/x402PayAndFetch.ts` | gated x402 fetch/payment flow |
87
+ | `contracts/SafeHandsRegistry.sol` | operator/agent registry and risk-score lookup |
88
+ | `contracts/SafeHandsAttestation.sol` | immutable proof ledger |
89
+ | `anvita/safehands/SKILL.md` | Anvita hosted Skill metadata |
90
+ | `anvita/safehands/assets/` | Skill Engine network/token/contract assets |
91
+
92
+ ## 5. Default network
93
+
94
+ ```text
95
+ Network: Pharos Pacific Mainnet
96
+ Chain ID: 1672
97
+ Native: PROS
98
+ RPC: https://rpc.pharos.xyz
99
+ Explorer: https://www.pharosscan.xyz
100
+ ```
101
+
102
+ Atlantic Testnet remains available for compatibility through `SAFEHANDS_NETWORK=atlantic-testnet`, but Pacific Mainnet is the default.
103
+
104
+ ## 6. Security defaults
105
+
106
+ ```env
107
+ WALLET_MODE=none
108
+ WRITE_TOOLS_ENABLED=false
109
+ ALLOW_UNLIMITED_APPROVAL=false
110
+ ALLOW_LOCAL_X402_FETCH=false
111
+ ```
112
+
113
+ These defaults make SafeHands safe to review without custody or transaction broadcast.
@@ -0,0 +1,228 @@
1
+ # SafeHands Reviewer Demo Script
2
+
3
+ Current as of v2.6.0: Pharos Pacific Mainnet (chain `1672`), Anvita Flow hosted agent, live contracts.
4
+
5
+ ## 1. Project one-liner
6
+
7
+ SafeHands is the transaction firewall for AI agent finance on Pharos Pacific Mainnet: a deterministic policy engine that evaluates every agent action (payments, approvals, swaps, x402 calls, tokenized-asset moves) *before* the signature and returns `ALLOW` / `BLOCK` / `REQUIRE_CONFIRMATION` / `PREPARE_ONLY` with a plain-English reason. The hosted deployment is **read-only and zero-custody**: it holds no keys, signs nothing, and broadcasts nothing on its own.
8
+
9
+ For the Real-Fi & RWA angle (how the attestation ledger, risk registry, token verification, and USDC settlement rails serve tokenized real-world assets), see [REALFI_RWA_ALIGNMENT.md](./REALFI_RWA_ALIGNMENT.md).
10
+
11
+ ## 2. Fastest paths for a reviewer
12
+
13
+ ### No-install path: Anvita Flow hosted agent
14
+
15
+ The fully-hosted, zero-custody agent is live on [Anvita Flow](https://flow.anvita.xyz/home) as `safehands` (Agent Carnival Phase 2). Any Steward Agent on the marketplace can discover and call it: no server, no keys, no custody. To try the engine on your own machine without cloning:
16
+
17
+ ```bash
18
+ npx -y github:SZtch/safehands-pharos --demo
19
+ ```
20
+
21
+ ### Self-host the HTTP API (read-only; no keys, no tx)
22
+
23
+ Run the read-only reference backend locally, then hit it over HTTP:
24
+
25
+ ```bash
26
+ npm ci && npm run build
27
+ node dist/api/server.js # read-only API on http://localhost:4022
28
+
29
+ # Service health
30
+ curl -s http://localhost:4022/health
31
+
32
+ # Public network config (chain 1672)
33
+ curl -s http://localhost:4022/public-config
34
+
35
+ # A real preflight decision: unlimited approval → BLOCK
36
+ curl -s -X POST http://localhost:4022/tools/safehands_preflight_check \
37
+ -H "content-type: application/json" \
38
+ -d '{"actionType":"approve_token","chainId":1672,"approvalToken":"USDC","spender":"0x000000000000000000000000000000000000dEaD","approvalAmount":"max"}'
39
+
40
+ # On-chain reputation of the deployer (live attestation contract)
41
+ curl -s -X POST http://localhost:4022/tools/get_agent_reputation \
42
+ -H "content-type: application/json" \
43
+ -d '{"address":"0x6730d3a2A217108AB53CCFe60ffdAd05D3C124e5"}'
44
+
45
+ # x402 paid endpoint. Fail-closed by default: without x402 config this returns 503.
46
+ # With X402_PAY_TO and a reachable external X402_FACILITATOR_URL set, it returns a
47
+ # real HTTP 402 challenge (mainnet USDC, eip155:1672).
48
+ curl -s -i http://localhost:4022/paid/risk-report
49
+ ```
50
+
51
+ Interactive browser demo (while the local API runs): **http://localhost:4022/demo**.
52
+
53
+ ## 3. Why SafeHands matters
54
+
55
+ AI agents making on-chain transactions need guardrails. Without safety checks, an agent could:
56
+
57
+ - Send funds to the wrong address or chain
58
+ - Approve unlimited token spending
59
+ - Sign drainer-crafted calldata it never actually decoded
60
+ - Execute swaps above policy limits
61
+ - Pay x402 invoices to SSRF targets
62
+ - Move a tokenized asset to an unvetted counterparty with no audit trail
63
+
64
+ SafeHands sits between the agent and the blockchain. Every action goes through preflight, risk scoring, policy checks, and authorization gates before execution is allowed; and, on the opt-in relayed-broadcast path (off by default), the broadcasts it relays are attested on-chain.
65
+
66
+ ## 4. Execution modes
67
+
68
+ | Mode | Wallet | Where | Use case |
69
+ |------|--------|-------|----------|
70
+ | Read-only preflight *(default)* | none | hosted or local | Safety checks, risk analysis, demos |
71
+ | User-signed | user's own | anywhere | SafeHands validates; user signs externally; verified broadcast + attestation |
72
+ | Managed execution | local encrypted wallet | self-hosted only | Full agent autonomy, opt-in; refused on public hosts by a boot guard |
73
+ | Env wallet (advanced) | `PRIVATE_KEY` in env | local dev | Local mainnet development |
74
+
75
+ ## 5. Live contracts: Pharos Pacific Mainnet
76
+
77
+ ```
78
+ Network: Pharos Pacific Mainnet
79
+ Chain ID: 1672
80
+ Registry: 0x428e02bf85412e7242d991cd6725ec59e8b06c8d
81
+ Attestation: 0x71a7a87b3b1ab6d86204cad691bb32fd75b4588c
82
+ Owner: 0x6730d3a2a217108ab53ccfe60ffdad05d3c124e5
83
+ Explorer: https://www.pharosscan.xyz
84
+ ```
85
+
86
+ - **SafeHandsRegistry**: authorized operators, Merkle risk roots, `verifyRiskRecord` on-chain view.
87
+ - **SafeHandsAttestation**: immutable, privacy-preserving verified-safe records plus `reputationOf()` per-address reputation. Only hashed context is published (`preparedTransactionHash`, `policyHash`, `metadataHash`, `txHash`); never raw calldata, amounts, recipients, or keys.
88
+
89
+ Both are verifiable on the explorer; the reputation oracle has live attestations recorded by a dedicated attester key (`0xe9F1d28C7136BbB1a57DA9852F216b8Cb39Eb888`) that never signs user transactions.
90
+
91
+ ## 6. Demo commands
92
+
93
+ ### Quick demo (no setup required)
94
+
95
+ ```bash
96
+ npm ci && npm run build
97
+ npm run demo # or: npx -y github:SZtch/safehands-pharos --demo
98
+ ```
99
+
100
+ ### The firewall reading raw calldata (v2.4.0, 60-second demonstration)
101
+
102
+ The hosted engine decodes approval/transfer/admin calldata **offline**: no simulation service, no third-party API. Feed it a drainer-style transaction and watch it block from the raw bytes:
103
+
104
+ ```bash
105
+ # Unlimited approve to an unknown spender, hidden inside a "vault deposit": BLOCK
106
+ node anvita/safehands/scripts/safehands-engine.js analyze '{
107
+ "subjectType":"intent","action":"vault_deposit",
108
+ "walletAddress":"0x1111111111111111111111111111111111111111",
109
+ "vault":"0xcA11bde05977b3631167028862bE2a173976CA11",
110
+ "to":"0xc879C018Db60520f4355C26eD1a6D572CDAC1815",
111
+ "data":"0x095ea7b3000000000000000000000000000000000000000000000000000000000000deadffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}'
112
+ # -> recommendation: block, riskScore >= 90
113
+ # -> "UNLIMITED approve to an UNKNOWN spender (0x…dead); the spender could move the entire … balance"
114
+ ```
115
+
116
+ Contrast with a **registry-verified** protocol: trust comes only from first-party evidence (the project's own docs + on-chain checks, cited in the registry):
117
+
118
+ ```bash
119
+ # Morpho Blue on Pharos, verified 2026-07-11 from Morpho's own addresses page
120
+ node anvita/safehands/scripts/safehands-engine.js analyze '{"subjectType":"contract","address":"0x18573fA18fd17dDfD790B4a5B5b2977aad3b4Efb"}'
121
+ # -> recommendation: allow, riskScore 5
122
+ # -> "Canonical registry contract: Morpho Blue (verified via official-docs citation + on-chain check)"
123
+ ```
124
+
125
+ Ecosystem names the registry recognizes but whose addresses are **not** yet published in their own docs (FaroSwap, Stargate, …) stay fail-closed: an unlimited approval to them blocks. That is policy, not a bug: recognition is never proof.
126
+
127
+ ### Test suites
128
+
129
+ ```bash
130
+ npm test # hermetic deterministic suite (no wallet, no RPC, no network needed)
131
+ npm run demo # 12 non-destructive demo scenarios
132
+ npm run test:contracts # 25 Hardhat Solidity tests (offline smoke fallback without a compiler)
133
+ npm run test:all # all combined
134
+ ```
135
+
136
+ Focused suites also exist: `test/x402-gate.test.ts` (x402 payment gate with a mock facilitator) and `test/risk-inclusion.test.ts` (Merkle inclusion proof path), runnable via `tsx --test <file>`.
137
+
138
+ ## 7. Expected outputs
139
+
140
+ ### Safe small payment → ALLOW
141
+
142
+ ```
143
+ Action: send_payment
144
+ Chain ID: 1672 (Pharos Pacific Mainnet)
145
+ Amount: 0.001 PROS
146
+ -> Decision: ALLOW
147
+ ```
148
+
149
+ ### Non-Pharos chain → BLOCK
150
+
151
+ ```
152
+ Action: send_payment
153
+ Chain ID: 1 (Ethereum Mainnet)
154
+ -> Decision: BLOCK
155
+ -> Reason: chain 1 is not the configured Pharos target
156
+ ```
157
+
158
+ ### Unlimited approval → BLOCK
159
+
160
+ ```
161
+ Action: approve_token
162
+ Amount: unlimited / max
163
+ -> Decision: BLOCK
164
+ -> Reason: Unlimited approvals are blocked by default
165
+ ```
166
+
167
+ ### Unknown / unregistered token → REQUIRE_CONFIRMATION
168
+
169
+ ```
170
+ Action: approve_token (finite amount, token not in the active registry)
171
+ -> Decision: REQUIRE_CONFIRMATION
172
+ -> tokenRegistry.status: unknown; human confirmation required
173
+ ```
174
+
175
+ ### x402 SSRF / invalid amount → BLOCK
176
+
177
+ ```
178
+ Action: x402_pay_and_fetch
179
+ URL: http://169.254.169.254/metadata (internal IP)
180
+ -> SSRF_BLOCKED
181
+
182
+ Action: x402_pay_and_fetch
183
+ Amount: -1 USDC
184
+ -> VALIDATION_ERROR
185
+ ```
186
+
187
+ ### Policy: advanced allows a large swap, conservative does not
188
+
189
+ ```
190
+ Policy: advanced
191
+ Action: swap 1000 PROS
192
+ -> within advanced maxSwapPROS: 1000
193
+
194
+ Policy: conservative
195
+ Action: swap 1000 PROS
196
+ -> exceeds conservative maxSwapPROS: 1
197
+ ```
198
+
199
+ ### Hard safety rules override any policy
200
+
201
+ ```
202
+ Policy: advanced · Action: payment on chainId 1 -> BLOCK (non-Pharos chain, regardless of policy)
203
+ Policy: advanced · Action: unlimited approval -> BLOCK (regardless of policy)
204
+ Policy: advanced · Action: x402 to internal IP -> BLOCK (SSRF, regardless of policy)
205
+ ```
206
+
207
+ ## 8. The 33 tools (grouped)
208
+
209
+ | Category | Tools |
210
+ |----------|-------|
211
+ | Safety preflight | `safehands_preflight_check`, `safehands_x402_preflight`, `safehands_risk_report`, `safehands_wallet_health`, `explain_risk`, `token_registry_status` |
212
+ | Risk registry (on-chain) | `publish_risk_score`, `query_risk_registry`, `verify_risk_inclusion`, `get_agent_reputation` |
213
+ | Risk + analysis | `assess_risk`, `check_token_security`, `simulate_transaction`, `estimate_gas`, `check_allowance` |
214
+ | Market + chain data | `get_token_price`, `get_wallet_balance`, `get_gas_price`, `get_pool_info`, `get_transaction_status`, `get_execution_history`, `query_goldsky_subgraph`, `get_spv_proof` |
215
+ | Execution (gated) | `safehands_safe_execute`, `execute_swap`, `send_payment`, `approve_token`, `x402_pay_and_fetch` |
216
+ | Agent policy | `get_agent_policy`, `set_agent_policy` |
217
+ | Managed wallet | `create_agent_wallet`, `get_agent_wallet`, `get_agent_wallet_balance` |
218
+
219
+ All 33 are exposed identically across MCP, HTTP, and CLI.
220
+
221
+ ## 9. Limitations (honest)
222
+
223
+ - Hosted mode (Anvita Flow) and the self-hosted read-only backend are zero-custody; execution, signing, managed wallets, and on-chain publishing are gated and disabled by default. A boot guard refuses managed/write execution on a public host.
224
+ - Managed-wallet encryption is AES-256-GCM, not KMS/Vault-grade; not intended for custody of large amounts, and not audited for production custody.
225
+ - GoPlus token security does not cover Pharos Atlantic Testnet (`688689`).
226
+ - DODO reverse routes can occasionally lack liquidity for exotic pairs.
227
+ - L1 risk-root committer automation and the DA-serving endpoint are roadmap; the on-chain read/verify path (`verify_risk_inclusion`) is live.
228
+ - The risk-root pipeline (queue, batch flush, `commitRiskRoot`, inclusion verify) is functional end to end and the first production batch is committed on-chain: a registry `query` reports `hasCommittedRoot:true` and returns a risk record sourced from the committed data-availability pointer. The attestation contract also has live on-chain usage.
package/package.json CHANGED
@@ -1,83 +1,130 @@
1
- {
2
- "name": "safehands-pharos",
3
- "version": "1.4.0",
4
- "description": "Pharos Skill Engine-compatible transaction safety firewall for AI agents.",
5
- "type": "module",
6
- "main": "dist/index.js",
7
- "types": "dist/index.d.ts",
8
- "exports": {
9
- ".": "./dist/index.js"
10
- },
11
- "bin": {
12
- "safehands-pharos": "dist/index.js"
13
- },
14
- "files": [
15
- "dist",
16
- "contracts",
17
- "examples",
18
- "skill",
19
- "README.md",
20
- ".env.example",
21
- "docs",
22
- "LICENSE"
23
- ],
24
- "scripts": {
25
- "build": "tsc",
26
- "start": "node dist/index.js",
27
- "dev": "tsx src/index.ts",
28
- "x402-server": "tsx src/x402Server.ts",
29
- "test:rpc": "tsx src/lib/testRpc.ts",
30
- "test:rpc:live": "tsx src/lib/testRpcLive.ts",
31
- "test:all": "tsx src/lib/testTools.ts",
32
- "test:live:safehands": "tsx src/lib/testLiveSafehands.ts",
33
- "test:x402:live": "tsx src/lib/testX402Live.ts",
34
- "test:dodo:live": "tsx src/lib/testDodoLive.ts",
35
- "demo": "tsx src/demo.ts"
36
- },
37
- "keywords": [
38
- "pharos",
39
- "mcp",
40
- "mcp-skill",
41
- "defi",
42
- "risk-engine",
43
- "ai-agent",
44
- "farodex",
45
- "viem",
46
- "atlantic-testnet",
47
- "web3",
48
- "pharos-skill-engine",
49
- "guardrail",
50
- "transaction-safety",
51
- "transaction-firewall",
52
- "x402",
53
- "agent-safety",
54
- "safehands"
55
- ],
56
- "author": "SZtch",
57
- "license": "MIT",
58
- "repository": {
59
- "type": "git",
60
- "url": "https://github.com/SZtch/safehands-pharos.git"
61
- },
62
- "homepage": "https://github.com/SZtch/safehands-pharos#readme",
63
- "engines": {
64
- "node": ">=18.0.0"
65
- },
66
- "dependencies": {
67
- "@modelcontextprotocol/sdk": "^1.12.1",
68
- "@types/express": "^5.0.6",
69
- "@x402/core": "^2.14.0",
70
- "@x402/evm": "^2.14.0",
71
- "@x402/express": "^2.14.0",
72
- "@x402/fetch": "^2.14.0",
73
- "express": "^5.2.1",
74
- "viem": "^2.31.3",
75
- "zod": "^3.25.67"
76
- },
77
- "devDependencies": {
78
- "@types/node": "^22.15.0",
79
- "solc": "^0.8.28",
80
- "tsx": "^4.20.3",
81
- "typescript": "^5.8.3"
82
- }
83
- }
1
+ {
2
+ "name": "safehands-pharos",
3
+ "version": "2.6.0",
4
+ "description": "Open-source reusable Pharos Skill, the transaction firewall for AI agent finance on Pharos Pacific Mainnet: deterministic safety verdicts before any wallet signs. Read-only by default; write tools optional, gated, off by default.",
5
+ "type": "module",
6
+ "main": "dist/sdk.js",
7
+ "types": "dist/sdk.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/sdk.d.ts",
11
+ "import": "./dist/sdk.js"
12
+ }
13
+ },
14
+ "bin": {
15
+ "safehands-pharos": "dist/index.js",
16
+ "safehands": "dist/index.js"
17
+ },
18
+ "files": [
19
+ "dist",
20
+ "contracts",
21
+ "README.md",
22
+ "SECURITY.md",
23
+ ".env.example",
24
+ "LICENSE",
25
+ "SKILL.md",
26
+ ".agents/policies/default.json",
27
+ "docs/REVIEWER_QUICKSTART.md",
28
+ "docs/SAFEHANDS_REVIEWER_DEMO_SCRIPT.md"
29
+ ],
30
+ "scripts": {
31
+ "build": "tsc",
32
+ "prepack": "npm run build",
33
+ "prepublishOnly": "npm run build && npm test",
34
+ "start": "node dist/api/server.js",
35
+ "start:api": "node dist/api/server.js",
36
+ "start:mcp": "node dist/index.js",
37
+ "dev": "tsx src/index.ts",
38
+ "x402-server": "node dist/x402Server.js",
39
+ "guardian-api": "tsx src/api/server.ts",
40
+ "agent:demo": "tsx examples/agent-arena/guardian-agent-demo.ts",
41
+ "agent:x402": "tsx examples/agent-arena/payment-agent-x402.ts",
42
+ "agent:defi": "tsx examples/agent-arena/defi-agent-approval.ts",
43
+ "demo": "tsx src/index.ts --demo",
44
+ "test": "tsx --test test/policy-suite.test.ts test/action-policy.test.ts test/calldata-decoder.test.ts test/risk-inclusion.test.ts test/risk-engine.test.ts test/http-ssrf.test.ts test/x402-gate.test.ts test/x402-daily-cap.test.ts test/write-auth.test.ts test/write-path-gates.test.ts test/write-tools-risk-gate.test.ts test/attestation-publisher.test.ts test/spv-verifier.test.ts test/agent-policy-guard.test.ts test/sdk-exports.test.ts test/wallet-crypto.test.ts test/execution-hardening.test.ts test/input-hardening.test.ts test/token-security-failclosed.test.ts test/token-registry-metadata.test.ts test/price-resolver.test.ts test/price-tools.test.ts test/ecosystem-registry.test.ts test/registry-defaults.test.ts test/truth-model.test.ts test/ecosystem-registry-schema.test.ts test/anvita-asset-sync.test.ts test/registry-failclosed.test.ts test/okx-dex-api.test.ts test/anvita-engine.test.mjs test/anvita-engine-calldata.test.mjs test/anvita-engine-composition.test.mjs test/anvita-engine-alias.test.mjs",
45
+ "test:live": "tsx --test test/live-smoke.test.ts",
46
+ "typecheck:test": "tsc -p tsconfig.test.json",
47
+ "lint": "eslint .",
48
+ "test:contracts": "node scripts/run-contract-tests.mjs",
49
+ "test:live-broadcast": "node scripts/live-broadcast-test.mjs",
50
+ "test:all": "npm run build && npm run typecheck:test && npm run lint && npm test && npm run demo && npm run test:contracts",
51
+ "package:anvita": "node scripts/package-anvita-safehands.mjs",
52
+ "sync:anvita": "tsx scripts/sync-anvita-assets.ts",
53
+ "sync:anvita:check": "tsx scripts/sync-anvita-assets.ts --check",
54
+ "test:contracts:hardhat": "npx hardhat test test/contracts/SafeHandsRegistry.ts test/contracts/SafeHandsAttestation.ts",
55
+ "x402-server:dev": "tsx src/x402Server.ts",
56
+ "start:x402": "node dist/x402Server.js",
57
+ "start:worker": "node dist/worker.js",
58
+ "worker": "tsx src/worker.ts",
59
+ "start:full-local": "node scripts/start-full-local.mjs",
60
+ "prepare": "npm run build"
61
+ },
62
+ "keywords": [
63
+ "pharos",
64
+ "mcp",
65
+ "mcp-skill",
66
+ "defi",
67
+ "risk-engine",
68
+ "ai-agent",
69
+ "faroswap",
70
+ "viem",
71
+ "pharos-pacific",
72
+ "mainnet",
73
+ "web3",
74
+ "pharos-skill-engine",
75
+ "guardrail",
76
+ "transaction-safety",
77
+ "transaction-firewall",
78
+ "x402",
79
+ "agent-safety",
80
+ "safehands",
81
+ "rwa",
82
+ "real-fi",
83
+ "realfi",
84
+ "real-world-assets",
85
+ "attestation"
86
+ ],
87
+ "author": "SZtch",
88
+ "license": "MIT",
89
+ "repository": {
90
+ "type": "git",
91
+ "url": "https://github.com/SZtch/safehands-pharos.git"
92
+ },
93
+ "homepage": "https://github.com/SZtch/safehands-pharos#readme",
94
+ "engines": {
95
+ "node": ">=20.0.0"
96
+ },
97
+ "dependencies": {
98
+ "@modelcontextprotocol/sdk": "^1.29.0",
99
+ "@x402/core": "^2.15.0",
100
+ "@x402/evm": "^2.15.0",
101
+ "@x402/express": "^2.15.0",
102
+ "@x402/fetch": "^2.15.0",
103
+ "express": "^5.2.1",
104
+ "merkletreejs": "^0.6.0",
105
+ "viem": "^2.31.3",
106
+ "zod": "^3.25.67"
107
+ },
108
+ "devDependencies": {
109
+ "@eslint/js": "^10.0.1",
110
+ "@nomicfoundation/hardhat-toolbox": "^7.0.0",
111
+ "@nomicfoundation/hardhat-toolbox-viem": "^5.0.7",
112
+ "@openzeppelin/contracts": "^5.6.1",
113
+ "@types/chai": "^5.2.3",
114
+ "@types/express": "^5.0.6",
115
+ "@types/mocha": "^10.0.10",
116
+ "@types/node": "^22.15.0",
117
+ "chai": "^6.2.2",
118
+ "dotenv": "^17.4.2",
119
+ "eslint": "^10.7.0",
120
+ "hardhat": "^3.9.0",
121
+ "mocha": "^11.7.6",
122
+ "tsx": "^4.20.3",
123
+ "typescript": "^5.9.3",
124
+ "typescript-eslint": "^8.63.0"
125
+ },
126
+ "overrides": {
127
+ "ws": "^8.21.0",
128
+ "undici": "^6.24.0"
129
+ }
130
+ }