x402-data-tools 0.1.0__tar.gz
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.
- x402_data_tools-0.1.0/LICENSE +21 -0
- x402_data_tools-0.1.0/PKG-INFO +104 -0
- x402_data_tools-0.1.0/README.md +81 -0
- x402_data_tools-0.1.0/pyproject.toml +29 -0
- x402_data_tools-0.1.0/src/x402_data_tools/__init__.py +10 -0
- x402_data_tools-0.1.0/src/x402_data_tools/catalog.json +6833 -0
- x402_data_tools-0.1.0/src/x402_data_tools/client.py +177 -0
- x402_data_tools-0.1.0/src/x402_data_tools/crewai.py +44 -0
- x402_data_tools-0.1.0/src/x402_data_tools/langchain.py +48 -0
- x402_data_tools-0.1.0/src/x402_data_tools/openai.py +40 -0
- x402_data_tools-0.1.0/src/x402_data_tools/schema.py +26 -0
- x402_data_tools-0.1.0/tests/test_client.py +55 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 x402-data-tools contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: x402-data-tools
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: 180+ pay-per-call data tools for AI agents over x402: token, wallet, company and website reports, crypto, SEC, FRED, weather, web pages. LangChain, CrewAI, OpenAI and Anthropic tool formats.
|
|
5
|
+
Project-URL: Homepage, https://github.com/shadowdomnic/x402-data-tools
|
|
6
|
+
Project-URL: Service, https://bess-x402.onrender.com
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
Keywords: ai-agents,base,crewai,crypto,langchain,mcp,sec,tools,usdc,x402
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
13
|
+
Requires-Python: >=3.10
|
|
14
|
+
Requires-Dist: eth-account>=0.13
|
|
15
|
+
Requires-Dist: httpx>=0.27
|
|
16
|
+
Requires-Dist: pydantic>=2
|
|
17
|
+
Requires-Dist: x402[evm,httpx]>=2.25
|
|
18
|
+
Provides-Extra: crewai
|
|
19
|
+
Requires-Dist: crewai>=0.80; extra == 'crewai'
|
|
20
|
+
Provides-Extra: langchain
|
|
21
|
+
Requires-Dist: langchain-core>=0.3; extra == 'langchain'
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
|
|
24
|
+
# x402-data-tools
|
|
25
|
+
|
|
26
|
+
184 data tools for AI agents, each paid per call in USDC on Base over [x402](https://x402.org).
|
|
27
|
+
You don't need an account or an API key, and there is a free tier of 20 calls a day.
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
pip install x402-data-tools # core client
|
|
31
|
+
pip install "x402-data-tools[langchain]" # + LangChain / LangGraph tools
|
|
32
|
+
pip install "x402-data-tools[crewai]" # + CrewAI tools
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## What's inside
|
|
36
|
+
|
|
37
|
+
| Kind | Examples | Price |
|
|
38
|
+
|---|---|---|
|
|
39
|
+
| **Reports** (one call, scored verdict) | token due diligence, wallet profile, company financial health, website audit, macro briefing | $0.02-0.05 |
|
|
40
|
+
| Crypto & EVM | token prices, DEX pools, Uniswap price, gas, balances, ERC-20 transfers, token risk, Aave health, funding rates, options | $0.003 |
|
|
41
|
+
| Stocks & macro | SEC fundamentals, filings, insider trades, screener, FRED series, Treasury curve, FX, central-bank rates, Eurostat | $0.003-0.005 |
|
|
42
|
+
| Web | page to Markdown, metadata, DNS, WHOIS, SSL, headers, tech stack, email security | $0.003-0.005 |
|
|
43
|
+
| Everything else | weather, US alerts, VIN decode, FDA drug labels, clinical trials, prediction markets, arXiv, CVEs, calculators | $0.003 |
|
|
44
|
+
|
|
45
|
+
Call `X402DataTools().catalog` to list all of them, or `search("yield curve")` to find one.
|
|
46
|
+
|
|
47
|
+
## Quick start
|
|
48
|
+
|
|
49
|
+
```python
|
|
50
|
+
from x402_data_tools import X402DataTools
|
|
51
|
+
|
|
52
|
+
tools = X402DataTools() # free tier: 20 calls/day per IP
|
|
53
|
+
print(tools.call("macro_briefing")["signals"])
|
|
54
|
+
|
|
55
|
+
paid = X402DataTools(private_key="0x...") # or set X402_PRIVATE_KEY; pays per call
|
|
56
|
+
report = paid.call("token_due_diligence_report",
|
|
57
|
+
token="0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed", chain="base")
|
|
58
|
+
print(report["grade"], report["verdict"])
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
For paid calls, use a dedicated wallet that holds a few dollars of USDC on Base. It needs no ETH, because payments are gasless signatures.
|
|
62
|
+
|
|
63
|
+
## LangChain / LangGraph
|
|
64
|
+
|
|
65
|
+
```python
|
|
66
|
+
from langgraph.prebuilt import create_react_agent
|
|
67
|
+
from x402_data_tools.langchain import get_tools
|
|
68
|
+
|
|
69
|
+
agent = create_react_agent(llm, get_tools()) # a default dozen tools
|
|
70
|
+
agent = create_react_agent(llm, get_tools(tags=["report"]))
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## CrewAI
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
from crewai import Agent
|
|
77
|
+
from x402_data_tools.crewai import get_tools
|
|
78
|
+
|
|
79
|
+
analyst = Agent(role="Crypto analyst", goal="Vet tokens before we list them",
|
|
80
|
+
backstory="...", tools=get_tools(["token_due_diligence_report", "wallet_profile_report"]))
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## OpenAI / Anthropic function calling
|
|
84
|
+
|
|
85
|
+
```python
|
|
86
|
+
from x402_data_tools.openai import openai_tools, anthropic_tools, run_tool_call
|
|
87
|
+
|
|
88
|
+
tools = openai_tools() # or anthropic_tools()
|
|
89
|
+
# when the model asks for a tool:
|
|
90
|
+
content = run_tool_call(call.function.name, call.function.arguments)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## MCP (Claude, Cursor, etc.)
|
|
94
|
+
|
|
95
|
+
You don't need this package for MCP. Add the remote server
|
|
96
|
+
`https://bess-x402.onrender.com/mcp`. It gives 20 free calls a day, then answers with the paid x402 URL.
|
|
97
|
+
|
|
98
|
+
## Notes
|
|
99
|
+
|
|
100
|
+
- Data comes from public and openly licensed sources: SEC EDGAR, FRED public series, US Treasury, OFAC, NWS, openFDA, DefiLlama, public RPC and others.
|
|
101
|
+
- Reports are automated heuristics. They are not financial, legal or security advice.
|
|
102
|
+
- Errors come back as `X402ToolError`, with `.status` set to 400 for bad input and 5xx when an upstream source is down. `FreeQuotaExceeded` means you should set a key.
|
|
103
|
+
|
|
104
|
+
MIT licensed.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# x402-data-tools
|
|
2
|
+
|
|
3
|
+
184 data tools for AI agents, each paid per call in USDC on Base over [x402](https://x402.org).
|
|
4
|
+
You don't need an account or an API key, and there is a free tier of 20 calls a day.
|
|
5
|
+
|
|
6
|
+
```bash
|
|
7
|
+
pip install x402-data-tools # core client
|
|
8
|
+
pip install "x402-data-tools[langchain]" # + LangChain / LangGraph tools
|
|
9
|
+
pip install "x402-data-tools[crewai]" # + CrewAI tools
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## What's inside
|
|
13
|
+
|
|
14
|
+
| Kind | Examples | Price |
|
|
15
|
+
|---|---|---|
|
|
16
|
+
| **Reports** (one call, scored verdict) | token due diligence, wallet profile, company financial health, website audit, macro briefing | $0.02-0.05 |
|
|
17
|
+
| Crypto & EVM | token prices, DEX pools, Uniswap price, gas, balances, ERC-20 transfers, token risk, Aave health, funding rates, options | $0.003 |
|
|
18
|
+
| Stocks & macro | SEC fundamentals, filings, insider trades, screener, FRED series, Treasury curve, FX, central-bank rates, Eurostat | $0.003-0.005 |
|
|
19
|
+
| Web | page to Markdown, metadata, DNS, WHOIS, SSL, headers, tech stack, email security | $0.003-0.005 |
|
|
20
|
+
| Everything else | weather, US alerts, VIN decode, FDA drug labels, clinical trials, prediction markets, arXiv, CVEs, calculators | $0.003 |
|
|
21
|
+
|
|
22
|
+
Call `X402DataTools().catalog` to list all of them, or `search("yield curve")` to find one.
|
|
23
|
+
|
|
24
|
+
## Quick start
|
|
25
|
+
|
|
26
|
+
```python
|
|
27
|
+
from x402_data_tools import X402DataTools
|
|
28
|
+
|
|
29
|
+
tools = X402DataTools() # free tier: 20 calls/day per IP
|
|
30
|
+
print(tools.call("macro_briefing")["signals"])
|
|
31
|
+
|
|
32
|
+
paid = X402DataTools(private_key="0x...") # or set X402_PRIVATE_KEY; pays per call
|
|
33
|
+
report = paid.call("token_due_diligence_report",
|
|
34
|
+
token="0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed", chain="base")
|
|
35
|
+
print(report["grade"], report["verdict"])
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
For paid calls, use a dedicated wallet that holds a few dollars of USDC on Base. It needs no ETH, because payments are gasless signatures.
|
|
39
|
+
|
|
40
|
+
## LangChain / LangGraph
|
|
41
|
+
|
|
42
|
+
```python
|
|
43
|
+
from langgraph.prebuilt import create_react_agent
|
|
44
|
+
from x402_data_tools.langchain import get_tools
|
|
45
|
+
|
|
46
|
+
agent = create_react_agent(llm, get_tools()) # a default dozen tools
|
|
47
|
+
agent = create_react_agent(llm, get_tools(tags=["report"]))
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## CrewAI
|
|
51
|
+
|
|
52
|
+
```python
|
|
53
|
+
from crewai import Agent
|
|
54
|
+
from x402_data_tools.crewai import get_tools
|
|
55
|
+
|
|
56
|
+
analyst = Agent(role="Crypto analyst", goal="Vet tokens before we list them",
|
|
57
|
+
backstory="...", tools=get_tools(["token_due_diligence_report", "wallet_profile_report"]))
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## OpenAI / Anthropic function calling
|
|
61
|
+
|
|
62
|
+
```python
|
|
63
|
+
from x402_data_tools.openai import openai_tools, anthropic_tools, run_tool_call
|
|
64
|
+
|
|
65
|
+
tools = openai_tools() # or anthropic_tools()
|
|
66
|
+
# when the model asks for a tool:
|
|
67
|
+
content = run_tool_call(call.function.name, call.function.arguments)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## MCP (Claude, Cursor, etc.)
|
|
71
|
+
|
|
72
|
+
You don't need this package for MCP. Add the remote server
|
|
73
|
+
`https://bess-x402.onrender.com/mcp`. It gives 20 free calls a day, then answers with the paid x402 URL.
|
|
74
|
+
|
|
75
|
+
## Notes
|
|
76
|
+
|
|
77
|
+
- Data comes from public and openly licensed sources: SEC EDGAR, FRED public series, US Treasury, OFAC, NWS, openFDA, DefiLlama, public RPC and others.
|
|
78
|
+
- Reports are automated heuristics. They are not financial, legal or security advice.
|
|
79
|
+
- Errors come back as `X402ToolError`, with `.status` set to 400 for bad input and 5xx when an upstream source is down. `FreeQuotaExceeded` means you should set a key.
|
|
80
|
+
|
|
81
|
+
MIT licensed.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling>=1.25"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "x402-data-tools"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "180+ pay-per-call data tools for AI agents over x402: token, wallet, company and website reports, crypto, SEC, FRED, weather, web pages. LangChain, CrewAI, OpenAI and Anthropic tool formats."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "MIT"
|
|
11
|
+
requires-python = ">=3.10"
|
|
12
|
+
keywords = ["x402", "ai-agents", "langchain", "crewai", "tools", "usdc", "base", "crypto", "sec", "mcp"]
|
|
13
|
+
classifiers = [
|
|
14
|
+
"Programming Language :: Python :: 3",
|
|
15
|
+
"Intended Audience :: Developers",
|
|
16
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
17
|
+
]
|
|
18
|
+
dependencies = ["httpx>=0.27", "pydantic>=2", "x402[evm,httpx]>=2.25", "eth-account>=0.13"]
|
|
19
|
+
|
|
20
|
+
[project.optional-dependencies]
|
|
21
|
+
langchain = ["langchain-core>=0.3"]
|
|
22
|
+
crewai = ["crewai>=0.80"]
|
|
23
|
+
|
|
24
|
+
[project.urls]
|
|
25
|
+
Homepage = "https://github.com/shadowdomnic/x402-data-tools"
|
|
26
|
+
Service = "https://bess-x402.onrender.com"
|
|
27
|
+
|
|
28
|
+
[tool.hatch.build.targets.wheel]
|
|
29
|
+
packages = ["src/x402_data_tools"]
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"""180+ pay-per-call data tools for AI agents: token, wallet, company and website reports, crypto and EVM data,
|
|
2
|
+
SEC filings, FRED and Treasury macro data, weather, web pages as Markdown and more. Paid per call in USDC on
|
|
3
|
+
Base over x402 (no account or API key), with a free tier of 20 calls a day."""
|
|
4
|
+
|
|
5
|
+
from .client import (BASE_URL, DEFAULT_TOOLS, FreeQuotaExceeded, ToolSpec, X402DataTools, X402ToolError,
|
|
6
|
+
load_catalog)
|
|
7
|
+
|
|
8
|
+
__all__ = ["BASE_URL", "DEFAULT_TOOLS", "FreeQuotaExceeded", "ToolSpec", "X402DataTools", "X402ToolError",
|
|
9
|
+
"load_catalog"]
|
|
10
|
+
__version__ = "0.1.0"
|