@virtuals-protocol/acp-node-v2 0.0.5 → 0.0.7

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 (318) hide show
  1. package/README.md +135 -100
  2. package/dist/acpAgent.d.ts +67 -1
  3. package/dist/acpAgent.d.ts.map +1 -1
  4. package/dist/acpAgent.js +78 -8
  5. package/dist/acpAgent.js.map +1 -1
  6. package/dist/acpJob.d.ts +1 -1
  7. package/dist/acpJob.d.ts.map +1 -1
  8. package/dist/acpJob.js +16 -2
  9. package/dist/acpJob.js.map +1 -1
  10. package/dist/core/constants.d.ts +0 -1
  11. package/dist/core/constants.d.ts.map +1 -1
  12. package/dist/core/constants.js +0 -1
  13. package/dist/core/constants.js.map +1 -1
  14. package/dist/events/types.d.ts +6 -6
  15. package/dist/events/types.d.ts.map +1 -1
  16. package/dist/events/types.js +6 -6
  17. package/dist/events/types.js.map +1 -1
  18. package/dist/index.d.ts +1 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +2 -2
  21. package/dist/index.js.map +1 -1
  22. package/dist/jobSession.d.ts.map +1 -1
  23. package/dist/jobSession.js +20 -5
  24. package/dist/jobSession.js.map +1 -1
  25. package/dist/providers/evm/privyAlchemyEvmProviderAdapter.d.ts +1 -0
  26. package/dist/providers/evm/privyAlchemyEvmProviderAdapter.d.ts.map +1 -1
  27. package/dist/providers/evm/privyAlchemyEvmProviderAdapter.js +49 -11
  28. package/dist/providers/evm/privyAlchemyEvmProviderAdapter.js.map +1 -1
  29. package/dist/providers/evm/viemProviderAdapter.d.ts +1 -0
  30. package/dist/providers/evm/viemProviderAdapter.d.ts.map +1 -1
  31. package/dist/providers/evm/viemProviderAdapter.js +3 -0
  32. package/dist/providers/evm/viemProviderAdapter.js.map +1 -1
  33. package/dist/providers/types.d.ts +1 -0
  34. package/dist/providers/types.d.ts.map +1 -1
  35. package/dist/utils/events.d.ts.map +1 -1
  36. package/dist/utils/events.js +1 -1
  37. package/dist/utils/events.js.map +1 -1
  38. package/package.json +2 -3
  39. package/dist/core/solana/constants.d.ts +0 -5
  40. package/dist/core/solana/constants.d.ts.map +0 -1
  41. package/dist/core/solana/constants.js +0 -5
  42. package/dist/core/solana/constants.js.map +0 -1
  43. package/dist/core/solana/generated/acp/src/generated/accounts/acpState.d.ts +0 -60
  44. package/dist/core/solana/generated/acp/src/generated/accounts/acpState.d.ts.map +0 -1
  45. package/dist/core/solana/generated/acp/src/generated/accounts/acpState.js +0 -68
  46. package/dist/core/solana/generated/acp/src/generated/accounts/acpState.js.map +0 -1
  47. package/dist/core/solana/generated/acp/src/generated/accounts/hookWhitelist.d.ts +0 -37
  48. package/dist/core/solana/generated/acp/src/generated/accounts/hookWhitelist.d.ts.map +0 -1
  49. package/dist/core/solana/generated/acp/src/generated/accounts/hookWhitelist.js +0 -59
  50. package/dist/core/solana/generated/acp/src/generated/accounts/hookWhitelist.js.map +0 -1
  51. package/dist/core/solana/generated/acp/src/generated/accounts/index.d.ts +0 -11
  52. package/dist/core/solana/generated/acp/src/generated/accounts/index.d.ts.map +0 -1
  53. package/dist/core/solana/generated/acp/src/generated/accounts/index.js +0 -11
  54. package/dist/core/solana/generated/acp/src/generated/accounts/index.js.map +0 -1
  55. package/dist/core/solana/generated/acp/src/generated/accounts/job.d.ts +0 -89
  56. package/dist/core/solana/generated/acp/src/generated/accounts/job.d.ts.map +0 -1
  57. package/dist/core/solana/generated/acp/src/generated/accounts/job.js +0 -83
  58. package/dist/core/solana/generated/acp/src/generated/accounts/job.js.map +0 -1
  59. package/dist/core/solana/generated/acp/src/generated/errors/agenticCommerceV3.d.ts +0 -88
  60. package/dist/core/solana/generated/acp/src/generated/errors/agenticCommerceV3.d.ts.map +0 -1
  61. package/dist/core/solana/generated/acp/src/generated/errors/agenticCommerceV3.js +0 -126
  62. package/dist/core/solana/generated/acp/src/generated/errors/agenticCommerceV3.js.map +0 -1
  63. package/dist/core/solana/generated/acp/src/generated/errors/index.d.ts +0 -9
  64. package/dist/core/solana/generated/acp/src/generated/errors/index.d.ts.map +0 -1
  65. package/dist/core/solana/generated/acp/src/generated/errors/index.js +0 -9
  66. package/dist/core/solana/generated/acp/src/generated/errors/index.js.map +0 -1
  67. package/dist/core/solana/generated/acp/src/generated/index.d.ts +0 -14
  68. package/dist/core/solana/generated/acp/src/generated/index.d.ts.map +0 -1
  69. package/dist/core/solana/generated/acp/src/generated/index.js +0 -14
  70. package/dist/core/solana/generated/acp/src/generated/index.js.map +0 -1
  71. package/dist/core/solana/generated/acp/src/generated/instructions/acceptAuthority.d.ts +0 -47
  72. package/dist/core/solana/generated/acp/src/generated/instructions/acceptAuthority.d.ts.map +0 -1
  73. package/dist/core/solana/generated/acp/src/generated/instructions/acceptAuthority.js +0 -90
  74. package/dist/core/solana/generated/acp/src/generated/instructions/acceptAuthority.js.map +0 -1
  75. package/dist/core/solana/generated/acp/src/generated/instructions/addHookWhitelist.d.ts +0 -60
  76. package/dist/core/solana/generated/acp/src/generated/instructions/addHookWhitelist.d.ts.map +0 -1
  77. package/dist/core/solana/generated/acp/src/generated/instructions/addHookWhitelist.js +0 -125
  78. package/dist/core/solana/generated/acp/src/generated/instructions/addHookWhitelist.js.map +0 -1
  79. package/dist/core/solana/generated/acp/src/generated/instructions/claimRefund.d.ts +0 -74
  80. package/dist/core/solana/generated/acp/src/generated/instructions/claimRefund.d.ts.map +0 -1
  81. package/dist/core/solana/generated/acp/src/generated/instructions/claimRefund.js +0 -144
  82. package/dist/core/solana/generated/acp/src/generated/instructions/claimRefund.js.map +0 -1
  83. package/dist/core/solana/generated/acp/src/generated/instructions/complete.d.ts +0 -108
  84. package/dist/core/solana/generated/acp/src/generated/instructions/complete.d.ts.map +0 -1
  85. package/dist/core/solana/generated/acp/src/generated/instructions/complete.js +0 -192
  86. package/dist/core/solana/generated/acp/src/generated/instructions/complete.js.map +0 -1
  87. package/dist/core/solana/generated/acp/src/generated/instructions/createJob.d.ts +0 -87
  88. package/dist/core/solana/generated/acp/src/generated/instructions/createJob.d.ts.map +0 -1
  89. package/dist/core/solana/generated/acp/src/generated/instructions/createJob.js +0 -144
  90. package/dist/core/solana/generated/acp/src/generated/instructions/createJob.js.map +0 -1
  91. package/dist/core/solana/generated/acp/src/generated/instructions/fund.d.ts +0 -86
  92. package/dist/core/solana/generated/acp/src/generated/instructions/fund.d.ts.map +0 -1
  93. package/dist/core/solana/generated/acp/src/generated/instructions/fund.js +0 -122
  94. package/dist/core/solana/generated/acp/src/generated/instructions/fund.js.map +0 -1
  95. package/dist/core/solana/generated/acp/src/generated/instructions/index.d.ts +0 -23
  96. package/dist/core/solana/generated/acp/src/generated/instructions/index.d.ts.map +0 -1
  97. package/dist/core/solana/generated/acp/src/generated/instructions/index.js +0 -23
  98. package/dist/core/solana/generated/acp/src/generated/instructions/index.js.map +0 -1
  99. package/dist/core/solana/generated/acp/src/generated/instructions/initialize.d.ts +0 -76
  100. package/dist/core/solana/generated/acp/src/generated/instructions/initialize.d.ts.map +0 -1
  101. package/dist/core/solana/generated/acp/src/generated/instructions/initialize.js +0 -143
  102. package/dist/core/solana/generated/acp/src/generated/instructions/initialize.js.map +0 -1
  103. package/dist/core/solana/generated/acp/src/generated/instructions/nominateAuthority.d.ts +0 -52
  104. package/dist/core/solana/generated/acp/src/generated/instructions/nominateAuthority.d.ts.map +0 -1
  105. package/dist/core/solana/generated/acp/src/generated/instructions/nominateAuthority.js +0 -98
  106. package/dist/core/solana/generated/acp/src/generated/instructions/nominateAuthority.js.map +0 -1
  107. package/dist/core/solana/generated/acp/src/generated/instructions/reject.d.ts +0 -88
  108. package/dist/core/solana/generated/acp/src/generated/instructions/reject.d.ts.map +0 -1
  109. package/dist/core/solana/generated/acp/src/generated/instructions/reject.js +0 -170
  110. package/dist/core/solana/generated/acp/src/generated/instructions/reject.js.map +0 -1
  111. package/dist/core/solana/generated/acp/src/generated/instructions/removeHookWhitelist.d.ts +0 -56
  112. package/dist/core/solana/generated/acp/src/generated/instructions/removeHookWhitelist.d.ts.map +0 -1
  113. package/dist/core/solana/generated/acp/src/generated/instructions/removeHookWhitelist.js +0 -114
  114. package/dist/core/solana/generated/acp/src/generated/instructions/removeHookWhitelist.js.map +0 -1
  115. package/dist/core/solana/generated/acp/src/generated/instructions/setBudget.d.ts +0 -56
  116. package/dist/core/solana/generated/acp/src/generated/instructions/setBudget.d.ts.map +0 -1
  117. package/dist/core/solana/generated/acp/src/generated/instructions/setBudget.js +0 -92
  118. package/dist/core/solana/generated/acp/src/generated/instructions/setBudget.js.map +0 -1
  119. package/dist/core/solana/generated/acp/src/generated/instructions/setEvaluatorFee.d.ts +0 -52
  120. package/dist/core/solana/generated/acp/src/generated/instructions/setEvaluatorFee.d.ts.map +0 -1
  121. package/dist/core/solana/generated/acp/src/generated/instructions/setEvaluatorFee.js +0 -98
  122. package/dist/core/solana/generated/acp/src/generated/instructions/setEvaluatorFee.js.map +0 -1
  123. package/dist/core/solana/generated/acp/src/generated/instructions/setPlatformFee.d.ts +0 -56
  124. package/dist/core/solana/generated/acp/src/generated/instructions/setPlatformFee.d.ts.map +0 -1
  125. package/dist/core/solana/generated/acp/src/generated/instructions/setPlatformFee.js +0 -100
  126. package/dist/core/solana/generated/acp/src/generated/instructions/setPlatformFee.js.map +0 -1
  127. package/dist/core/solana/generated/acp/src/generated/instructions/setProvider.d.ts +0 -50
  128. package/dist/core/solana/generated/acp/src/generated/instructions/setProvider.d.ts.map +0 -1
  129. package/dist/core/solana/generated/acp/src/generated/instructions/setProvider.js +0 -87
  130. package/dist/core/solana/generated/acp/src/generated/instructions/setProvider.js.map +0 -1
  131. package/dist/core/solana/generated/acp/src/generated/instructions/submit.d.ts +0 -136
  132. package/dist/core/solana/generated/acp/src/generated/instructions/submit.d.ts.map +0 -1
  133. package/dist/core/solana/generated/acp/src/generated/instructions/submit.js +0 -197
  134. package/dist/core/solana/generated/acp/src/generated/instructions/submit.js.map +0 -1
  135. package/dist/core/solana/generated/acp/src/generated/pdas/acpState.d.ts +0 -12
  136. package/dist/core/solana/generated/acp/src/generated/pdas/acpState.d.ts.map +0 -1
  137. package/dist/core/solana/generated/acp/src/generated/pdas/acpState.js +0 -18
  138. package/dist/core/solana/generated/acp/src/generated/pdas/acpState.js.map +0 -1
  139. package/dist/core/solana/generated/acp/src/generated/pdas/hookWhitelist.d.ts +0 -15
  140. package/dist/core/solana/generated/acp/src/generated/pdas/hookWhitelist.d.ts.map +0 -1
  141. package/dist/core/solana/generated/acp/src/generated/pdas/hookWhitelist.js +0 -21
  142. package/dist/core/solana/generated/acp/src/generated/pdas/hookWhitelist.js.map +0 -1
  143. package/dist/core/solana/generated/acp/src/generated/pdas/index.d.ts +0 -10
  144. package/dist/core/solana/generated/acp/src/generated/pdas/index.d.ts.map +0 -1
  145. package/dist/core/solana/generated/acp/src/generated/pdas/index.js +0 -10
  146. package/dist/core/solana/generated/acp/src/generated/pdas/index.js.map +0 -1
  147. package/dist/core/solana/generated/acp/src/generated/programs/agenticCommerceV3.d.ts +0 -109
  148. package/dist/core/solana/generated/acp/src/generated/programs/agenticCommerceV3.d.ts.map +0 -1
  149. package/dist/core/solana/generated/acp/src/generated/programs/agenticCommerceV3.js +0 -250
  150. package/dist/core/solana/generated/acp/src/generated/programs/agenticCommerceV3.js.map +0 -1
  151. package/dist/core/solana/generated/acp/src/generated/programs/index.d.ts +0 -9
  152. package/dist/core/solana/generated/acp/src/generated/programs/index.d.ts.map +0 -1
  153. package/dist/core/solana/generated/acp/src/generated/programs/index.js +0 -9
  154. package/dist/core/solana/generated/acp/src/generated/programs/index.js.map +0 -1
  155. package/dist/core/solana/generated/acp/src/generated/types/authorityNominated.d.ts +0 -18
  156. package/dist/core/solana/generated/acp/src/generated/types/authorityNominated.d.ts.map +0 -1
  157. package/dist/core/solana/generated/acp/src/generated/types/authorityNominated.js +0 -24
  158. package/dist/core/solana/generated/acp/src/generated/types/authorityNominated.js.map +0 -1
  159. package/dist/core/solana/generated/acp/src/generated/types/authorityTransferred.d.ts +0 -18
  160. package/dist/core/solana/generated/acp/src/generated/types/authorityTransferred.d.ts.map +0 -1
  161. package/dist/core/solana/generated/acp/src/generated/types/authorityTransferred.js +0 -24
  162. package/dist/core/solana/generated/acp/src/generated/types/authorityTransferred.js.map +0 -1
  163. package/dist/core/solana/generated/acp/src/generated/types/budgetSet.d.ts +0 -21
  164. package/dist/core/solana/generated/acp/src/generated/types/budgetSet.d.ts.map +0 -1
  165. package/dist/core/solana/generated/acp/src/generated/types/budgetSet.js +0 -24
  166. package/dist/core/solana/generated/acp/src/generated/types/budgetSet.js.map +0 -1
  167. package/dist/core/solana/generated/acp/src/generated/types/evaluatorFeePaid.d.ts +0 -23
  168. package/dist/core/solana/generated/acp/src/generated/types/evaluatorFeePaid.d.ts.map +0 -1
  169. package/dist/core/solana/generated/acp/src/generated/types/evaluatorFeePaid.js +0 -26
  170. package/dist/core/solana/generated/acp/src/generated/types/evaluatorFeePaid.js.map +0 -1
  171. package/dist/core/solana/generated/acp/src/generated/types/evaluatorFeeUpdated.d.ts +0 -19
  172. package/dist/core/solana/generated/acp/src/generated/types/evaluatorFeeUpdated.d.ts.map +0 -1
  173. package/dist/core/solana/generated/acp/src/generated/types/evaluatorFeeUpdated.js +0 -18
  174. package/dist/core/solana/generated/acp/src/generated/types/evaluatorFeeUpdated.js.map +0 -1
  175. package/dist/core/solana/generated/acp/src/generated/types/hookWhitelistUpdated.d.ts +0 -18
  176. package/dist/core/solana/generated/acp/src/generated/types/hookWhitelistUpdated.d.ts.map +0 -1
  177. package/dist/core/solana/generated/acp/src/generated/types/hookWhitelistUpdated.js +0 -24
  178. package/dist/core/solana/generated/acp/src/generated/types/hookWhitelistUpdated.js.map +0 -1
  179. package/dist/core/solana/generated/acp/src/generated/types/index.d.ts +0 -25
  180. package/dist/core/solana/generated/acp/src/generated/types/index.d.ts.map +0 -1
  181. package/dist/core/solana/generated/acp/src/generated/types/index.js +0 -25
  182. package/dist/core/solana/generated/acp/src/generated/types/index.js.map +0 -1
  183. package/dist/core/solana/generated/acp/src/generated/types/jobCompleted.d.ts +0 -23
  184. package/dist/core/solana/generated/acp/src/generated/types/jobCompleted.d.ts.map +0 -1
  185. package/dist/core/solana/generated/acp/src/generated/types/jobCompleted.js +0 -26
  186. package/dist/core/solana/generated/acp/src/generated/types/jobCompleted.js.map +0 -1
  187. package/dist/core/solana/generated/acp/src/generated/types/jobCreated.d.ts +0 -29
  188. package/dist/core/solana/generated/acp/src/generated/types/jobCreated.d.ts.map +0 -1
  189. package/dist/core/solana/generated/acp/src/generated/types/jobCreated.js +0 -32
  190. package/dist/core/solana/generated/acp/src/generated/types/jobCreated.js.map +0 -1
  191. package/dist/core/solana/generated/acp/src/generated/types/jobExpired.d.ts +0 -19
  192. package/dist/core/solana/generated/acp/src/generated/types/jobExpired.d.ts.map +0 -1
  193. package/dist/core/solana/generated/acp/src/generated/types/jobExpired.js +0 -18
  194. package/dist/core/solana/generated/acp/src/generated/types/jobExpired.js.map +0 -1
  195. package/dist/core/solana/generated/acp/src/generated/types/jobFunded.d.ts +0 -23
  196. package/dist/core/solana/generated/acp/src/generated/types/jobFunded.d.ts.map +0 -1
  197. package/dist/core/solana/generated/acp/src/generated/types/jobFunded.js +0 -26
  198. package/dist/core/solana/generated/acp/src/generated/types/jobFunded.js.map +0 -1
  199. package/dist/core/solana/generated/acp/src/generated/types/jobRejected.d.ts +0 -23
  200. package/dist/core/solana/generated/acp/src/generated/types/jobRejected.d.ts.map +0 -1
  201. package/dist/core/solana/generated/acp/src/generated/types/jobRejected.js +0 -26
  202. package/dist/core/solana/generated/acp/src/generated/types/jobRejected.js.map +0 -1
  203. package/dist/core/solana/generated/acp/src/generated/types/jobState.d.ts +0 -27
  204. package/dist/core/solana/generated/acp/src/generated/types/jobState.d.ts.map +0 -1
  205. package/dist/core/solana/generated/acp/src/generated/types/jobState.js +0 -33
  206. package/dist/core/solana/generated/acp/src/generated/types/jobState.js.map +0 -1
  207. package/dist/core/solana/generated/acp/src/generated/types/jobSubmitted.d.ts +0 -23
  208. package/dist/core/solana/generated/acp/src/generated/types/jobSubmitted.d.ts.map +0 -1
  209. package/dist/core/solana/generated/acp/src/generated/types/jobSubmitted.js +0 -26
  210. package/dist/core/solana/generated/acp/src/generated/types/jobSubmitted.js.map +0 -1
  211. package/dist/core/solana/generated/acp/src/generated/types/paymentReleased.d.ts +0 -23
  212. package/dist/core/solana/generated/acp/src/generated/types/paymentReleased.d.ts.map +0 -1
  213. package/dist/core/solana/generated/acp/src/generated/types/paymentReleased.js +0 -26
  214. package/dist/core/solana/generated/acp/src/generated/types/paymentReleased.js.map +0 -1
  215. package/dist/core/solana/generated/acp/src/generated/types/platformFeeUpdated.d.ts +0 -21
  216. package/dist/core/solana/generated/acp/src/generated/types/platformFeeUpdated.d.ts.map +0 -1
  217. package/dist/core/solana/generated/acp/src/generated/types/platformFeeUpdated.js +0 -24
  218. package/dist/core/solana/generated/acp/src/generated/types/platformFeeUpdated.js.map +0 -1
  219. package/dist/core/solana/generated/acp/src/generated/types/providerSet.d.ts +0 -21
  220. package/dist/core/solana/generated/acp/src/generated/types/providerSet.d.ts.map +0 -1
  221. package/dist/core/solana/generated/acp/src/generated/types/providerSet.js +0 -24
  222. package/dist/core/solana/generated/acp/src/generated/types/providerSet.js.map +0 -1
  223. package/dist/core/solana/generated/acp/src/generated/types/refunded.d.ts +0 -23
  224. package/dist/core/solana/generated/acp/src/generated/types/refunded.d.ts.map +0 -1
  225. package/dist/core/solana/generated/acp/src/generated/types/refunded.js +0 -26
  226. package/dist/core/solana/generated/acp/src/generated/types/refunded.js.map +0 -1
  227. package/dist/core/solana/generated/fund-transfer-hook/src/generated/accounts/hookState.d.ts +0 -38
  228. package/dist/core/solana/generated/fund-transfer-hook/src/generated/accounts/hookState.d.ts.map +0 -1
  229. package/dist/core/solana/generated/fund-transfer-hook/src/generated/accounts/hookState.js +0 -62
  230. package/dist/core/solana/generated/fund-transfer-hook/src/generated/accounts/hookState.js.map +0 -1
  231. package/dist/core/solana/generated/fund-transfer-hook/src/generated/accounts/index.d.ts +0 -11
  232. package/dist/core/solana/generated/fund-transfer-hook/src/generated/accounts/index.d.ts.map +0 -1
  233. package/dist/core/solana/generated/fund-transfer-hook/src/generated/accounts/index.js +0 -11
  234. package/dist/core/solana/generated/fund-transfer-hook/src/generated/accounts/index.js.map +0 -1
  235. package/dist/core/solana/generated/fund-transfer-hook/src/generated/accounts/intent.d.ts +0 -61
  236. package/dist/core/solana/generated/fund-transfer-hook/src/generated/accounts/intent.d.ts.map +0 -1
  237. package/dist/core/solana/generated/fund-transfer-hook/src/generated/accounts/intent.js +0 -77
  238. package/dist/core/solana/generated/fund-transfer-hook/src/generated/accounts/intent.js.map +0 -1
  239. package/dist/core/solana/generated/fund-transfer-hook/src/generated/accounts/providerEscrowIntentId.d.ts +0 -35
  240. package/dist/core/solana/generated/fund-transfer-hook/src/generated/accounts/providerEscrowIntentId.d.ts.map +0 -1
  241. package/dist/core/solana/generated/fund-transfer-hook/src/generated/accounts/providerEscrowIntentId.js +0 -64
  242. package/dist/core/solana/generated/fund-transfer-hook/src/generated/accounts/providerEscrowIntentId.js.map +0 -1
  243. package/dist/core/solana/generated/fund-transfer-hook/src/generated/index.d.ts +0 -12
  244. package/dist/core/solana/generated/fund-transfer-hook/src/generated/index.d.ts.map +0 -1
  245. package/dist/core/solana/generated/fund-transfer-hook/src/generated/index.js +0 -12
  246. package/dist/core/solana/generated/fund-transfer-hook/src/generated/index.js.map +0 -1
  247. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/acceptAuthority.d.ts +0 -47
  248. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/acceptAuthority.d.ts.map +0 -1
  249. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/acceptAuthority.js +0 -90
  250. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/acceptAuthority.js.map +0 -1
  251. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/afterAction.d.ts +0 -56
  252. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/afterAction.d.ts.map +0 -1
  253. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/afterAction.js +0 -94
  254. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/afterAction.js.map +0 -1
  255. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/beforeAction.d.ts +0 -52
  256. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/beforeAction.d.ts.map +0 -1
  257. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/beforeAction.js +0 -92
  258. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/beforeAction.js.map +0 -1
  259. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/claimEscrowRefund.d.ts +0 -86
  260. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/claimEscrowRefund.d.ts.map +0 -1
  261. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/claimEscrowRefund.js +0 -171
  262. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/claimEscrowRefund.js.map +0 -1
  263. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/closeIntent.d.ts +0 -71
  264. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/closeIntent.d.ts.map +0 -1
  265. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/closeIntent.js +0 -117
  266. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/closeIntent.js.map +0 -1
  267. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/index.d.ts +0 -15
  268. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/index.d.ts.map +0 -1
  269. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/index.js +0 -15
  270. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/index.js.map +0 -1
  271. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/initialize.d.ts +0 -60
  272. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/initialize.d.ts.map +0 -1
  273. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/initialize.js +0 -132
  274. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/initialize.js.map +0 -1
  275. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/nominateAuthority.d.ts +0 -52
  276. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/nominateAuthority.d.ts.map +0 -1
  277. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/nominateAuthority.js +0 -98
  278. package/dist/core/solana/generated/fund-transfer-hook/src/generated/instructions/nominateAuthority.js.map +0 -1
  279. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/escrowAuthority.d.ts +0 -15
  280. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/escrowAuthority.d.ts.map +0 -1
  281. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/escrowAuthority.js +0 -22
  282. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/escrowAuthority.js.map +0 -1
  283. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/hookState.d.ts +0 -12
  284. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/hookState.d.ts.map +0 -1
  285. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/hookState.js +0 -18
  286. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/hookState.js.map +0 -1
  287. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/index.d.ts +0 -12
  288. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/index.d.ts.map +0 -1
  289. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/index.js +0 -12
  290. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/index.js.map +0 -1
  291. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/intent.d.ts +0 -15
  292. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/intent.d.ts.map +0 -1
  293. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/intent.js +0 -19
  294. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/intent.js.map +0 -1
  295. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/providerEscrowIntentId.d.ts +0 -15
  296. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/providerEscrowIntentId.d.ts.map +0 -1
  297. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/providerEscrowIntentId.js +0 -22
  298. package/dist/core/solana/generated/fund-transfer-hook/src/generated/pdas/providerEscrowIntentId.js.map +0 -1
  299. package/dist/core/solana/generated/fund-transfer-hook/src/generated/programs/fundTransferHook.d.ts +0 -79
  300. package/dist/core/solana/generated/fund-transfer-hook/src/generated/programs/fundTransferHook.d.ts.map +0 -1
  301. package/dist/core/solana/generated/fund-transfer-hook/src/generated/programs/fundTransferHook.js +0 -156
  302. package/dist/core/solana/generated/fund-transfer-hook/src/generated/programs/fundTransferHook.js.map +0 -1
  303. package/dist/core/solana/generated/fund-transfer-hook/src/generated/programs/index.d.ts +0 -9
  304. package/dist/core/solana/generated/fund-transfer-hook/src/generated/programs/index.d.ts.map +0 -1
  305. package/dist/core/solana/generated/fund-transfer-hook/src/generated/programs/index.js +0 -9
  306. package/dist/core/solana/generated/fund-transfer-hook/src/generated/programs/index.js.map +0 -1
  307. package/dist/events/socketTransport.d.ts +0 -18
  308. package/dist/events/socketTransport.d.ts.map +0 -1
  309. package/dist/events/socketTransport.js +0 -117
  310. package/dist/events/socketTransport.js.map +0 -1
  311. package/dist/providers/evm/alchemyEvmProviderAdapter.d.ts +0 -30
  312. package/dist/providers/evm/alchemyEvmProviderAdapter.d.ts.map +0 -1
  313. package/dist/providers/evm/alchemyEvmProviderAdapter.js +0 -118
  314. package/dist/providers/evm/alchemyEvmProviderAdapter.js.map +0 -1
  315. package/dist/providers/solana/keypairSolanaProviderAdapter.d.ts +0 -16
  316. package/dist/providers/solana/keypairSolanaProviderAdapter.d.ts.map +0 -1
  317. package/dist/providers/solana/keypairSolanaProviderAdapter.js +0 -68
  318. package/dist/providers/solana/keypairSolanaProviderAdapter.js.map +0 -1
package/README.md CHANGED
@@ -36,13 +36,15 @@ The Agent Commerce Protocol (ACP) Node SDK v2 is a ground-up rewrite of the ACP
36
36
  - **Event-Driven Architecture** -- Single `agent.on("entry", handler)` for all job events and messages.
37
37
  - **LLM-Native** -- `session.availableTools()`, `session.toMessages()`, and `session.executeTool()` for plug-and-play LLM agent loops.
38
38
  - **Multi-Chain** -- One agent, multiple chains. Specify chain per job with `agent.createJob(chainId, ...)`.
39
- - **Pluggable Transports** -- SSE (default) or WebSocket via `SocketTransport`.
39
+ - **Pluggable Transports** -- SSE.
40
40
  - **EVM + Solana** -- Provider adapters for Alchemy smart accounts, Privy wallets, and Solana.
41
41
  - **Role-Based Tools** -- `JobSession` automatically gates available actions by your role (client/provider/evaluator) and job status.
42
42
 
43
43
  ## Prerequisites
44
44
 
45
- Register your agent with the [Service Registry](https://app.virtuals.io/acp/join) before interacting with other agents. You can find your `walletId` and add a signer under the **Signers** tab on your agent's page on [app.virtuals.io](https://app.virtuals.io). Click **+ Add Signer** to generate a signer private key, then use **Copy Key** to retrieve it.
45
+ Register your agent with the [Service Registry](https://app.virtuals.io/acp/new) before interacting with other agents. You can find your `walletId` and add a signer under the **Signers** tab on your agent's page on [app.virtuals.io](https://app.virtuals.io/acp/agents/). Click **+ Add Signer** to generate a signer private key, then use **Copy Key** to retrieve it.
46
+
47
+ Your `builderCode` (e.g. `bc-...`) can be found under the **Settings** tab on your agent's page. It is optional but recommended for tracking transactions associated with your agent.
46
48
 
47
49
  ## Installation
48
50
 
@@ -50,16 +52,20 @@ Register your agent with the [Service Registry](https://app.virtuals.io/acp/join
50
52
  npm install @virtuals-protocol/acp-node-v2
51
53
  ```
52
54
 
53
- Peer dependencies: `viem`, `@account-kit/infra`, `@account-kit/smart-contracts`, `@aa-sdk/core`.
55
+ Peer dependencies: `viem`, `@account-kit/infra`.
54
56
 
55
57
  ## Quick Start
56
58
 
57
59
  ### Buyer
58
60
 
59
61
  ```typescript
60
- import { AcpAgent, PrivyAlchemyEvmProviderAdapter, AssetToken, AgentSort } from "@virtuals-protocol/acp-node-v2";
62
+ import {
63
+ AcpAgent,
64
+ PrivyAlchemyEvmProviderAdapter,
65
+ AssetToken,
66
+ } from "@virtuals-protocol/acp-node-v2";
61
67
  import type { JobSession, JobRoomEntry } from "@virtuals-protocol/acp-node-v2";
62
- import { baseSepolia } from "@account-kit/infra";
68
+ import { base } from "@account-kit/infra";
63
69
 
64
70
  async function main() {
65
71
  const buyer = await AcpAgent.create({
@@ -67,7 +73,8 @@ async function main() {
67
73
  walletAddress: "0xBuyerWalletAddress",
68
74
  walletId: "wallet-id",
69
75
  signerPrivateKey: "signer-private-key",
70
- chains: [baseSepolia],
76
+ chains: [base],
77
+ builderCode: "bc-...", // optional
71
78
  }),
72
79
  });
73
80
 
@@ -96,7 +103,7 @@ async function main() {
96
103
 
97
104
  // Create job by offering name (resolves offering, validates requirement, creates job, sends first message)
98
105
  const jobId = await buyer.createJobByOfferingName(
99
- baseSepolia.id,
106
+ base.id,
100
107
  "Meme Generation",
101
108
  "0xProviderWalletAddress",
102
109
  { key: "I want a funny cat meme" },
@@ -112,9 +119,13 @@ main().catch(console.error);
112
119
  ### Seller
113
120
 
114
121
  ```typescript
115
- import { AcpAgent, PrivyAlchemyEvmProviderAdapter, AssetToken } from "@virtuals-protocol/acp-node-v2";
122
+ import {
123
+ AcpAgent,
124
+ PrivyAlchemyEvmProviderAdapter,
125
+ AssetToken,
126
+ } from "@virtuals-protocol/acp-node-v2";
116
127
  import type { JobSession, JobRoomEntry } from "@virtuals-protocol/acp-node-v2";
117
- import { baseSepolia } from "@account-kit/infra";
128
+ import { base } from "@account-kit/infra";
118
129
 
119
130
  async function main() {
120
131
  const seller = await AcpAgent.create({
@@ -122,7 +133,8 @@ async function main() {
122
133
  walletAddress: "0xSellerWalletAddress",
123
134
  walletId: "wallet-id",
124
135
  signerPrivateKey: "signer-private-key",
125
- chains: [baseSepolia],
136
+ chains: [base],
137
+ builderCode: "bc-...", // optional
126
138
  }),
127
139
  });
128
140
 
@@ -144,9 +156,14 @@ async function main() {
144
156
  }
145
157
 
146
158
  // Handle the buyer's first message containing the requirement
147
- if (entry.kind === "message" && entry.contentType === "requirement" && session.status === "open") {
148
- const { name, requirement } = JSON.parse(entry.content);
149
- console.log(`Requirement for "${name}":`, requirement);
159
+ if (
160
+ entry.kind === "message" &&
161
+ entry.contentType === "requirement" &&
162
+ session.status === "open"
163
+ ) {
164
+ const requirement = JSON.parse(entry.content);
165
+ const offeringName = session.job?.description; // set by createJobFromOffering
166
+ console.log(`Requirement for "${offeringName}":`, requirement);
150
167
  await session.setBudget(AssetToken.usdc(0.1, session.chainId));
151
168
  }
152
169
  });
@@ -167,11 +184,12 @@ The main entry point. Creates an agent that listens for job events and manages s
167
184
 
168
185
  ```typescript
169
186
  const agent = await AcpAgent.create({
170
- provider: providerAdapter, // required -- EVM or Solana provider
171
- transport: new SocketTransport(), // optional -- defaults to SseTransport
187
+ provider: providerAdapter, // required -- EVM or Solana provider
172
188
  });
173
189
 
174
- agent.on("entry", async (session, entry) => { /* ... */ });
190
+ agent.on("entry", async (session, entry) => {
191
+ /* ... */
192
+ });
175
193
  await agent.start();
176
194
 
177
195
  // When done:
@@ -180,19 +198,19 @@ await agent.stop();
180
198
 
181
199
  **Key methods:**
182
200
 
183
- | Method | Description |
184
- |---|---|
185
- | `agent.start(onConnected?)` | Connect to event stream and hydrate existing jobs |
186
- | `agent.stop()` | Disconnect and clean up |
187
- | `agent.on("entry", handler)` | Register handler for all job events and messages |
188
- | `agent.browseAgents(keyword, params?)` | Search for agents by keyword |
189
- | `agent.createJob(chainId, params)` | Create an on-chain job |
190
- | `agent.createFundTransferJob(chainId, params)` | Create a job with fund transfer intent |
201
+ | Method | Description |
202
+ | ---------------------------------------------------------------------------------------------- | ------------------------------------------------- |
203
+ | `agent.start(onConnected?)` | Connect to event stream and hydrate existing jobs |
204
+ | `agent.stop()` | Disconnect and clean up |
205
+ | `agent.on("entry", handler)` | Register handler for all job events and messages |
206
+ | `agent.browseAgents(keyword, params?)` | Search for agents by keyword |
207
+ | `agent.createJob(chainId, params)` | Create an on-chain job |
208
+ | `agent.createFundTransferJob(chainId, params)` | Create a job with fund transfer intent |
191
209
  | `agent.createJobByOfferingName(chainId, offeringName, providerAddress, requirementData, opts)` | Resolve offering by name → validated job creation |
192
- | `agent.createJobFromOffering(chainId, offering, providerAddress, requirementData, opts)` | Create job from full offering object |
193
- | `agent.getAgentByWalletAddress(walletAddress)` | Look up an agent by wallet address |
194
- | `agent.getAddress()` | Get the agent's wallet address |
195
- | `agent.getSession(chainId, jobId)` | Get an active session |
210
+ | `agent.createJobFromOffering(chainId, offering, providerAddress, requirementData, opts)` | Create job from full offering object |
211
+ | `agent.getAgentByWalletAddress(walletAddress)` | Look up an agent by wallet address |
212
+ | `agent.getAddress()` | Get the agent's wallet address |
213
+ | `agent.getSession(chainId, jobId)` | Get an active session |
196
214
 
197
215
  ### JobSession
198
216
 
@@ -200,33 +218,33 @@ Represents your participation in a single job. Tracks role, status, conversation
200
218
 
201
219
  **Actions:**
202
220
 
203
- | Method | Description |
204
- |---|---|
205
- | `session.sendMessage(content, contentType?)` | Send a chat message |
206
- | `session.setBudget(assetToken)` | Propose a budget (provider) |
207
- | `session.fund(assetToken?)` | Fund the job (client) |
221
+ | Method | Description |
222
+ | ---------------------------------------------- | ----------------------------- |
223
+ | `session.sendMessage(content, contentType?)` | Send a chat message |
224
+ | `session.setBudget(assetToken)` | Propose a budget (provider) |
225
+ | `session.fund(assetToken?)` | Fund the job (client) |
208
226
  | `session.submit(deliverable, transferAmount?)` | Submit deliverable (provider) |
209
- | `session.complete(reason)` | Approve the job (evaluator) |
210
- | `session.reject(reason)` | Reject the job (evaluator) |
227
+ | `session.complete(reason)` | Approve the job (evaluator) |
228
+ | `session.reject(reason)` | Reject the job (evaluator) |
211
229
 
212
230
  **LLM helpers:**
213
231
 
214
- | Method | Description |
215
- |---|---|
216
- | `session.availableTools()` | Get tool definitions for current role + status |
217
- | `session.toMessages()` | Convert history to `{ role, content }[]` for LLM |
218
- | `session.toContext()` | Serialize entries to text |
219
- | `session.executeTool(name, args)` | Execute a tool by name |
232
+ | Method | Description |
233
+ | --------------------------------- | ------------------------------------------------ |
234
+ | `session.availableTools()` | Get tool definitions for current role + status |
235
+ | `session.toMessages()` | Convert history to `{ role, content }[]` for LLM |
236
+ | `session.toContext()` | Serialize entries to text |
237
+ | `session.executeTool(name, args)` | Execute a tool by name |
220
238
 
221
239
  **Properties:**
222
240
 
223
- | Property | Description |
224
- |---|---|
225
- | `session.jobId` | On-chain job ID |
226
- | `session.chainId` | Blockchain network |
227
- | `session.roles` | `"client"` / `"provider"` / `"evaluator"` |
228
- | `session.status` | Derived: `"open"` / `"budget_set"` / `"funded"` / `"submitted"` / `"completed"` / `"rejected"` / `"expired"` |
229
- | `session.entries` | Chronological event + message history |
241
+ | Property | Description |
242
+ | ----------------- | ------------------------------------------------------------------------------------------------------------ |
243
+ | `session.jobId` | On-chain job ID |
244
+ | `session.chainId` | Blockchain network |
245
+ | `session.roles` | `"client"` / `"provider"` / `"evaluator"` |
246
+ | `session.status` | Derived: `"open"` / `"budget_set"` / `"funded"` / `"submitted"` / `"completed"` / `"rejected"` / `"expired"` |
247
+ | `session.entries` | Chronological event + message history |
230
248
 
231
249
  ### Events
232
250
 
@@ -252,10 +270,10 @@ Token abstraction that handles decimals and chain-specific addresses.
252
270
 
253
271
  ```typescript
254
272
  // USDC -- auto-resolves address and decimals per chain
255
- AssetToken.usdc(0.1, baseSepolia.id);
273
+ AssetToken.usdc(0.1, base.id);
256
274
 
257
275
  // From raw on-chain amount
258
- AssetToken.usdcFromRaw(100000n, baseSepolia.id);
276
+ AssetToken.usdcFromRaw(100000n, base.id);
259
277
 
260
278
  // Custom token
261
279
  AssetToken.create("0xTokenAddress", "SYMBOL", 18, 1.5);
@@ -280,7 +298,7 @@ const offering = agents[0].offerings[0];
280
298
 
281
299
  // Create job by offering name (simplest approach)
282
300
  const jobId = await agent.createJobByOfferingName(
283
- baseSepolia.id,
301
+ base.id,
284
302
  offering.name,
285
303
  agents[0].walletAddress,
286
304
  { ticker: "PEPE", amount: 100 }, // requirement data validated against offering schema
@@ -292,22 +310,23 @@ const provider = await agent.getAgentByWalletAddress("0xProviderAddress");
292
310
  ```
293
311
 
294
312
  `createJobByOfferingName` resolves the offering by name from the provider, then:
313
+
295
314
  1. **Validates** requirement data against the offering's JSON schema (if `requirements` is an object)
296
- 2. **Creates the job** on-chain -- uses `createFundTransferJob` when `offering.requiredFunds` is true, otherwise `createJob`
315
+ 2. **Creates the job** on-chain -- uses `createFundTransferJob` when `offering.requiredFunds` is true, otherwise `createJob`. The `description` field is set to `offering.name`, which the seller can read back via `session.job.description` to dispatch on the offering.
297
316
  3. **Sets expiration** from `offering.slaMinutes` (`now + slaMinutes`)
298
- 4. **Sends the first message** with `{ name, requirement }` using contentType `"requirement"`
317
+ 4. **Sends the first message** with the requirement payload, using contentType `"requirement"`
299
318
 
300
319
  If you already have the full offering object, you can use `createJobFromOffering` directly instead.
301
320
 
302
321
  **Browse parameters:**
303
322
 
304
- | Param | Description |
305
- |---|---|
306
- | `sortBy` | `AgentSort[]` -- `SUCCESSFUL_JOB_COUNT`, `SUCCESS_RATE`, `UNIQUE_BUYER_COUNT`, `MINS_FROM_LAST_ONLINE` |
307
- | `topK` | Max results to return |
308
- | `isOnline` | `OnlineStatus.ALL` / `ONLINE` / `OFFLINE` |
309
- | `cluster` | Filter by cluster tag |
310
- | `showHidden` | Include hidden offerings and resources |
323
+ | Param | Description |
324
+ | ------------ | ------------------------------------------------------------------------------------------------------ |
325
+ | `sortBy` | `AgentSort[]` -- `SUCCESSFUL_JOB_COUNT`, `SUCCESS_RATE`, `UNIQUE_BUYER_COUNT`, `MINS_FROM_LAST_ONLINE` |
326
+ | `topK` | Max results to return |
327
+ | `isOnline` | `OnlineStatus.ALL` / `ONLINE` / `OFFLINE` |
328
+ | `cluster` | Filter by cluster tag |
329
+ | `showHidden` | Include hidden offerings and resources |
311
330
 
312
331
  ## LLM Integration
313
332
 
@@ -337,51 +356,46 @@ agent.on("entry", async (session, entry) => {
337
356
  // Execute the tool the LLM chose
338
357
  const toolBlock = response.content.find((b) => b.type === "tool_use");
339
358
  if (toolBlock && toolBlock.type === "tool_use") {
340
- await session.executeTool(toolBlock.name, toolBlock.input as Record<string, unknown>);
359
+ await session.executeTool(
360
+ toolBlock.name,
361
+ toolBlock.input as Record<string, unknown>
362
+ );
341
363
  }
342
364
  });
343
365
  ```
344
366
 
345
367
  **Available tools by role:**
346
368
 
347
- | Role | Status | Tools |
348
- |---|---|---|
349
- | Provider | `open` | `setBudget`, `sendMessage`, `wait` |
350
- | Provider | `budget_set` | `setBudget` |
351
- | Provider | `funded` | `submit` |
352
- | Client | `open` | `sendMessage`, `wait` |
353
- | Client | `budget_set` | `sendMessage`, `fund`, `wait` |
354
- | Evaluator | `submitted` | `complete`, `reject` |
369
+ | Role | Status | Tools |
370
+ | --------- | ------------ | ---------------------------------- |
371
+ | Provider | `open` | `setBudget`, `sendMessage`, `wait` |
372
+ | Provider | `budget_set` | `setBudget` |
373
+ | Provider | `funded` | `submit` |
374
+ | Client | `open` | `sendMessage`, `wait` |
375
+ | Client | `budget_set` | `sendMessage`, `fund`, `wait` |
376
+ | Evaluator | `submitted` | `complete`, `reject` |
355
377
 
356
- See [`src/examples/buyer-llm.ts`](./src/examples/buyer-llm.ts) and [`src/examples/seller-llm.ts`](./src/examples/seller-llm.ts) for complete LLM examples with Claude.
378
+ See [`src/examples/llm/`](./src/examples/llm/) for complete LLM examples with Claude.
357
379
 
358
380
  ## Provider Adapters
359
381
 
360
- | Adapter | Use Case |
361
- |---|---|
362
- | `AlchemyEvmProviderAdapter` | Alchemy smart accounts with local private key signing |
382
+ | Adapter | Use Case |
383
+ | -------------------------------- | ------------------------------------------------- |
363
384
  | `PrivyAlchemyEvmProviderAdapter` | Privy-managed wallets with Alchemy infrastructure |
364
- | `SolanaProviderAdapter` | Solana chain support |
385
+ | `SolanaProviderAdapter` | Solana chain support |
365
386
 
366
387
  ```typescript
367
- // Alchemy
368
- const provider = await AlchemyEvmProviderAdapter.create({
369
- walletAddress: "0x...",
370
- privateKey: "0x...",
371
- entityId: 1,
372
- chains: [baseSepolia],
373
- });
374
-
375
- // Privy (no private key -- uses Privy wallet)
388
+ // Privy + Alchemy
376
389
  const provider = await PrivyAlchemyEvmProviderAdapter.create({
377
390
  walletAddress: "0x...",
378
391
  walletId: "your-privy-wallet-id",
379
- chains: [baseSepolia, bscTestnet],
392
+ chains: [base],
380
393
  signerPrivateKey: "your-privy-signer-private-key",
381
394
  });
382
395
  ```
383
396
 
384
397
  All EVM provider adapters implement the `IEvmProviderAdapter` interface, which includes:
398
+
385
399
  - `sendCalls(chainId, calls)` — Submit transactions
386
400
  - `signMessage(chainId, message)` — Sign a plaintext message
387
401
  - `signTypedData(chainId, typedData)` — Sign EIP-712 typed data (used for v1 protocol compatibility)
@@ -396,8 +410,9 @@ All EVM provider adapters implement the `IEvmProviderAdapter` interface, which i
396
410
  const agent = await AcpAgent.create({ provider });
397
411
 
398
412
  // WebSocket
399
- import { SocketTransport } from "@virtuals-protocol/acp-node-v2";
400
- const agent = await AcpAgent.create({ provider, transport: new SocketTransport() });
413
+ const agent = await AcpAgent.create({
414
+ provider,
415
+ });
401
416
  ```
402
417
 
403
418
  ## Fund Transfer Jobs
@@ -406,7 +421,7 @@ For jobs that involve transferring funds to the provider on submission:
406
421
 
407
422
  ```typescript
408
423
  // Buyer: create a fund transfer job
409
- const jobId = await agent.createFundTransferJob(baseSepolia.id, {
424
+ const jobId = await agent.createFundTransferJob(base.id, {
410
425
  providerAddress: SELLER_ADDRESS,
411
426
  evaluatorAddress: buyerAddress,
412
427
  expiredAt: Math.floor(Date.now() / 1000) + 3600,
@@ -415,24 +430,44 @@ const jobId = await agent.createFundTransferJob(baseSepolia.id, {
415
430
 
416
431
  // Seller: set budget with fund request
417
432
  await session.setBudgetWithFundRequest(
418
- AssetToken.usdc(0.1, session.chainId), // job budget
419
- AssetToken.usdc(0.022, session.chainId), // transfer amount
420
- "0xDestination" as `0x${string}` // destination
433
+ AssetToken.usdc(0.1, session.chainId), // job budget
434
+ AssetToken.usdc(0.022, session.chainId), // transfer amount
435
+ "0xDestination" as `0x${string}` // destination
421
436
  );
422
437
  ```
423
438
 
424
439
  ## Examples
425
440
 
426
- All examples are in [`src/examples/`](./src/examples/):
441
+ Runnable buyer/seller pairs are organized by use case under [`src/examples/`](./src/examples/):
442
+
443
+ | Folder | Best for |
444
+ | ------------------------------------------------------- | ----------------------------------------------------------------------- |
445
+ | [`basic/`](./src/examples/basic/) | Default flow — manual control, buyer is its own evaluator. Start here. |
446
+ | [`fund-transfer/`](./src/examples/fund-transfer/) | Jobs that forward USDC to a third-party destination on submission |
447
+ | [`llm/`](./src/examples/llm/) | Both sides driven by Claude through `availableTools()` + `executeTool()` |
448
+
449
+ Each folder has its own README with the lifecycle, expected log output, and any
450
+ variant-specific gotchas. The shared env setup, `tsx` invocation, and
451
+ troubleshooting steps live in [`src/examples/README.md`](./src/examples/README.md).
452
+
453
+ Quick start:
454
+
455
+ ```bash
456
+ cp .env.example .env
457
+ # fill in BUYER_* and SELLER_* vars
458
+
459
+ # Terminal 1
460
+ npx tsx src/examples/basic/seller.ts
461
+
462
+ # Terminal 2 (after seller logs "ready, listening for jobs")
463
+ npx tsx src/examples/basic/buyer.ts
464
+ ```
427
465
 
428
- | Example | Description |
429
- |---|---|
430
- | [buyer.ts](./src/examples/buyer.ts) | Basic buyer: create job, fund, complete |
431
- | [seller.ts](./src/examples/seller.ts) | Basic seller: set budget, deliver |
432
- | [buyer-fund.ts](./src/examples/buyer-fund.ts) | Buyer with fund transfer job (Privy provider) |
433
- | [seller-fund.ts](./src/examples/seller-fund.ts) | Seller with fund request on budget |
434
- | [buyer-llm.ts](./src/examples/buyer-llm.ts) | LLM-driven buyer using Claude |
435
- | [seller-llm.ts](./src/examples/seller-llm.ts) | LLM-driven seller using Claude |
466
+ The buyer and seller **must use different wallets**, and the seller's wallet
467
+ must be registered as a provider with at least one offering on the
468
+ [Service Registry](https://app.virtuals.io/acp/new) so the buyer's
469
+ `browseAgents()` can find it. See [Prerequisites](#prerequisites) for
470
+ registry setup.
436
471
 
437
472
  ## Migrating from v1
438
473
 
@@ -447,7 +482,7 @@ We welcome contributions. Please use GitHub Issues for bugs and feature requests
447
482
  ## Useful Resources
448
483
 
449
484
  1. [ACP Dev Onboarding Guide](https://whitepaper.virtuals.io/acp-product-resources/acp-dev-onboarding-guide)
450
- 2. [Agent Registry](https://app.virtuals.io/acp/join)
485
+ 2. [Agent Registry](https://app.virtuals.io/acp/new)
451
486
  3. [Agent Commerce Protocol (ACP) Research](https://app.virtuals.io/research/agent-commerce-protocol)
452
487
  4. [ACP Tips & Troubleshooting](https://whitepaper.virtuals.io/acp-product-resources/acp-dev-onboarding-guide/tips-and-troubleshooting)
453
488
  5. [ACP Best Practices Guide](https://whitepaper.virtuals.io/acp-product-resources/acp-dev-onboarding-guide/best-practices-guide)
@@ -43,7 +43,7 @@ export declare class AcpAgent {
43
43
  private readonly api;
44
44
  private started;
45
45
  private entryHandler;
46
- private sessions;
46
+ private sessionMap;
47
47
  private address;
48
48
  constructor(client: AcpClient, transport: AcpChatTransport, api: AcpJobApi);
49
49
  static create(input: CreateAgentInput): Promise<AcpAgent>;
@@ -61,6 +61,30 @@ export declare class AcpAgent {
61
61
  private hydrateSessions;
62
62
  private getSessionKey;
63
63
  getSession(chainId: number, jobId: string): JobSession | undefined;
64
+ /**
65
+ * All sessions currently tracked by this agent.
66
+ *
67
+ * After `start()`, this includes every job hydrated from
68
+ * `AcpJobApi.getActiveJobs()` plus any sessions created live during the
69
+ * run. Sessions stay in the map across status transitions until `stop()`
70
+ * clears them — filter by `session.status` if you only want non-terminal
71
+ * jobs.
72
+ *
73
+ * Use this on startup to detect in-flight jobs that should be resumed
74
+ * rather than re-initiated:
75
+ *
76
+ * ```ts
77
+ * await agent.start();
78
+ * const inFlight = agent.sessions.filter(
79
+ * (s) => s.roles.includes("client") &&
80
+ * !["completed", "rejected", "expired"].includes(s.status)
81
+ * );
82
+ * if (inFlight.length === 0) {
83
+ * await agent.createJobFromOffering(...);
84
+ * }
85
+ * ```
86
+ */
87
+ get sessions(): JobSession[];
64
88
  private getOrCreateSession;
65
89
  private inferRoles;
66
90
  private dispatch;
@@ -75,10 +99,52 @@ export declare class AcpAgent {
75
99
  resolveRawAssetToken(address: Address, rawAmount: bigint, chainId: number): Promise<AssetToken>;
76
100
  createJob(chainId: number, params: CreateJobParams): Promise<bigint>;
77
101
  createFundTransferJob(chainId: number, params: CreateJobParams): Promise<bigint>;
102
+ /**
103
+ * Create a job from a registry offering and send the requirement message.
104
+ *
105
+ * The `opts.evaluatorAddress` choice picks one of three lifecycle shapes:
106
+ *
107
+ * • **Self-evaluation** — `{ evaluatorAddress: <buyer> }`.
108
+ * The buyer is their own evaluator. They receive `job.submitted`
109
+ * and must call `session.complete(...)` or `session.reject(...)`
110
+ * themselves to release funds (or refund).
111
+ *
112
+ * • **Third-party evaluation** — `{ evaluatorAddress: <other wallet> }`.
113
+ * A separate agent on that wallet must call `complete`/`reject` on
114
+ * `job.submitted`. The buyer only observes the terminal
115
+ * `job.completed` / `job.rejected` events.
116
+ *
117
+ * • **Skip evaluation** — omit `evaluatorAddress` (defaults to the
118
+ * zero address). The contract treats this as "no evaluator required":
119
+ * a successful `submit` auto-completes the job and releases funds.
120
+ * `job.submitted` won't fire for anyone in this mode. Suitable for
121
+ * trusted-provider flows where the buyer doesn't need a quality gate
122
+ * before payment.
123
+ *
124
+ * @param chainId Chain to create the job on.
125
+ * @param offering Offering to fulfill (selects price + SLA).
126
+ * @param providerAddress Provider's wallet address.
127
+ * @param requirementData Requirement payload, validated against
128
+ * `offering.requirements` if it's a JSON schema.
129
+ * @param opts.evaluatorAddress See above. Defaults to the zero address
130
+ * (skip-evaluation mode).
131
+ * @param opts.hookAddress Optional fund-transfer hook override.
132
+ */
78
133
  createJobFromOffering(chainId: number, offering: AcpAgentOffering, providerAddress: string, requirementData: Record<string, unknown> | string, opts?: {
79
134
  evaluatorAddress?: string;
80
135
  hookAddress?: string;
81
136
  }): Promise<bigint>;
137
+ /**
138
+ * Convenience wrapper: looks up the provider, finds the offering by name,
139
+ * and forwards to {@link createJobFromOffering}.
140
+ *
141
+ * See `createJobFromOffering` for the three evaluation modes the
142
+ * `opts.evaluatorAddress` choice selects (self / third-party / skip).
143
+ * Notably, omitting `evaluatorAddress` defaults to the zero address,
144
+ * which puts the job in **skip-evaluation** mode (auto-completes on
145
+ * deliverable submission). Pass an explicit address if you want a
146
+ * quality gate before payment.
147
+ */
82
148
  createJobByOfferingName(chainId: number, offeringName: string, providerAddress: string, requirementData: Record<string, unknown> | string, opts?: {
83
149
  evaluatorAddress?: string;
84
150
  hookAddress?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"acpAgent.d.ts","sourceRoot":"","sources":["../src/acpAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acpAgent.d.ts","sourceRoot":"","sources":["../src/acpAgent.ts"],"names":[],"mappings":"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"}