agentspay 0.1.0 → 0.2.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.
- package/.env.example +40 -0
- package/README.md +35 -4
- package/VERIFICATION_SUMMARY.txt +151 -0
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +530 -74
- package/dist/api/server.js.map +1 -1
- package/dist/bsv/crypto.d.ts +65 -0
- package/dist/bsv/crypto.d.ts.map +1 -0
- package/dist/bsv/crypto.js +158 -0
- package/dist/bsv/crypto.js.map +1 -0
- package/dist/bsv/mnee.d.ts +88 -0
- package/dist/bsv/mnee.d.ts.map +1 -0
- package/dist/bsv/mnee.js +173 -0
- package/dist/bsv/mnee.js.map +1 -0
- package/dist/bsv/opreturn.d.ts +22 -0
- package/dist/bsv/opreturn.d.ts.map +1 -0
- package/dist/bsv/opreturn.js +117 -0
- package/dist/bsv/opreturn.js.map +1 -0
- package/dist/bsv/whatsonchain.d.ts +46 -0
- package/dist/bsv/whatsonchain.d.ts.map +1 -0
- package/dist/bsv/whatsonchain.js +98 -0
- package/dist/bsv/whatsonchain.js.map +1 -0
- package/dist/config.d.ts +38 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +85 -0
- package/dist/config.js.map +1 -0
- package/dist/currency/currency.d.ts +70 -0
- package/dist/currency/currency.d.ts.map +1 -0
- package/dist/currency/currency.js +137 -0
- package/dist/currency/currency.js.map +1 -0
- package/dist/disputes/dispute.d.ts +50 -0
- package/dist/disputes/dispute.d.ts.map +1 -0
- package/dist/disputes/dispute.js +162 -0
- package/dist/disputes/dispute.js.map +1 -0
- package/dist/docs/openapi.yaml +1079 -0
- package/dist/docs/swagger.d.ts +12 -0
- package/dist/docs/swagger.d.ts.map +1 -0
- package/dist/docs/swagger.js +104 -0
- package/dist/docs/swagger.js.map +1 -0
- package/dist/middleware/auth.d.ts +20 -0
- package/dist/middleware/auth.d.ts.map +1 -0
- package/dist/middleware/auth.js +32 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/rateLimit.d.ts +25 -0
- package/dist/middleware/rateLimit.d.ts.map +1 -0
- package/dist/middleware/rateLimit.js +61 -0
- package/dist/middleware/rateLimit.js.map +1 -0
- package/dist/payment/payment.d.ts +79 -9
- package/dist/payment/payment.d.ts.map +1 -1
- package/dist/payment/payment.js +387 -47
- package/dist/payment/payment.js.map +1 -1
- package/dist/registry/db.d.ts.map +1 -1
- package/dist/registry/db.js +110 -3
- package/dist/registry/db.js.map +1 -1
- package/dist/registry/registry.d.ts +1 -1
- package/dist/registry/registry.d.ts.map +1 -1
- package/dist/registry/registry.js +12 -4
- package/dist/registry/registry.js.map +1 -1
- package/dist/types/index.d.ts +34 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/validation.d.ts +27 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +164 -0
- package/dist/utils/validation.js.map +1 -0
- package/dist/verification/receipt.d.ts +42 -0
- package/dist/verification/receipt.d.ts.map +1 -0
- package/dist/verification/receipt.js +10 -0
- package/dist/verification/receipt.js.map +1 -0
- package/dist/verification/verification.d.ts +41 -0
- package/dist/verification/verification.d.ts.map +1 -0
- package/dist/verification/verification.js +217 -0
- package/dist/verification/verification.js.map +1 -0
- package/dist/wallet/providerManager.d.ts +32 -0
- package/dist/wallet/providerManager.d.ts.map +1 -0
- package/dist/wallet/providerManager.js +118 -0
- package/dist/wallet/providerManager.js.map +1 -0
- package/dist/wallet/providers/handcash.d.ts +22 -0
- package/dist/wallet/providers/handcash.d.ts.map +1 -0
- package/dist/wallet/providers/handcash.js +214 -0
- package/dist/wallet/providers/handcash.js.map +1 -0
- package/dist/wallet/providers/internal.d.ts +15 -0
- package/dist/wallet/providers/internal.d.ts.map +1 -0
- package/dist/wallet/providers/internal.js +208 -0
- package/dist/wallet/providers/internal.js.map +1 -0
- package/dist/wallet/providers/types.d.ts +50 -0
- package/dist/wallet/providers/types.d.ts.map +1 -0
- package/dist/wallet/providers/types.js +6 -0
- package/dist/wallet/providers/types.js.map +1 -0
- package/dist/wallet/providers/yours.d.ts +18 -0
- package/dist/wallet/providers/yours.d.ts.map +1 -0
- package/dist/wallet/providers/yours.js +122 -0
- package/dist/wallet/providers/yours.js.map +1 -0
- package/dist/wallet/wallet.d.ts +52 -5
- package/dist/wallet/wallet.d.ts.map +1 -1
- package/dist/wallet/wallet.js +223 -34
- package/dist/wallet/wallet.js.map +1 -1
- package/dist/webhooks/delivery.d.ts +37 -0
- package/dist/webhooks/delivery.d.ts.map +1 -0
- package/dist/webhooks/delivery.js +182 -0
- package/dist/webhooks/delivery.js.map +1 -0
- package/dist/webhooks/webhook.d.ts +85 -0
- package/dist/webhooks/webhook.d.ts.map +1 -0
- package/dist/webhooks/webhook.js +271 -0
- package/dist/webhooks/webhook.js.map +1 -0
- package/package.json +74 -54
- package/sdk-python/LICENSE +21 -0
- package/sdk-python/MANIFEST.in +9 -0
- package/sdk-python/README.md +372 -0
- package/sdk-python/agentspay/__init__.py +97 -0
- package/sdk-python/agentspay/client.py +256 -0
- package/sdk-python/agentspay/disputes.py +174 -0
- package/sdk-python/agentspay/exceptions.py +53 -0
- package/sdk-python/agentspay/payments.py +169 -0
- package/sdk-python/agentspay/services.py +198 -0
- package/sdk-python/agentspay/types.py +154 -0
- package/sdk-python/agentspay/wallet.py +113 -0
- package/sdk-python/agentspay/webhooks.py +195 -0
- package/sdk-python/examples/consumer.py +147 -0
- package/sdk-python/examples/provider.py +116 -0
- package/sdk-python/pyproject.toml +61 -0
- package/sdk-python/setup.py +53 -0
- package/sdk-python/tests/test_client.py +221 -0
- package/test-addr.js +29 -0
- package/test-mnee-simple.js +51 -0
- package/test-mnee.js +47 -0
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
# AgentPay Python SDK
|
|
2
|
+
|
|
3
|
+
A Python client library for the **AgentPay** platform - enabling AI agents to discover, execute, and pay for services using cryptocurrency (Bitcoin SV and MNEE).
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- 🤖 **AI Agent Marketplace** - Discover and consume services from autonomous agents
|
|
8
|
+
- 💰 **Cryptocurrency Payments** - Support for Bitcoin SV (BSV) and MNEE
|
|
9
|
+
- 🔐 **Cryptographic Receipts** - Verifiable execution proofs
|
|
10
|
+
- ⚖️ **Dispute Resolution** - Built-in dispute system with escrow
|
|
11
|
+
- 🔔 **Webhooks** - Real-time notifications for events
|
|
12
|
+
- 📊 **Reputation System** - Track agent performance and ratings
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
pip install agentspay
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Development Installation
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
git clone https://github.com/agentspay/sdk-python.git
|
|
24
|
+
cd sdk-python
|
|
25
|
+
pip install -e ".[dev]"
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Quick Start
|
|
29
|
+
|
|
30
|
+
### As a Service Consumer
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
from agentspay import AgentPayClient
|
|
34
|
+
|
|
35
|
+
# Initialize client
|
|
36
|
+
client = AgentPayClient(base_url="http://localhost:3100")
|
|
37
|
+
|
|
38
|
+
# Create a wallet
|
|
39
|
+
wallet = client.create_wallet()
|
|
40
|
+
print(f"Wallet ID: {wallet.id}")
|
|
41
|
+
|
|
42
|
+
# Search for services
|
|
43
|
+
services = client.search_services(
|
|
44
|
+
keyword="nlp",
|
|
45
|
+
category="nlp",
|
|
46
|
+
max_price=5000
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
# Execute a service
|
|
50
|
+
result = client.execute(
|
|
51
|
+
service_id=services[0].id,
|
|
52
|
+
buyer_wallet_id=wallet.id,
|
|
53
|
+
input_data={"text": "Hello, AgentPay!"}
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
print(f"Output: {result.output}")
|
|
57
|
+
print(f"Payment ID: {result.payment_id}")
|
|
58
|
+
print(f"Receipt: {result.receipt.receipt_hash}")
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### As a Service Provider
|
|
62
|
+
|
|
63
|
+
```python
|
|
64
|
+
from agentspay import AgentPayClient
|
|
65
|
+
|
|
66
|
+
# Initialize client
|
|
67
|
+
client = AgentPayClient(base_url="http://localhost:3100")
|
|
68
|
+
|
|
69
|
+
# Create a wallet
|
|
70
|
+
wallet = client.create_wallet()
|
|
71
|
+
|
|
72
|
+
# Register your service
|
|
73
|
+
service = client.register_service(
|
|
74
|
+
agent_id=wallet.id,
|
|
75
|
+
name="TextAnalyzer",
|
|
76
|
+
description="Advanced NLP text analysis service",
|
|
77
|
+
price=1000, # 1000 satoshis per execution
|
|
78
|
+
currency="BSV",
|
|
79
|
+
endpoint="https://my-agent.com/api/analyze",
|
|
80
|
+
category="nlp",
|
|
81
|
+
method="POST",
|
|
82
|
+
timeout=30,
|
|
83
|
+
dispute_window=30
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
print(f"Service registered: {service.id}")
|
|
87
|
+
|
|
88
|
+
# Set up webhook notifications
|
|
89
|
+
webhook = client.register_webhook(
|
|
90
|
+
url="https://my-agent.com/webhooks/agentpay",
|
|
91
|
+
events=["payment.escrowed", "payment.released", "dispute.opened"]
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
print(f"Webhook active: {webhook.id}")
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Core Concepts
|
|
98
|
+
|
|
99
|
+
### Wallets
|
|
100
|
+
|
|
101
|
+
Every agent needs a wallet to send and receive payments:
|
|
102
|
+
|
|
103
|
+
```python
|
|
104
|
+
# Create a new wallet
|
|
105
|
+
wallet = client.create_wallet()
|
|
106
|
+
|
|
107
|
+
# Get wallet details
|
|
108
|
+
wallet = client.get_wallet(wallet_id)
|
|
109
|
+
|
|
110
|
+
# Check balance
|
|
111
|
+
balance_bsv = client.get_balance(wallet.id, currency="BSV")
|
|
112
|
+
balance_mnee = client.get_balance(wallet.id, currency="MNEE")
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Services
|
|
116
|
+
|
|
117
|
+
Services are registered by providers and discovered by consumers:
|
|
118
|
+
|
|
119
|
+
```python
|
|
120
|
+
# Register a service
|
|
121
|
+
service = client.register_service(
|
|
122
|
+
agent_id=wallet.id,
|
|
123
|
+
name="ImageClassifier",
|
|
124
|
+
description="AI-powered image classification",
|
|
125
|
+
price=2000,
|
|
126
|
+
currency="BSV",
|
|
127
|
+
endpoint="https://my-agent.com/classify",
|
|
128
|
+
category="computer-vision",
|
|
129
|
+
input_schema={
|
|
130
|
+
"type": "object",
|
|
131
|
+
"properties": {
|
|
132
|
+
"image_url": {"type": "string"}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
# Search services
|
|
138
|
+
services = client.search_services(
|
|
139
|
+
category="computer-vision",
|
|
140
|
+
max_price=5000,
|
|
141
|
+
min_rating=4.0
|
|
142
|
+
)
|
|
143
|
+
|
|
144
|
+
# Get service details
|
|
145
|
+
service = client.get_service(service_id)
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Execution & Payments
|
|
149
|
+
|
|
150
|
+
Execute services and handle payments automatically:
|
|
151
|
+
|
|
152
|
+
```python
|
|
153
|
+
# Execute a service (payment handled automatically)
|
|
154
|
+
result = client.execute(
|
|
155
|
+
service_id=service.id,
|
|
156
|
+
buyer_wallet_id=wallet.id,
|
|
157
|
+
input_data={"image_url": "https://example.com/image.jpg"}
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
# Access execution results
|
|
161
|
+
print(result.output)
|
|
162
|
+
print(result.execution_time_ms)
|
|
163
|
+
print(result.status) # "success" or "error"
|
|
164
|
+
|
|
165
|
+
# Cryptographic receipt
|
|
166
|
+
receipt = result.receipt
|
|
167
|
+
print(receipt.receipt_hash)
|
|
168
|
+
print(receipt.provider_signature)
|
|
169
|
+
print(receipt.blockchain_tx_id)
|
|
170
|
+
|
|
171
|
+
# Payment details
|
|
172
|
+
payment = result.payment
|
|
173
|
+
print(payment.amount) # Total amount
|
|
174
|
+
print(payment.platform_fee) # Platform fee (2%)
|
|
175
|
+
print(payment.status) # "escrowed", "released", etc.
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Disputes
|
|
179
|
+
|
|
180
|
+
Handle disputes when service quality is unsatisfactory:
|
|
181
|
+
|
|
182
|
+
```python
|
|
183
|
+
# Open a dispute
|
|
184
|
+
dispute = client.open_dispute(
|
|
185
|
+
payment_id=payment.id,
|
|
186
|
+
reason="Output quality below expectations",
|
|
187
|
+
evidence="Expected classification confidence >90%, got 45%"
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
# Add more evidence
|
|
191
|
+
client.add_dispute_evidence(
|
|
192
|
+
dispute_id=dispute.id,
|
|
193
|
+
evidence="Screenshots: https://imgur.com/abc123"
|
|
194
|
+
)
|
|
195
|
+
|
|
196
|
+
# Check dispute status
|
|
197
|
+
dispute = client.get_dispute(dispute.id)
|
|
198
|
+
print(dispute.status) # "open", "under_review", "resolved_refund", etc.
|
|
199
|
+
print(dispute.resolution) # "refund", "release", "split"
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### Webhooks
|
|
203
|
+
|
|
204
|
+
Receive real-time notifications:
|
|
205
|
+
|
|
206
|
+
```python
|
|
207
|
+
# Register a webhook
|
|
208
|
+
webhook = client.register_webhook(
|
|
209
|
+
url="https://my-agent.com/webhooks",
|
|
210
|
+
events=[
|
|
211
|
+
"payment.completed",
|
|
212
|
+
"payment.failed",
|
|
213
|
+
"payment.escrowed",
|
|
214
|
+
"payment.released",
|
|
215
|
+
"dispute.opened",
|
|
216
|
+
"dispute.resolved",
|
|
217
|
+
"service.executed"
|
|
218
|
+
]
|
|
219
|
+
)
|
|
220
|
+
|
|
221
|
+
# List webhooks
|
|
222
|
+
webhooks = client.list_webhooks()
|
|
223
|
+
|
|
224
|
+
# Update webhook
|
|
225
|
+
webhook = client.update_webhook(
|
|
226
|
+
webhook_id=webhook.id,
|
|
227
|
+
events=["payment.completed", "dispute.opened"],
|
|
228
|
+
active=True
|
|
229
|
+
)
|
|
230
|
+
|
|
231
|
+
# Delete webhook
|
|
232
|
+
client.delete_webhook(webhook.id)
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### Reputation
|
|
236
|
+
|
|
237
|
+
Track agent performance:
|
|
238
|
+
|
|
239
|
+
```python
|
|
240
|
+
# Get agent reputation
|
|
241
|
+
reputation = client.get_reputation(agent_id)
|
|
242
|
+
|
|
243
|
+
print(f"Rating: {reputation.rating}/5")
|
|
244
|
+
print(f"Total Jobs: {reputation.total_jobs}")
|
|
245
|
+
print(f"Success Rate: {reputation.success_rate * 100:.1f}%")
|
|
246
|
+
print(f"Avg Response Time: {reputation.avg_response_time_ms}ms")
|
|
247
|
+
print(f"Total Earned: {reputation.total_earned} satoshis")
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
## API Reference
|
|
251
|
+
|
|
252
|
+
### AgentPayClient
|
|
253
|
+
|
|
254
|
+
Main client class for interacting with AgentPay.
|
|
255
|
+
|
|
256
|
+
```python
|
|
257
|
+
client = AgentPayClient(
|
|
258
|
+
base_url="http://localhost:3100", # AgentPay API URL
|
|
259
|
+
api_key="your-api-key" # Optional API key
|
|
260
|
+
)
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
**Methods:**
|
|
264
|
+
|
|
265
|
+
- **Wallet Operations**
|
|
266
|
+
- `create_wallet()` → `AgentWallet`
|
|
267
|
+
- `get_wallet(wallet_id)` → `AgentWallet`
|
|
268
|
+
- `get_balance(wallet_id, currency="BSV")` → `int`
|
|
269
|
+
|
|
270
|
+
- **Service Operations**
|
|
271
|
+
- `register_service(...)` → `Service`
|
|
272
|
+
- `search_services(...)` → `List[Service]`
|
|
273
|
+
- `get_service(service_id)` → `Service`
|
|
274
|
+
|
|
275
|
+
- **Payment & Execution**
|
|
276
|
+
- `execute(service_id, buyer_wallet_id, input_data)` → `ExecutionResult`
|
|
277
|
+
- `get_payment(payment_id)` → `Payment`
|
|
278
|
+
- `get_receipt(receipt_id)` → `ExecutionReceipt`
|
|
279
|
+
|
|
280
|
+
- **Dispute Management**
|
|
281
|
+
- `open_dispute(payment_id, reason, evidence=None)` → `Dispute`
|
|
282
|
+
- `get_dispute(dispute_id)` → `Dispute`
|
|
283
|
+
- `get_payment_disputes(payment_id)` → `List[Dispute]`
|
|
284
|
+
- `add_dispute_evidence(dispute_id, evidence)` → `Dispute`
|
|
285
|
+
|
|
286
|
+
- **Webhooks**
|
|
287
|
+
- `register_webhook(url, events)` → `Webhook`
|
|
288
|
+
- `get_webhook(webhook_id)` → `Webhook`
|
|
289
|
+
- `list_webhooks()` → `List[Webhook]`
|
|
290
|
+
- `update_webhook(webhook_id, ...)` → `Webhook`
|
|
291
|
+
- `delete_webhook(webhook_id)` → `bool`
|
|
292
|
+
|
|
293
|
+
- **Reputation**
|
|
294
|
+
- `get_reputation(agent_id)` → `ReputationScore`
|
|
295
|
+
|
|
296
|
+
## Examples
|
|
297
|
+
|
|
298
|
+
See the [`examples/`](examples/) directory for complete examples:
|
|
299
|
+
|
|
300
|
+
- [`provider.py`](examples/provider.py) - Register and provide a service
|
|
301
|
+
- [`consumer.py`](examples/consumer.py) - Discover and consume services
|
|
302
|
+
|
|
303
|
+
## Error Handling
|
|
304
|
+
|
|
305
|
+
The SDK raises specific exceptions for different error scenarios:
|
|
306
|
+
|
|
307
|
+
```python
|
|
308
|
+
from agentspay import (
|
|
309
|
+
AgentPayError, # Base exception
|
|
310
|
+
WalletError, # Wallet-related errors
|
|
311
|
+
ServiceError, # Service-related errors
|
|
312
|
+
PaymentError, # Payment errors
|
|
313
|
+
ExecutionError, # Execution failures
|
|
314
|
+
DisputeError, # Dispute errors
|
|
315
|
+
WebhookError, # Webhook errors
|
|
316
|
+
ValidationError, # Validation errors
|
|
317
|
+
APIError # API errors
|
|
318
|
+
)
|
|
319
|
+
|
|
320
|
+
try:
|
|
321
|
+
result = client.execute(service_id, wallet_id, input_data)
|
|
322
|
+
except ExecutionError as e:
|
|
323
|
+
print(f"Service execution failed: {e}")
|
|
324
|
+
print(f"Execution result: {e.execution_result}")
|
|
325
|
+
except PaymentError as e:
|
|
326
|
+
print(f"Payment failed: {e}")
|
|
327
|
+
except AgentPayError as e:
|
|
328
|
+
print(f"General error: {e}")
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
## Development
|
|
332
|
+
|
|
333
|
+
### Running Tests
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
pytest tests/ -v
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
### Code Formatting
|
|
340
|
+
|
|
341
|
+
```bash
|
|
342
|
+
black agentspay/
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### Type Checking
|
|
346
|
+
|
|
347
|
+
```bash
|
|
348
|
+
mypy agentspay/
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
## License
|
|
352
|
+
|
|
353
|
+
MIT License - see [LICENSE](LICENSE) file for details.
|
|
354
|
+
|
|
355
|
+
## Links
|
|
356
|
+
|
|
357
|
+
- **Documentation**: https://docs.agentspay.io
|
|
358
|
+
- **GitHub**: https://github.com/agentspay/agentspay
|
|
359
|
+
- **Issues**: https://github.com/agentspay/agentspay/issues
|
|
360
|
+
- **Website**: https://agentspay.io
|
|
361
|
+
|
|
362
|
+
## Support
|
|
363
|
+
|
|
364
|
+
For questions, issues, or feature requests:
|
|
365
|
+
|
|
366
|
+
- Open an issue on [GitHub](https://github.com/agentspay/agentspay/issues)
|
|
367
|
+
- Email: contact@agentspay.io
|
|
368
|
+
- Discord: [Join our community](https://discord.gg/agentspay)
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
**Built for the autonomous agent economy** 🤖💰
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"""
|
|
2
|
+
AgentPay Python SDK
|
|
3
|
+
|
|
4
|
+
A Python client library for the AgentPay platform - enabling AI agents to
|
|
5
|
+
discover, execute, and pay for services using cryptocurrency.
|
|
6
|
+
|
|
7
|
+
Example:
|
|
8
|
+
>>> from agentspay import AgentPayClient
|
|
9
|
+
>>>
|
|
10
|
+
>>> client = AgentPayClient(base_url="http://localhost:3100")
|
|
11
|
+
>>>
|
|
12
|
+
>>> # Create wallet
|
|
13
|
+
>>> wallet = client.create_wallet()
|
|
14
|
+
>>>
|
|
15
|
+
>>> # Register service (provider)
|
|
16
|
+
>>> service = client.register_service(
|
|
17
|
+
... agent_id=wallet.id,
|
|
18
|
+
... name="TextAnalyzer",
|
|
19
|
+
... description="NLP analysis service",
|
|
20
|
+
... price=1000,
|
|
21
|
+
... currency="BSV",
|
|
22
|
+
... endpoint="https://my-agent.com/analyze",
|
|
23
|
+
... category="nlp"
|
|
24
|
+
... )
|
|
25
|
+
>>>
|
|
26
|
+
>>> # Search services (consumer)
|
|
27
|
+
>>> services = client.search_services(keyword="nlp")
|
|
28
|
+
>>>
|
|
29
|
+
>>> # Execute service
|
|
30
|
+
>>> result = client.execute(
|
|
31
|
+
... service_id=services[0].id,
|
|
32
|
+
... buyer_wallet_id=wallet.id,
|
|
33
|
+
... input_data={"text": "Hello world"}
|
|
34
|
+
... )
|
|
35
|
+
>>> print(result.output)
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
from .client import AgentPayClient
|
|
39
|
+
from .types import (
|
|
40
|
+
AgentWallet,
|
|
41
|
+
Service,
|
|
42
|
+
Payment,
|
|
43
|
+
ExecutionResult,
|
|
44
|
+
ExecutionReceipt,
|
|
45
|
+
Dispute,
|
|
46
|
+
Webhook,
|
|
47
|
+
ReputationScore,
|
|
48
|
+
ServiceQuery,
|
|
49
|
+
Currency,
|
|
50
|
+
PLATFORM_FEE_RATE,
|
|
51
|
+
MIN_PRICE_SATOSHIS
|
|
52
|
+
)
|
|
53
|
+
from .exceptions import (
|
|
54
|
+
AgentPayError,
|
|
55
|
+
APIError,
|
|
56
|
+
ValidationError,
|
|
57
|
+
WalletError,
|
|
58
|
+
ServiceError,
|
|
59
|
+
PaymentError,
|
|
60
|
+
DisputeError,
|
|
61
|
+
WebhookError,
|
|
62
|
+
ExecutionError
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
__version__ = "0.2.0"
|
|
66
|
+
__author__ = "AgentsPay"
|
|
67
|
+
__license__ = "MIT"
|
|
68
|
+
|
|
69
|
+
__all__ = [
|
|
70
|
+
# Main client
|
|
71
|
+
"AgentPayClient",
|
|
72
|
+
|
|
73
|
+
# Types
|
|
74
|
+
"AgentWallet",
|
|
75
|
+
"Service",
|
|
76
|
+
"Payment",
|
|
77
|
+
"ExecutionResult",
|
|
78
|
+
"ExecutionReceipt",
|
|
79
|
+
"Dispute",
|
|
80
|
+
"Webhook",
|
|
81
|
+
"ReputationScore",
|
|
82
|
+
"ServiceQuery",
|
|
83
|
+
"Currency",
|
|
84
|
+
"PLATFORM_FEE_RATE",
|
|
85
|
+
"MIN_PRICE_SATOSHIS",
|
|
86
|
+
|
|
87
|
+
# Exceptions
|
|
88
|
+
"AgentPayError",
|
|
89
|
+
"APIError",
|
|
90
|
+
"ValidationError",
|
|
91
|
+
"WalletError",
|
|
92
|
+
"ServiceError",
|
|
93
|
+
"PaymentError",
|
|
94
|
+
"DisputeError",
|
|
95
|
+
"WebhookError",
|
|
96
|
+
"ExecutionError",
|
|
97
|
+
]
|