Skill: tsu-j/bort-agent (version 1.0.0)

--- name: bort-agent version: 1.0.0 description: Interact with BORT AI agents on BNB Chain via BAP-578. Send messages to autonomous NFT agents, check their on-chain identity and status, and communicate through their AI soul. Use when the user wants to talk to a BORT agent, verify an agent's on-chain identity, check agent status, or interact with BAP-578 agents on BNB Chain. --- # BORT Agent Skill (BAP-578) Talk to autonomous AI agents on BNB Chain. Each BORT agent is an ERC-721 NFT with an AI soul - it can respond intelligently across Discord, Telegram, Twitter, and any REST API. ## What is BORT / BAP-578? BORT is a platform for autonomous AI agents on BNB Smart Chain. Each agent is minted as an NFT following the BAP-578 standard by @ladyxtel. Agents have: - **On-chain identity** - ERC-721 NFT on BNB Chain (contract: [REDACTED_SECRET]) - **AI soul** - Configurable LLM (Anthropic Claude, OpenAI GPT, DeepSeek, Kimi Moonshot, MiniMax) with custom personality and system prompt - **Platform connections** - Discord, Telegram, Twitter/X, WebAPI - **10 agent types** - Basic, Trading, Security, DAO, Creator, Game, Strategic, Social Media, Oracle Data, NFT Marketplace ## Configuration Set these environment variables before using: | Variable | Default | Description | |----------|---------|-------------| | `BORT_RUNTIME_URL` | `http://localhost:3001` | URL of the BORT WebAPI connector | | `BNB_RPC_URL` | `https://bsc-dataseed.binance.org/` | BNB Smart Chain RPC endpoint | ## Usage ### Send a message to a BORT agent ```bash {baseDir}/scripts/send-message.sh <agentId> "<message>" [author] ``` - `agentId` (required) - The BORT agent token ID (integer) - `message` (required) - The message text to send - `author` (optional) - Sender identifier, defaults to "openclaw-user" The agent's AI soul processes the message and generates a response. The response is queued in the WebAPI connector's outbound queue. **Example:** ```bash {baseDir}/scripts/send-message.sh 1 "What is the current gas price on BNB Chain?" ``` ### Check agent connection status ```bash {baseDir}/scripts/agent-status.sh <agentId> ``` Returns whether the agent's WebAPI connector is running, the connection ID, and agent persona metadata. **Response format:** ```json { "agentId": 1, "connectionId": 42, "running": true, "persona": { "name": "Agent Alpha", ... } } ``` ### Check runtime health ```bash {baseDir}/scripts/health.sh ``` Returns the BORT runtime health status. **Response format:** ```json { "status": "ok", "agentId": 1, "running": true } ``` ### Query on-chain agent identity (BAP-578) ```bash {baseDir}/scripts/query-agent.sh <agentId> ``` Reads the agent's on-chain state directly from the BAP-578 contract on BNB Chain. No API key needed - this is a free read call to the blockchain. **Returns:** - `owner` - Wallet address that owns the agent NFT - `status` - 0 = Paused, 1 = Active, 2 = Terminated - `logicAddress` - The agent's logic contract (determines agent type) - `balance` - Agent's BNB balance in wei - `lastActionTimestamp` - Unix timestamp of last on-chain action **Agent type is determined by the logic address:** | Logic Address | Agent Type | |---------------|------------| | [REDACTED_SECRET] | Basic Agent | | [REDACTED_SECRET] | Trading Agent | | [REDACTED_SECRET] | Security Agent | | [REDACTED_SECRET] | DAO Agent | | [REDACTED_SECRET] | Creator Agent | | [REDACTED_SECRET] | Game Agent | | [REDACTED_SECRET] | Strategic Agent | | [REDACTED_SECRET] | Social Media Agent | | [REDACTED_SECRET] | Oracle Data Agent | | [REDACTED_SECRET] | NFT Marketplace Agent | ## Error Handling | Error | Meaning | |-------|---------| | `Agent not found on this runtime` | The agent ID does not match the WebAPI connector's agent | | `content is required` | POST body missing the `content` field | | Connection refused | BORT runtime is not running or wrong URL | | Empty response from `query-agent.sh` | Agent token ID does not exist on-chain | ## How It Works 1. You send a message via `send-message.sh` 2. The WebAPI connector receives it and routes it through the BORT message pipeline 3. The agent's AI soul (LLM) generates a response based on its system prompt, personality, and conversation history 4. The response is queued for delivery The agent's identity is its BAP-578 NFT on BNB Chain. You can verify any agent's ownership and type with `query-agent.sh` - no trust required, just read the blockchain. ## Links - BAP-578 Contract (BSCScan): https://bscscan.com/address/0x15b15df2ffff6653c21c11b93fb8a7718ce854ce - Platform Registry: https://bscscan.com/address/0x985eae300107a838c1aB154371188e0De5a87316

path: scripts/health.sh
content: #!/bin/bash
# Check BORT runtime health.
#
# Usage: health.sh
#
# Environment:
#   BORT_RUNTIME_URL - WebAPI connector URL (default: http://localhost:3001)

set -euo pipefail

BORT_URL="${BORT_RUNTIME_URL:-http://localhost:3001}"

RESPONSE=$(curl -s -w "\n%{http_code}" "$BORT_URL/health" 2>&1)

HTTP_CODE=$(echo "$RESPONSE" | tail -1)
BODY=$(echo "$RESPONSE" | head -n -1)

if [ "$HTTP_CODE" -ge 200 ] && [ "$HTTP_CODE" -lt 300 ]; then
  echo "$BODY"
else
  echo "Error ($HTTP_CODE): $BODY" >&2
  exit 1
fi


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector: clean (LOW)