Skip to content
Open

Llm #266

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
cfb4ca2
voting and locking skills
larrettgee Feb 1, 2026
2c0927c
Add Helixa AgentDNA skill — onchain identity for AI agents on Base
Feb 11, 2026
f7902bd
docs: LLM Gateway onboarding paths and reference updates (#205)
sidrisov Feb 27, 2026
3fbac61
docs: update LLM credit top-up links with ?tab=credits deep-links (#213)
sidrisov Mar 2, 2026
bcfc527
feat: add Quicknode blockchain data access skill
0xsergen Mar 3, 2026
9e3239e
docs: add CLI LLM credit management commands to skill docs
sidrisov Mar 3, 2026
425543e
chore: test direct push to main
sidrisov Mar 3, 2026
dc7e6ec
Revert "chore: test direct push to main"
sidrisov Mar 3, 2026
ae9e29b
Agent profiles (#218)
0xdeployer Mar 4, 2026
a3d60b4
Expand helixa skill: cred scores, breakdowns, staking, agent search
Mar 5, 2026
4985c94
Merge branch 'BankrBot:main' into main
larrettgee Mar 5, 2026
dc2bd88
cleanup existing hydrex skills
larrettgee Mar 5, 2026
32e61d4
liquidity and rewards
larrettgee Mar 5, 2026
e570faf
voter swap
larrettgee Mar 5, 2026
4dc5657
remove pr.md
larrettgee Mar 5, 2026
1dcf87d
Merge pull request #55 from hydrexfi/main
igoryuzo Mar 5, 2026
6eac2e0
docs: add Hydrex to available skills table
igoryuzo Mar 5, 2026
a10c39d
Merge pull request #229 from BankrBot/docs/add-hydrex-to-readme
igoryuzo Mar 5, 2026
c2aeabe
Merge branch 'main' into feat/add-quicknode-skill
igoryuzo Mar 15, 2026
206dcac
Merge pull request #215 from 0xsergen/feat/add-quicknode-skill
igoryuzo Mar 15, 2026
e50c495
Document --low-value flag for bankr balances command (#245)
sidrisov Mar 15, 2026
acbd8a9
feat(helixa): major SKILL.md update - soul vault, handshakes, correct…
Mar 17, 2026
b111b4c
fix: consolidate bankr login flow to ask ToS with other preferences (…
sidrisov Mar 19, 2026
1e0d263
fix: update GitHub URLs from openclaw-skills to skills (#256)
sidrisov Mar 19, 2026
07d73ae
Full skill rewrite: helixa-agentdna -> helixa
Mar 20, 2026
027617b
Merge pull request #133 from Bendr-20/add-helixa-agentdna
igoryuzo Mar 20, 2026
0a12bec
docs: add Helixa to available skills table
igoryuzo Mar 20, 2026
d1c4aa0
Merge pull request #260 from BankrBot/docs/add-helixa-to-readme
igoryuzo Mar 20, 2026
125f1bf
feat: add Trails skill for cross-chain swap, bridge, and DeFi orchest…
AkshatGada Mar 23, 2026
dbb67eb
Update SKILL.md
AkshatGada Mar 23, 2026
de47757
Merge pull request #264 from AkshatGada/add-trails-skill
igoryuzo Mar 23, 2026
db02d20
docs: add Trails by Polygon to available skills table
igoryuzo Mar 23, 2026
d34b931
Merge pull request #265 from BankrBot/docs/add-trails-to-readme
igoryuzo Mar 23, 2026
4d09e44
Merge branch 'doc/onboarding-llm-gateway-openclaw' into main
Ecuaxl Mar 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ Bankr Skills equip builders with plug-and-play tools to build more powerful agen
| [Veil Cash](https://veil.cash) | [veil](veil/) | Privacy-preserving transactions. Deposit into shielded pools, perform ZK withdrawals, manage private transfers. |
| yoink | [yoink](yoink/) | Social on-chain game. "Yoink" a token from the current holder. Uses Bankr for transaction execution. |
| [Neynar](https://neynar.com) | [neynar](neynar/) | Full Farcaster API integration. Post casts, like, recast, follow users, search content, and manage Farcaster identities. |
| [Quicknode](https://www.quicknode.com) | [quicknode](quicknode/) | Blockchain RPC and data access for all supported chains. Native/token balances, gas estimation, transaction status, and onchain queries for Base, Ethereum, Polygon, Solana, and Unichain. Supports API key and x402 pay-per-request access. |
| [Hydrex](https://hydrex.fi) | [hydrex](hydrex/) | Liquidity pools on Base. Lock HYDX for voting power, vote on pool strategies, deposit single-sided liquidity into auto-managed vaults, and claim oHYDX rewards. |
| [Helixa](https://helixa.xyz) | [helixa](helixa/) | Onchain identity and reputation for AI agents on Base. Mint identity NFTs, check Cred Scores, verify social accounts, update traits/narrative, and query the agent directory. Supports SIWA auth and x402 micropayments. |
| [Polygon](https://polygon.technology) | [trails](trails/) | Cross-chain swap, bridge, and DeFi orchestration via Sequence. Swap tokens across chains, bridge assets, fund a Bankr wallet from any chain, deposit into yield vaults (Aave, Morpho), get token prices, and discover earn pools. Integrates with Bankr submit() for on-chain execution. |

## Adding a Skill

Expand Down
8 changes: 4 additions & 4 deletions bankr-signals/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,10 +115,10 @@ curl -X POST https://bankrsignals.com/api/providers/register \

#### Bankr References

- [Bankr Skill](https://github.com/BankrBot/openclaw-skills/tree/main/bankr) - full skill docs
- [Sign & Submit API](https://github.com/BankrBot/openclaw-skills/blob/main/bankr/references/sign-submit-api.md) - signing endpoint details
- [API Workflow](https://github.com/BankrBot/openclaw-skills/blob/main/bankr/references/api-workflow.md) - async job polling
- [Leverage Trading](https://github.com/BankrBot/openclaw-skills/blob/main/bankr/references/leverage-trading.md) - Avantis positions (for LONG/SHORT signals)
- [Bankr Skill](https://github.com/BankrBot/skills/tree/main/bankr) - full skill docs
- [Sign & Submit API](https://github.com/BankrBot/skills/blob/main/bankr/references/sign-submit-api.md) - signing endpoint details
- [API Workflow](https://github.com/BankrBot/skills/blob/main/bankr/references/api-workflow.md) - async job polling
- [Leverage Trading](https://github.com/BankrBot/skills/blob/main/bankr/references/leverage-trading.md) - Avantis positions (for LONG/SHORT signals)
- [Agent API Docs](https://docs.bankr.bot/agent-api/overview) - full API reference

### Step 1: Provider Registration
Expand Down
91 changes: 79 additions & 12 deletions bankr/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,18 +73,17 @@ When the user asks to log in with an email, walk them through this flow:
bankr login email <user-email>
```

**Step 2 — Ask the user for the OTP code** they received via email.
**Step 2 — Ask the user for the OTP code and all preferences in a single message.** This avoids unnecessary back-and-forth. Ask for:

**Step 3 — Before completing login, ask the user about their preferences:**

1. **Accept Terms of Service** — Present the [Terms of Service](https://bankr.bot/terms) link and confirm the user agrees. Required for new users — do not pass `--accept-terms` unless the user has explicitly confirmed.
2. **Read-only or read-write API key?**
1. **OTP code** — the code they received via email
2. **Accept Terms of Service (REQUIRED)** — Present the [Terms of Service](https://bankr.bot/terms) link and confirm the user agrees. **The login command will fail for new users without `--accept-terms`.** You MUST ask for ToS acceptance and do not pass `--accept-terms` unless the user has explicitly confirmed.
3. **Read-only or read-write API key?**
- **Read-only** (default) — portfolio, balances, prices, research only
- **Read-write** (`--read-write`) — enables swaps, transfers, orders, token launches, leverage, Polymarket bets
3. **Enable LLM gateway access?** (`--llm`) — multi-model API at `llm.bankr.bot` (currently limited to beta testers). Skip if user doesn't need it.
4. **Key name?** (`--key-name`) — a display name for the API key (e.g. "My Agent", "Trading Bot")
4. **Enable LLM gateway access?** (`--llm`) — multi-model API at `llm.bankr.bot` (currently limited to beta testers). Skip if user doesn't need it.
5. **Key name?** (`--key-name`) — a display name for the API key (e.g. "My Agent", "Trading Bot")

**Step 4 — Construct and run the step 2 command** with the user's choices:
**Step 3 — Construct and run the step 2 command** with the user's choices. **Do NOT execute if the user has not explicitly accepted the Terms of Service** — ask again if needed:

```bash
# Example with all options
Expand Down Expand Up @@ -223,7 +222,8 @@ For full API details (request/response schemas, job states, rich data, polling s
| `bankr prompt --thread <id> <text>` | Continue a specific conversation thread |
| `bankr status <jobId>` | Check the status of a running job |
| `bankr cancel <jobId>` | Cancel a running job |
| `bankr balances` | Show wallet token balances across all chains |
| `bankr balances` | Show wallet token balances across all chains (hides tokens under $1 by default) |
| `bankr balances --low-value` | Include tokens valued under $1 in the output |
| `bankr balances --chain <chains>` | Filter by chain(s): base, polygon, mainnet, unichain, solana (comma-separated) |
| `bankr balances --json` | Output raw JSON balances |
| `bankr skills` | Show all Bankr AI agent skills with examples |
Expand Down Expand Up @@ -256,6 +256,9 @@ Environment variables override config file values. Config file values override d
| Command | Description |
|---------|-------------|
| `bankr llm models` | List available LLM models |
| `bankr llm credits` | Check credit balance |
| `bankr llm credits add <amount> [--token <addr>] [-y]` | Top up LLM credits from wallet |
| `bankr llm credits auto [--enable/--disable] [--amount] [--threshold] [--tokens]` | View or configure auto top-up |
| `bankr llm setup openclaw [--install]` | Generate or install OpenClaw config |
| `bankr llm setup opencode [--install]` | Generate or install OpenCode config |
| `bankr llm setup claude` | Show Claude Code environment setup |
Expand Down Expand Up @@ -337,15 +340,17 @@ The [Bankr LLM Gateway](https://docs.bankr.bot/llm-gateway/overview) is a unifie

- Uses your `llmKey` if configured, otherwise falls back to your API key
- **LLM credits** (USD) and **trading wallet** (crypto) are completely separate balances — having crypto does NOT give you LLM credits
- **New accounts start with $0 LLM credits** — top up at [bankr.bot/llm](https://bankr.bot/llm) before making any LLM calls, or you will get a 402 error
- Check credits: `bankr llm credits` | Check trading wallet: `bankr balances`
- **New accounts start with $0 LLM credits** — top up via `bankr llm credits add 25` or at [bankr.bot/llm?tab=credits](https://bankr.bot/llm?tab=credits) before making any LLM calls, or you will get a 402 error
- Check credits: `bankr llm credits` | Top up: `bankr llm credits add <amount>` | Auto top-up: `bankr llm credits auto --enable --amount 25 --tokens USDC`
- In OpenClaw config, prefix model IDs with `bankr/` (e.g. `bankr/claude-sonnet-4.6`). In direct API calls, use bare IDs (e.g. `claude-sonnet-4.6`)

### Quick Commands

```bash
bankr llm models # List available models
bankr llm credits # Check credit balance
bankr llm credits add 25 # Top up $25 credits (USDC)
bankr llm credits auto --enable --amount 25 --tokens USDC # Auto top-up
bankr llm setup openclaw --install # Install Bankr provider into OpenClaw
bankr llm setup claude # Print Claude Code env vars
bankr llm claude # Launch Claude Code through gateway
Expand Down Expand Up @@ -512,6 +517,7 @@ bankr prompt "Buy $20 of PEPE on Base"
```bash
# Direct balance check (no AI agent, instant response)
bankr balances
bankr balances --low-value # Include tokens under $1
bankr balances --chain base
bankr balances --chain base,solana
bankr balances --json
Expand Down Expand Up @@ -654,7 +660,8 @@ See [references/safety.md](references/safety.md) for comprehensive safety guidan

### Portfolio

- `bankr balances` (direct, no AI processing)
- `bankr balances` (direct, no AI processing — hides low-value tokens by default)
- `bankr balances --low-value` (include tokens under $1)
- `bankr balances --chain base` (single chain)
- "Show my portfolio"
- "What's my ETH balance?"
Expand Down Expand Up @@ -823,3 +830,63 @@ See [references/error-handling.md](references/error-handling.md) for comprehensi
**Security**: Keep your API key private. Never commit your config file to version control. Only trade amounts you can afford to lose.

**Quick Win**: Start by checking your portfolio (`bankr prompt "Show my portfolio"`) to see what's possible, then try a small $5-10 trade on Base to get familiar with the flow.

---

## Profile Management

Agents can create and manage public profile pages at [bankr.bot/agents](https://bankr.bot/agents). Profiles showcase project metadata, team info, token data (chart + market cap), weekly fee revenue, shipped products, and a Twitter activity feed.

**Eligibility**: You must have deployed a token through Bankr (Doppler or Clanker) or be a fee beneficiary on the token to create a profile. The token address is verified against your deployment history and beneficiary records.

### Profile Lifecycle

1. **Deploy a token** through Bankr (required prerequisite)
2. **Create** a profile via CLI or REST API with the token address
3. **Populate** metadata (team, products, revenue sources)
4. **Admin approval** — profiles start with `approved: false` and become publicly visible after admin approval
5. **Maintain** — post project updates, keep products and revenue sources current

### CLI Commands

```bash
bankr profile # View own profile
bankr profile create # Interactive creation wizard
bankr profile create --name "My Agent" --token 0x... --twitter myagent
bankr profile update --description "Updated description"
bankr profile delete # Delete own profile (with confirmation)
bankr profile add-update # Add a project update
bankr profile add-update --title "v2 Launch" --content "Shipped new features"
```

All commands support `--json` for structured output (enables programmatic use).

### REST API Endpoints

All endpoints require API key authentication via `X-API-Key` header.

| Method | Path | Description |
|--------|------|-------------|
| `GET` | `/agent/profile` | Get own profile |
| `POST` | `/agent/profile` | Create profile |
| `PUT` | `/agent/profile` | Update profile fields |
| `DELETE` | `/agent/profile` | Delete own profile |
| `POST` | `/agent/profile/update` | Add a project update |

**Create profile:**
```bash
curl -X POST "https://api.bankr.bot/agent/profile" \
-H "X-API-Key: $BANKR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"projectName": "My Agent", "tokenAddress": "0x...", "description": "An AI trading agent"}'
```

**Add a project update:**
```bash
curl -X POST "https://api.bankr.bot/agent/profile/update" \
-H "X-API-Key: $BANKR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title": "v2 Launch", "content": "Shipped swap optimization and new UI"}'
```

See [references/agent-profiles.md](references/agent-profiles.md) for the full integration guide.
188 changes: 188 additions & 0 deletions bankr/references/agent-profiles.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
# Agent Profiles Reference

Create and manage public profile pages at [bankr.bot/agents](https://bankr.bot/agents). Profiles showcase project info, team, token data with live charts, weekly fee revenue, products, and activity.

**Eligibility**: You must have deployed a token through Bankr (Doppler or Clanker) or be a fee beneficiary on the token to create an agent profile. The token address is verified against your deployment and beneficiary history.

## Profile Fields

| Field | Required | Description | Limits |
|-------|----------|-------------|--------|
| **projectName** | Yes | Display name | 1-100 chars |
| **description** | No | Project description | Max 2000 chars |
| **profileImageUrl** | No | Logo/avatar URL (auto-populated from Twitter if linked) | Valid URL |
| **tokenAddress** | Yes | Token contract address — must be a token deployed through Bankr (Doppler or Clanker) | - |
| **tokenChainId** | No | Chain: base, ethereum, polygon, solana (default: base) | - |
| **tokenSymbol** | No | Token ticker symbol | Max 20 chars |
| **tokenName** | No | Full token name | Max 100 chars |
| **twitterUsername** | No | Twitter handle (auto-populated from linked account) | Max 50 chars |
| **teamMembers** | No | Array of team members with name, role, and links | Max 20 |
| **products** | No | Array of products with name, description, url | Max 20 |
| **revenueSources** | No | Array of revenue sources with name and description | Max 20 |

## CLI Usage

### View Profile

```bash
bankr profile # Pretty-printed view
bankr profile --json # JSON output
```

### Create Profile

```bash
# Interactive wizard
bankr profile create

# Non-interactive with flags
bankr profile create \
--name "My Agent" \
--description "AI-powered trading agent on Base" \
--token 0x1234...abcd \
--image "https://example.com/logo.png"
```

### Update Profile

```bash
bankr profile update --description "Updated description"
bankr profile update --token 0xNEW...ADDR
```

### Add Project Updates

Project updates appear in a timeline on the profile detail page. Capped at 50 entries (oldest are pruned).

```bash
# Interactive
bankr profile add-update

# Non-interactive
bankr profile add-update --title "v2 Launch" --content "Shipped new swap engine and portfolio dashboard"
```

### Delete Profile

```bash
bankr profile delete # Requires confirmation
```

## REST API Endpoints

All endpoints under `/agent/profile` require API key authentication (`X-API-Key` header).

### GET /agent/profile

Returns the authenticated user's profile.

```bash
curl "https://api.bankr.bot/agent/profile" \
-H "X-API-Key: $BANKR_API_KEY"
```

### POST /agent/profile

Create a new profile. Returns 409 if one already exists.

```json
{
"projectName": "My Agent",
"description": "AI trading agent",
"tokenAddress": "0x1234...abcd",
"tokenChainId": "base",
"tokenSymbol": "AGENT",
"twitterUsername": "myagent",
"teamMembers": [
{ "name": "Alice", "role": "Lead Dev", "links": [{ "type": "twitter", "url": "https://x.com/alice" }] }
],
"products": [
{ "name": "Swap Engine", "description": "Optimized DEX routing", "url": "https://myagent.com/swap" }
],
"revenueSources": [
{ "name": "Trading fees", "description": "0.3% on each swap" }
]
}
```

### PUT /agent/profile

Update specific fields. Only include fields you want to change. Set a field to `null` to clear it.

```json
{
"description": "Updated description",
"tokenAddress": null
}
```

### DELETE /agent/profile

Delete the authenticated user's profile. Returns `{ "success": true }`.

### POST /agent/profile/update

Add a project update entry.

```json
{
"title": "v2 Launch",
"content": "Shipped swap optimization, portfolio dashboard, and new onboarding flow."
}
```

## Public Endpoints (No Auth Required)

| Method | Path | Description |
|--------|------|-------------|
| `GET` | `/agent-profiles` | List approved profiles |
| `GET` | `/agent-profiles/:identifier` | Profile detail by token address or slug |
| `GET` | `/agent-profiles/:identifier/llm-usage` | Public LLM usage statistics |
| `GET` | `/agent-profiles/:identifier/tweets` | Recent tweets from linked Twitter |

### Query Parameters for Listing

| Param | Default | Description |
|-------|---------|-------------|
| `limit` | 20 | Results per page (1-100) |
| `offset` | 0 | Pagination offset |
| `sort` | marketCap | Sort: `marketCap` or `newest` |

## Approval Workflow

Profiles start with `approved: false` and are not publicly visible. After admin approval, the profile appears in the public listing at `/agents` and receives automatic market cap and revenue updates from background workers.

## Auto-Populated Fields

- **profileImageUrl**: Auto-populated from linked Twitter profile image if no manual URL is provided
- **twitterUsername**: Auto-populated from linked Twitter social account
- **marketCapUsd**: Updated every 5 minutes by background worker (via CoinGecko)
- **weeklyRevenueWeth**: Updated every 30 minutes by background worker (from Doppler fee data)

## LLM Usage Stats

`GET /agent-profiles/:identifier/llm-usage` returns public LLM usage statistics for an approved profile. Cached for 5 minutes.

Query parameters:
- `days` (default: 30, range: 1-90) — lookback period

Response includes:
- `totals` — totalRequests, totalTokens, totalInputTokens, totalOutputTokens, successRate (0-100), avgLatencyMs
- `byModel` — per-model breakdown with requests, totalTokens, successRate, avgLatencyMs
- `daily` — array of `{ date, requests, totalTokens }` entries for charting (gaps filled with zeros)

No cost data is included (public-safe).

## Tweets

`GET /agent-profiles/:identifier/tweets` returns up to 10 recent original tweets (excludes replies/retweets) from the profile's linked Twitter account. Cached for 10 minutes.

Response: `{ tweets: [{ id, text, createdAt, metrics: { likes, retweets, replies }, url }] }`

Returns empty array if no Twitter account is linked or if fetch fails.

## Real-Time Updates

The `/agent-profiles` WebSocket namespace provides live updates:
- `AGENT_PROFILE_UPDATE` — profile listing changes (market cap, revenue updates)
- `AGENT_PROFILE_DETAIL_UPDATE` — detail page changes (subscribe to a specific profile via `socket.emit("subscribe", slug)`)
Loading