dominusnode-ironclaw 1.0.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.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Dominus Node
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,134 @@
1
+ Metadata-Version: 2.1
2
+ Name: dominusnode-ironclaw
3
+ Version: 1.0.0
4
+ Summary: DomiNode toolkit for IronClaw AI agent runtime -- 23 proxy, wallet, team, and payment management tools
5
+ License: MIT
6
+ Requires-Python: >=3.10
7
+ Description-Content-Type: text/markdown
8
+ License-File: LICENSE
9
+ Requires-Dist: httpx>=0.25.0
10
+ Provides-Extra: dev
11
+ Requires-Dist: pytest>=7.0; extra == "dev"
12
+
13
+ # dominusnode-ironclaw
14
+
15
+ DomiNode toolkit for [IronClaw](https://github.com/nicekate/IronClaw), NEAR AI's open-source Rust-based AI agent runtime. Provides 23 tools for interacting with the DomiNode rotating proxy-as-a-service platform, plus MCP server configuration for IronClaw's native MCP bridge.
16
+
17
+ ## Installation
18
+
19
+ ```bash
20
+ pip install dominusnode-ironclaw
21
+ ```
22
+
23
+ Or from source:
24
+
25
+ ```bash
26
+ cd integrations/ironclaw
27
+ pip install -e ".[dev]"
28
+ ```
29
+
30
+ ## Quick Start
31
+
32
+ ### Python Bridge Usage
33
+
34
+ ```python
35
+ from dominusnode_ironclaw import DominusNodeToolkit
36
+
37
+ toolkit = DominusNodeToolkit(api_key="dn_live_your_key_here")
38
+
39
+ # Check wallet balance
40
+ balance = toolkit.check_balance()
41
+ print(balance) # JSON string
42
+
43
+ # Fetch a URL through the proxy network
44
+ result = toolkit.proxied_fetch(url="https://httpbin.org/ip", country="US")
45
+ print(result)
46
+ ```
47
+
48
+ ### IronClaw MCP Bridge
49
+
50
+ IronClaw supports MCP Protocol natively. Configure it to connect to the DomiNode MCP server:
51
+
52
+ ```python
53
+ from dominusnode_ironclaw import DominusNodeToolkit
54
+
55
+ toolkit = DominusNodeToolkit(api_key="dn_live_your_key_here")
56
+ mcp_config = toolkit.get_mcp_config()
57
+ # Pass mcp_config to IronClaw's MCP bridge configuration
58
+ ```
59
+
60
+ Or generate MCP config directly:
61
+
62
+ ```python
63
+ from dominusnode_ironclaw.mcp_config import generate_mcp_config
64
+
65
+ config = generate_mcp_config(
66
+ base_url="https://api.dominusnode.com",
67
+ api_key="dn_live_your_key_here",
68
+ )
69
+ ```
70
+
71
+ ### Tool Definitions
72
+
73
+ Get IronClaw-compatible tool definitions for registration:
74
+
75
+ ```python
76
+ toolkit = DominusNodeToolkit(api_key="dn_live_your_key_here")
77
+ tools = toolkit.get_tool_definitions()
78
+
79
+ for tool in tools:
80
+ print(f"{tool['name']}: {tool['description']}")
81
+ # Each tool has: name, description, parameters (JSON Schema), handler
82
+ ```
83
+
84
+ ## Configuration
85
+
86
+ | Parameter | Environment Variable | Default |
87
+ |-----------|---------------------|---------|
88
+ | `api_key` | `DOMINUSNODE_API_KEY` | (required) |
89
+ | `base_url` | `DOMINUSNODE_BASE_URL` | `https://api.dominusnode.com` |
90
+ | `proxy_host` | `DOMINUSNODE_PROXY_HOST` | `proxy.dominusnode.com` |
91
+ | `proxy_port` | `DOMINUSNODE_PROXY_PORT` | `8080` |
92
+ | `timeout` | - | `30.0` seconds |
93
+
94
+ ## Tools (23)
95
+
96
+ | # | Tool | Description |
97
+ |---|------|-------------|
98
+ | 1 | `proxied_fetch` | Fetch a URL through DomiNode's rotating proxy network |
99
+ | 2 | `check_balance` | Check wallet balance |
100
+ | 3 | `check_usage` | Check proxy usage statistics |
101
+ | 4 | `get_proxy_config` | Get proxy configuration and geo-targeting options |
102
+ | 5 | `list_sessions` | List active proxy sessions |
103
+ | 6 | `create_agentic_wallet` | Create an agentic sub-wallet with a spending limit |
104
+ | 7 | `fund_agentic_wallet` | Fund an agentic wallet from the main wallet |
105
+ | 8 | `agentic_wallet_balance` | Check agentic wallet balance |
106
+ | 9 | `list_agentic_wallets` | List all agentic wallets |
107
+ | 10 | `agentic_transactions` | Get agentic wallet transaction history |
108
+ | 11 | `freeze_agentic_wallet` | Freeze an agentic wallet |
109
+ | 12 | `unfreeze_agentic_wallet` | Unfreeze an agentic wallet |
110
+ | 13 | `delete_agentic_wallet` | Delete an agentic wallet |
111
+ | 14 | `create_team` | Create a new team with a shared wallet |
112
+ | 15 | `list_teams` | List all teams the user belongs to |
113
+ | 16 | `team_details` | Get details for a specific team |
114
+ | 17 | `team_fund` | Fund a team's shared wallet |
115
+ | 18 | `team_create_key` | Create an API key for a team |
116
+ | 19 | `team_usage` | Get team usage/transaction history |
117
+ | 20 | `update_team` | Update team name and/or max_members |
118
+ | 21 | `update_team_member_role` | Update a team member's role |
119
+ | 22 | `x402_info` | Get x402 micropayment protocol information |
120
+ | 23 | `topup_paypal` | Create a PayPal wallet top-up order |
121
+
122
+ ## Security
123
+
124
+ - **SSRF Prevention**: Private IP blocking, DNS rebinding protection, Teredo/6to4 IPv6 tunnel detection, hex/octal/decimal normalization, zone ID stripping, `.localhost`/`.local`/`.internal`/`.arpa` TLD blocking, embedded credential blocking
125
+ - **OFAC Compliance**: Blocks proxied requests to sanctioned countries (CU, IR, KP, RU, SY)
126
+ - **Credential Scrubbing**: All `dn_live_*`/`dn_test_*` patterns removed from error outputs
127
+ - **Prototype Pollution**: Recursive stripping of `__proto__`, `constructor`, `prototype` keys
128
+ - **HTTP Method Restriction**: Only GET/HEAD/OPTIONS allowed for proxied fetch
129
+ - **Response Caps**: 10 MB response limit, 4000 character body truncation
130
+ - **Redirect Disabled**: `follow_redirects=False` prevents open redirect abuse
131
+
132
+ ## License
133
+
134
+ MIT
@@ -0,0 +1,122 @@
1
+ # dominusnode-ironclaw
2
+
3
+ DomiNode toolkit for [IronClaw](https://github.com/nicekate/IronClaw), NEAR AI's open-source Rust-based AI agent runtime. Provides 23 tools for interacting with the DomiNode rotating proxy-as-a-service platform, plus MCP server configuration for IronClaw's native MCP bridge.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pip install dominusnode-ironclaw
9
+ ```
10
+
11
+ Or from source:
12
+
13
+ ```bash
14
+ cd integrations/ironclaw
15
+ pip install -e ".[dev]"
16
+ ```
17
+
18
+ ## Quick Start
19
+
20
+ ### Python Bridge Usage
21
+
22
+ ```python
23
+ from dominusnode_ironclaw import DominusNodeToolkit
24
+
25
+ toolkit = DominusNodeToolkit(api_key="dn_live_your_key_here")
26
+
27
+ # Check wallet balance
28
+ balance = toolkit.check_balance()
29
+ print(balance) # JSON string
30
+
31
+ # Fetch a URL through the proxy network
32
+ result = toolkit.proxied_fetch(url="https://httpbin.org/ip", country="US")
33
+ print(result)
34
+ ```
35
+
36
+ ### IronClaw MCP Bridge
37
+
38
+ IronClaw supports MCP Protocol natively. Configure it to connect to the DomiNode MCP server:
39
+
40
+ ```python
41
+ from dominusnode_ironclaw import DominusNodeToolkit
42
+
43
+ toolkit = DominusNodeToolkit(api_key="dn_live_your_key_here")
44
+ mcp_config = toolkit.get_mcp_config()
45
+ # Pass mcp_config to IronClaw's MCP bridge configuration
46
+ ```
47
+
48
+ Or generate MCP config directly:
49
+
50
+ ```python
51
+ from dominusnode_ironclaw.mcp_config import generate_mcp_config
52
+
53
+ config = generate_mcp_config(
54
+ base_url="https://api.dominusnode.com",
55
+ api_key="dn_live_your_key_here",
56
+ )
57
+ ```
58
+
59
+ ### Tool Definitions
60
+
61
+ Get IronClaw-compatible tool definitions for registration:
62
+
63
+ ```python
64
+ toolkit = DominusNodeToolkit(api_key="dn_live_your_key_here")
65
+ tools = toolkit.get_tool_definitions()
66
+
67
+ for tool in tools:
68
+ print(f"{tool['name']}: {tool['description']}")
69
+ # Each tool has: name, description, parameters (JSON Schema), handler
70
+ ```
71
+
72
+ ## Configuration
73
+
74
+ | Parameter | Environment Variable | Default |
75
+ |-----------|---------------------|---------|
76
+ | `api_key` | `DOMINUSNODE_API_KEY` | (required) |
77
+ | `base_url` | `DOMINUSNODE_BASE_URL` | `https://api.dominusnode.com` |
78
+ | `proxy_host` | `DOMINUSNODE_PROXY_HOST` | `proxy.dominusnode.com` |
79
+ | `proxy_port` | `DOMINUSNODE_PROXY_PORT` | `8080` |
80
+ | `timeout` | - | `30.0` seconds |
81
+
82
+ ## Tools (23)
83
+
84
+ | # | Tool | Description |
85
+ |---|------|-------------|
86
+ | 1 | `proxied_fetch` | Fetch a URL through DomiNode's rotating proxy network |
87
+ | 2 | `check_balance` | Check wallet balance |
88
+ | 3 | `check_usage` | Check proxy usage statistics |
89
+ | 4 | `get_proxy_config` | Get proxy configuration and geo-targeting options |
90
+ | 5 | `list_sessions` | List active proxy sessions |
91
+ | 6 | `create_agentic_wallet` | Create an agentic sub-wallet with a spending limit |
92
+ | 7 | `fund_agentic_wallet` | Fund an agentic wallet from the main wallet |
93
+ | 8 | `agentic_wallet_balance` | Check agentic wallet balance |
94
+ | 9 | `list_agentic_wallets` | List all agentic wallets |
95
+ | 10 | `agentic_transactions` | Get agentic wallet transaction history |
96
+ | 11 | `freeze_agentic_wallet` | Freeze an agentic wallet |
97
+ | 12 | `unfreeze_agentic_wallet` | Unfreeze an agentic wallet |
98
+ | 13 | `delete_agentic_wallet` | Delete an agentic wallet |
99
+ | 14 | `create_team` | Create a new team with a shared wallet |
100
+ | 15 | `list_teams` | List all teams the user belongs to |
101
+ | 16 | `team_details` | Get details for a specific team |
102
+ | 17 | `team_fund` | Fund a team's shared wallet |
103
+ | 18 | `team_create_key` | Create an API key for a team |
104
+ | 19 | `team_usage` | Get team usage/transaction history |
105
+ | 20 | `update_team` | Update team name and/or max_members |
106
+ | 21 | `update_team_member_role` | Update a team member's role |
107
+ | 22 | `x402_info` | Get x402 micropayment protocol information |
108
+ | 23 | `topup_paypal` | Create a PayPal wallet top-up order |
109
+
110
+ ## Security
111
+
112
+ - **SSRF Prevention**: Private IP blocking, DNS rebinding protection, Teredo/6to4 IPv6 tunnel detection, hex/octal/decimal normalization, zone ID stripping, `.localhost`/`.local`/`.internal`/`.arpa` TLD blocking, embedded credential blocking
113
+ - **OFAC Compliance**: Blocks proxied requests to sanctioned countries (CU, IR, KP, RU, SY)
114
+ - **Credential Scrubbing**: All `dn_live_*`/`dn_test_*` patterns removed from error outputs
115
+ - **Prototype Pollution**: Recursive stripping of `__proto__`, `constructor`, `prototype` keys
116
+ - **HTTP Method Restriction**: Only GET/HEAD/OPTIONS allowed for proxied fetch
117
+ - **Response Caps**: 10 MB response limit, 4000 character body truncation
118
+ - **Redirect Disabled**: `follow_redirects=False` prevents open redirect abuse
119
+
120
+ ## License
121
+
122
+ MIT
@@ -0,0 +1,21 @@
1
+ """DomiNode IronClaw AI agent integration.
2
+
3
+ Provides a Python toolkit for NEAR AI's IronClaw agent runtime, exposing
4
+ 23 tools for interacting with the DomiNode rotating proxy-as-a-service
5
+ platform. Supports both direct Python bridge usage and MCP Protocol
6
+ configuration for IronClaw's native MCP bridge.
7
+
8
+ Example::
9
+
10
+ from dominusnode_ironclaw import DominusNodeToolkit
11
+
12
+ toolkit = DominusNodeToolkit(api_key="dn_live_...")
13
+ result = toolkit.check_balance() # JSON string
14
+ tools = toolkit.get_tool_definitions() # IronClaw-compatible dicts
15
+ mcp = toolkit.get_mcp_config() # MCP server connection config
16
+ """
17
+
18
+ from dominusnode_ironclaw.tools import DominusNodeToolkit
19
+
20
+ __version__ = "1.0.0"
21
+ __all__ = ["DominusNodeToolkit", "__version__"]
@@ -0,0 +1,78 @@
1
+ """MCP configuration helper for IronClaw's native MCP bridge.
2
+
3
+ Generates connection configuration that IronClaw agents can use to connect
4
+ to the DomiNode MCP server, which exposes 57 authenticated tools for proxy,
5
+ wallet, team, and payment management.
6
+
7
+ Example::
8
+
9
+ from dominusnode_ironclaw.mcp_config import generate_mcp_config
10
+
11
+ config = generate_mcp_config(
12
+ base_url="https://api.dominusnode.com",
13
+ api_key="dn_live_abc123",
14
+ )
15
+ # Pass config to IronClaw's MCP bridge
16
+ """
17
+
18
+ from __future__ import annotations
19
+
20
+ from typing import Any, Dict
21
+
22
+
23
+ def generate_mcp_config(
24
+ base_url: str = "https://api.dominusnode.com",
25
+ api_key: str = "",
26
+ ) -> Dict[str, Any]:
27
+ """Generate an IronClaw-compatible MCP server connection configuration.
28
+
29
+ This configuration tells IronClaw how to connect to the DomiNode MCP
30
+ server, which provides 57 authenticated tools for proxy, wallet, team,
31
+ and payment management.
32
+
33
+ Args:
34
+ base_url: Base URL of the DomiNode API (default: production).
35
+ api_key: DomiNode API key (``dn_live_...`` or ``dn_test_...``).
36
+
37
+ Returns:
38
+ A dictionary suitable for IronClaw's MCP bridge configuration.
39
+ """
40
+ base = base_url.rstrip("/")
41
+
42
+ return {
43
+ "server": {
44
+ "name": "dominusnode",
45
+ "description": "DomiNode rotating proxy-as-a-service MCP server",
46
+ "transport": {
47
+ "type": "streamable-http",
48
+ "url": f"{base}/mcp",
49
+ },
50
+ "auth": {
51
+ "type": "custom",
52
+ "headers": {
53
+ "X-API-Key": api_key,
54
+ "X-DominusNode-Agent": "mcp",
55
+ "User-Agent": "dominusnode-ironclaw/1.0.0",
56
+ },
57
+ },
58
+ },
59
+ "capabilities": {
60
+ "tools": True,
61
+ "resources": False,
62
+ "prompts": False,
63
+ },
64
+ "metadata": {
65
+ "version": "1.0.0",
66
+ "tool_count": 57,
67
+ "categories": [
68
+ "proxy",
69
+ "wallet",
70
+ "agentic-wallet",
71
+ "team",
72
+ "payment",
73
+ "usage",
74
+ "session",
75
+ "x402",
76
+ ],
77
+ },
78
+ }