diff --git a/README.md b/README.md
index 5517678..5a0f818 100644
--- a/README.md
+++ b/README.md
@@ -29,20 +29,34 @@
At the core of the network, Googleβs A2A protocol and ERC-8004 smart contracts enable identity registration, reputation building, and cooperative task-solving. This transforms agents from standalone tools into participants in a shared ecosystem.
We believe in self-organizing agent networks β systems that can share context, form teams, and reason collectively without central control.
-Visit our website at [isek.xyz](https://www.isek.xyz/) for more details.
+## Feature
+
+
+
+
+
+## Ecosystem
+We build multiple components to demonstrate the viability of the ecosystem in cluding chatapp. agent explorer and chrome extensions. Each components of the system can be replaced by third party components:
+
+
+
+
## π Star Us on GitHub and Get Exclusive Reward!
Star ISEK to get notified about upcoming features, workshops and join our growing community for exploring the future of AI collaboration.
-
-
----
+
+
+
+## Resource
+Home Page: [Home Page](https://www.isek.xyz/)\
+Chat App: [Chat App](https://chatbot.isek.xyz/) (join discord community at [Discord](https://C.gg/PRzG3MSP) to get activation code)\
+Agent Explorer: [Agent explorer](https://isek-explorer.vercel.app/)
## π Quick Start
### Prerequisites
-- **Python 3.10+**
-- **Node.js 18+** (for P2P functionality)
+**Python 3.10+** and **Node.js 18+** (for P2P functionality)
### Installation
```bash
@@ -66,7 +80,7 @@ message_content = await node.send_message("http://localhost:9999", query)
### P2P Relay setup
```bash
-isek run-realy
+isek run relay
```
Expected output:
Relay peer started. peerId=
@@ -110,74 +124,43 @@ resp = p2p.send_message(
)
```
+## Support:
+Join discord and create support ticket:[Discord](https://C.gg/PRzG3MSP)
### Wallet & Identity (optional)
ISEK now uses a simple local wallet manager and an ERC-8004 identity flow.
-
- Wallets are stored in `isek/web3/wallet.{NETWORK}.json` by default.
- ABI path is relative by default: `isek/web3/abi/IdentityRegistry.json`.
- Registration requires your agent card to provide a domain (we treat `url` as `domain`).
-Add these keys to your `.env` (adjust for your network):
-
-```env
-# Network and chain
-NETWORK=base-sepolia
-ISEK_RPC_URL=https://sepolia.base.org
-ISEK_CHAIN_ID=84532
-
-# Identity contract
-ISEK_IDENTITY_REGISTRY_ADDRESS=0xYourRegistryAddress
-ISEK_IDENTITY_ABI_PATH=isek/web3/abi/IdentityRegistry.json
-
-# Optional
-ISEK_NETWORK_NAME=ISEK test network
-ISEK_MAX_PRIORITY_FEE_GWEI=1
-ISEK_EXPLORER_TX_URL_TEMPLATE=https://sepolia.basescan.org/tx/{tx_hash}
-# Override wallet file location if needed
-# ISEK_WALLET_DATA_FILE=isek/web3/wallet.base-sepolia.json
-```
-
-Register or resolve your agent identity:
-
+### Register or resolve your agent identity:
```python
from isek.web3.isek_identiey import ensure_identity
-
-# Any object with .name and .domain (or .url) works
-agent_card = type("Card", (), {"name": "My Agent", "domain": "http://agent.isek.xyz"})()
-
-address, agent_id, tx_hash = ensure_identity(agent_card)
+address, agent_id, tx_hash = ensure_identity(your_a2a_agent_card)
print("wallet:", address, "agent_id:", agent_id, "tx:", tx_hash)
```
-
Notes:
- If the registry address or ABI are not set, the function returns your wallet address and skips on-chain registration.
- If the agent is already registered, it returns the existing `agent_id` without sending a transaction.
-
### Try Examples
-[A2A Agent Server](https://www.isek.xyz/)
-[A2A Agent Client](https://www.isek.xyz/)
-[P2P Agent Server](https://www.isek.xyz/)
-[A2A Agent Client](https://www.isek.xyz/)
+[A2A Agent Server](https://github.com/isekOS/ISEK/blob/main/examples/Agent_servers/Pydantic/openai_agent_a2a.py)\
+[A2A Agent Client](https://github.com/isekOS/ISEK/blob/main/examples/Agent_client/a2a_client.py)\
+[P2P Agent Server](https://github.com/isekOS/ISEK/blob/main/examples/Agent_servers/Pydantic/openai_agent_a2a_p2p.py)\
+[P2P Agent Client](https://github.com/isekOS/ISEK/blob/main/examples/Agent_client/a2a_client_p2p.py)
----
-
-## π§ͺ CLI Commands
-```bash
-isek setup # Install Python and JavaScript dependencies
-isek run_relay # Start the relay
-isek clean # Clean temporary files
-isek --help # View available commands
-```
----
+## Demo
+### Registered Agents on block chain
+
+
+
## π€ Contributing
-We welcome collaborators, researchers, and early adopters!
-
+We welcome collaborators, researchers, and ecosystem collaborators!
+* Join Discord to get latest update: [Discord](https://C.gg/PRzG3MSP)
* π¬ Open issues or suggestions via [GitHub Issues](https://github.com/your-repo/issues)
* π§ Contact us directly: [team@isek.xyz](mailto:team@isek.xyz)
* π See our [Contribution Guidelines](CONTRIBUTING.md)
@@ -186,5 +169,5 @@ We welcome collaborators, researchers, and early adopters!
Made with β€οΈ by the Isek Team
- Autonomy is not isolation. It's cooperation, at scale.
+ Agent Autonomy = Cooperation + Scale
diff --git a/assets/Agent_directory.png b/assets/Agent_directory.png
new file mode 100644
index 0000000..0756517
Binary files /dev/null and b/assets/Agent_directory.png differ
diff --git a/assets/Chatapp.png b/assets/Chatapp.png
new file mode 100644
index 0000000..d5fe983
Binary files /dev/null and b/assets/Chatapp.png differ
diff --git a/assets/MCP.png b/assets/MCP.png
new file mode 100644
index 0000000..15a03e5
Binary files /dev/null and b/assets/MCP.png differ
diff --git a/assets/P2P.png b/assets/P2P.png
new file mode 100644
index 0000000..6c895c8
Binary files /dev/null and b/assets/P2P.png differ
diff --git a/assets/Tech_pverview.png b/assets/Tech_pverview.png
new file mode 100644
index 0000000..14f9bdc
Binary files /dev/null and b/assets/Tech_pverview.png differ
diff --git a/assets/blockchain.png b/assets/blockchain.png
new file mode 100644
index 0000000..0d08a1e
Binary files /dev/null and b/assets/blockchain.png differ
diff --git a/assets/ecosystem_overview.png b/assets/ecosystem_overview.png
new file mode 100644
index 0000000..78779f2
Binary files /dev/null and b/assets/ecosystem_overview.png differ
diff --git a/assets/feature.png b/assets/feature.png
new file mode 100644
index 0000000..e828601
Binary files /dev/null and b/assets/feature.png differ
diff --git a/assets/homepage.png b/assets/homepage.png
new file mode 100644
index 0000000..e5517e4
Binary files /dev/null and b/assets/homepage.png differ
diff --git a/assets/paper.png b/assets/paper.png
new file mode 100644
index 0000000..e73271c
Binary files /dev/null and b/assets/paper.png differ
diff --git a/assets/vision.png b/assets/vision.png
new file mode 100644
index 0000000..834d7c6
Binary files /dev/null and b/assets/vision.png differ
diff --git a/isek/cli.py b/isek/cli.py
index f109658..b9550e9 100644
--- a/isek/cli.py
+++ b/isek/cli.py
@@ -136,16 +136,73 @@ def is_development_environment():
click.secho(" P2P functionality may not work correctly", fg="yellow")
click.secho("π ISEK setup completed successfully!", fg="green")
- click.secho(" You can now run relay with 'isek run_relay'", fg="blue")
+ click.secho(" You can now run relay with 'isek run relay'", fg="blue")
-@cli.command()
-def run_relay():
- """Run relay"""
- subprocess.run(
- ["node", "isek/protocol/p2p/relay.js"], check=True, capture_output=True
- )
- click.secho("β Relay started", fg="green")
+@cli.group()
+def run():
+ """Run ISEK servers and services"""
+
+
+@run.command()
+@click.option(
+ "--port", default=9090, type=int, help="Port for the relay server (default: 9090)"
+)
+def relay(port):
+ """Start a libp2p circuit relay server"""
+ import importlib.resources
+
+ # Find the p2p directory
+ try:
+ p2p_resource = importlib.resources.files("isek").joinpath("protocol/p2p")
+ p2p_dir = Path(str(p2p_resource))
+ except Exception:
+ # Fallback to development environment path
+ p2p_dir = Path(__file__).parent / "protocol" / "p2p"
+
+ relay_script = p2p_dir / "relay.js"
+
+ # Check if relay.js exists
+ if not relay_script.exists():
+ click.secho(f"β Relay script not found at {relay_script}", fg="red")
+ sys.exit(1)
+
+ # Check if Node.js is installed
+ try:
+ subprocess.run(["node", "--version"], check=True, capture_output=True)
+ except (subprocess.CalledProcessError, FileNotFoundError):
+ click.secho("β Node.js is required to run the relay server", fg="red")
+ click.secho(" Please install Node.js from https://nodejs.org/", fg="yellow")
+ sys.exit(1)
+
+ # Check if node_modules exists
+ if not (p2p_dir / "node_modules").exists():
+ click.secho("β JavaScript dependencies not installed", fg="red")
+ click.secho(
+ " Please run 'isek setup' first to install dependencies", fg="yellow"
+ )
+ sys.exit(1)
+
+ # Validate port range
+ if port <= 0 or port >= 65536:
+ click.secho(f"β Invalid port: {port}. Must be between 1 and 65535", fg="red")
+ sys.exit(1)
+
+ click.secho(f"π Starting libp2p relay server on port {port}...", fg="blue")
+ click.secho(" Press Ctrl+C to stop", fg="yellow")
+
+ # Run the relay server
+ try:
+ subprocess.run(
+ ["node", str(relay_script), f"--port={port}"],
+ cwd=p2p_dir,
+ check=True,
+ )
+ except KeyboardInterrupt:
+ click.secho("\nβ Relay server stopped", fg="green")
+ except subprocess.CalledProcessError as e:
+ click.secho(f"\nβ Relay server failed: {e}", fg="red")
+ sys.exit(e.returncode)
@cli.group()