@gblin-protocol/mcp-server 0.1.16 → 0.1.17

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.
package/README.md CHANGED
@@ -1,416 +1,437 @@
1
- # GBLIN MCP Server
2
-
3
- > **Treasury standard for AI agents on Base mainnet.** A Model Context Protocol (MCP) server that lets autonomous agents hold capital in GBLIN — a diversified, Crash-Shield-protected on-chain index — and Just-In-Time swap to USDC the millisecond they need to pay an [x402](https://docs.cdp.coinbase.com/x402/welcome) invoice.
4
-
5
- [![npm](https://img.shields.io/npm/v/@gblin-protocol/mcp-server.svg)](https://www.npmjs.com/package/@gblin-protocol/mcp-server)
6
- [![CI](https://github.com/gblinproject/GBLIN-MCP/actions/workflows/ci.yml/badge.svg)](https://github.com/gblinproject/GBLIN-MCP/actions/workflows/ci.yml)
7
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
8
- [![Base Mainnet](https://img.shields.io/badge/network-Base%20mainnet-0052FF)](https://basescan.org/address/0x38DcDB3A381677239BBc652aed9811F2f8496345)
9
- [![Governance: 48h Timelock](https://img.shields.io/badge/governance-48h%20Timelock-1f6feb)](https://basescan.org/address/0x6aBeC8716fFeEcf7C3D6e68255b4797113E8e5Dd)
10
- [![Base MCP Plugin](https://img.shields.io/badge/Base%20MCP-PR%20%2356-blue)](https://github.com/base/skills/pull/56)
11
- [![x402 Manifest](https://img.shields.io/badge/x402-manifest-green)](https://gblin.digital/.well-known/x402)
12
- [![MCP Registry](https://img.shields.io/badge/MCP%20Registry-Active-success)](https://registry.modelcontextprotocol.io)
13
- [![Glama Score](https://img.shields.io/badge/Glama-100%25-brightgreen)](https://glama.ai/mcp/servers/gblinproject/GBLIN-MCP)
14
-
15
- 📖 **Full documentation and Quick Start:** [gblin.digital/agents](https://gblin.digital/agents)
16
-
17
- ---
18
-
19
- ## ElizaOS Plugin
20
-
21
- For agents running on **ElizaOS**, install the companion plugin:
22
-
23
- ```bash
24
- npm install plugin-gblin
25
- # or: elizaos plugins add gblin
26
- ```
27
-
28
- It exposes three native Actions (`CHECK_GBLIN_TREASURY_HEALTH`, `INVEST_IDLE_USDC_GBLIN`, `RESCUE_USDC_FROM_GBLIN`) and a Provider that injects live NAV + Crash Shield status into the agent context on every loop.
29
-
30
- → [Full Eliza plugin docs](https://github.com/gblinproject/GBLIN_PLUGIN)
31
-
32
- ---
33
-
34
- ## AI assistant discovery — `gblin-init`
35
-
36
- Drop an `AGENTS.md` treasury policy into your repo so every modern AI coding
37
- assistant (Claude Code, Cursor, Windsurf, GitHub Copilot, Codex) automatically
38
- discovers GBLIN when it works on your codebase:
39
-
40
- ```bash
41
- npx -p @gblin-protocol/mcp-server gblin-init
42
- ```
43
-
44
- The command is **idempotent and safe**:
45
-
46
- - If `AGENTS.md` does not exist → creates it from the canonical template at
47
- [`gblin.digital/AGENTS.template.md`](https://gblin.digital/AGENTS.template.md).
48
- - If `AGENTS.md` exists → appends a clearly delimited GBLIN block at the
49
- bottom; your own content is never touched.
50
- - Re-running is a no-op (detected via stable HTML markers).
51
- - `--dry-run` prints what it would do without writing.
52
- - `--force` refreshes the block to the latest version.
53
-
54
- It also runs offline thanks to a bundled fallback template.
55
-
56
- ### Postinstall hint
57
-
58
- When the package is installed as a regular dependency (`npm i @gblin-protocol/mcp-server`),
59
- a short tip is printed once suggesting the command above. **No files are
60
- written** during postinstall — security-friendly and Socket-compliant. Set
61
- `GBLIN_SKIP_HINT=1` to silence it.
62
-
63
- ---
64
-
65
- ## Trust & Governance
66
-
67
- **GBLIN_V5 is owned by a 48h Timelock Controller** — every admin operation (parameter change, oracle update, ownership transfer) is enforced on-chain to wait **172,800 seconds** before execution. Agents and integrators can verify this directly on BaseScan.
68
-
69
- | Component | Address | Role |
70
- |---|---|---|
71
- | **GBLIN_V5 token** | [`0x38DcDB3A...6345`](https://basescan.org/address/0x38DcDB3A381677239BBc652aed9811F2f8496345) | Index contract — owned by timelock |
72
- | **Timelock Controller** | [`0x6aBeC8716...8e5Dd`](https://basescan.org/address/0x6aBeC8716fFeEcf7C3D6e68255b4797113E8e5Dd) | 48h immutable delay, 14d grace period |
73
- | **Ownership transfer tx** | [`0xb653f54f...edaaf`](https://basescan.org/tx/0xb653f54ffa9b1764b41932e6a411077e7e34550605303f15d90900de682edaaf) | Transferred at block 46160610 |
74
-
75
- Properties enforced at the contract level:
76
- - `MIN_DELAY` is **immutable** (override of `updateDelay` reverts permanently)
77
- - `PROPOSER_ROLE` and `CANCELLER_ROLE` are **strictly separated** (constructor reverts on overlap)
78
- - `EXECUTOR_ROLE` is open (`address(0)`) — anyone can execute a matured operation, anti-censorship
79
- - The timelock is **self-administered**: every role/config change must itself go through the 48h delay
80
-
81
- This is why the `get_governance_state` tool returns `owner_is_timelock: true` and a verifiable `min_delay_seconds: 172800`. AI agents can use these flags to gate trust-sensitive actions.
82
-
83
- ---
84
-
85
- ## Why this exists
86
-
87
- AI agents today hold their working capital in **USDC**. USDC sits flat: zero yield, full inflation exposure.
88
-
89
- **GBLIN** is an on-chain index on Base (45% cbBTC + 45% WETH + 10% USDC) with an algorithmic Crash Shield that auto-rebalances toward USDC when a basket asset drops >20%. Agents holding GBLIN earn basket appreciation while keeping the ability to settle x402 invoices instantly via native one-tx atomic swaps.
90
-
91
- This server exposes that capability to any LLM agent through the standard MCP protocol.
92
-
93
- ---
94
-
95
- ## Quick start
96
-
97
- ### Claude Desktop
98
-
99
- Add to `claude_desktop_config.json` (on Windows: `%APPDATA%\Claude\claude_desktop_config.json`):
100
-
101
- ```json
102
- {
103
- "mcpServers": {
104
- "gblin": {
105
- "command": "npx",
106
- "args": ["-y", "@gblin-protocol/mcp-server"]
107
- }
108
- }
109
- }
110
- ```
111
-
112
- Restart Claude Desktop. The 8 GBLIN tools appear in the tool picker.
113
-
114
- ### Windsurf / Cursor
115
-
116
- Add to `~/.codeium/windsurf/mcp_config.json` (Windsurf) or the equivalent Cursor MCP config:
117
-
118
- ```json
119
- {
120
- "mcpServers": {
121
- "gblin": {
122
- "command": "npx",
123
- "args": ["-y", "@gblin-protocol/mcp-server"],
124
- "env": {
125
- "GBLIN_RPC_URL": "https://base-rpc.publicnode.com"
126
- }
127
- }
128
- }
129
- }
130
- ```
131
-
132
- Refresh MCP servers from the IDE settings (or restart). The tools become callable inline.
133
-
134
- ### Coinbase AgentKit (TypeScript)
135
-
136
- ```ts
137
- import { MCPClient } from "@modelcontextprotocol/sdk/client/index.js";
138
- import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
139
-
140
- const transport = new StdioClientTransport({
141
- command: "npx",
142
- args: ["-y", "@gblin-protocol/mcp-server"],
143
- });
144
- const client = new MCPClient({ name: "my-agent", version: "1.0.0" });
145
- await client.connect(transport);
146
-
147
- // List tools
148
- const { tools } = await client.listTools();
149
-
150
- // Quote a JIT payment of $0.50
151
- const jit = await client.callTool({
152
- name: "swap_gblin_to_usdc_jit",
153
- arguments: { usdc_needed: "0.50", wallet_address: "0xYourAgent..." },
154
- });
155
- ```
156
-
157
- ### ElizaOS / custom
158
-
159
- Any framework that speaks MCP over stdio works:
160
-
161
- ```bash
162
- npx @gblin-protocol/mcp-server
163
- ```
164
-
165
- Also supports Cline, Continue.dev, and any agent that implements the MCP client spec.
166
-
167
- ---
168
-
169
- ## The 8 tools
170
-
171
- ### Free tools (no payment required)
172
-
173
- | Tool | Purpose |
174
- |---|---|
175
- | `get_treasury_state` | NAV in USD + basket composition + Crash Shield status |
176
- | `quote_safe_swap` | Preview buy or sell with dynamic slippage buffer |
177
- | `swap_gblin_to_usdc_jit` | **The x402 magic**: generate atomic GBLIN→USDC calldata (free) |
178
- | `invest_usdc_to_gblin` | Convert USDC earnings into GBLIN treasury (MEV-safe) (free) |
179
- | `get_governance_state` | Verify owner == 48h Timelock + pending asset proposals + min delay |
180
- | `share_skill_with_peer` | Generate a portable skill seed to onboard a peer agent + embedded referral code |
181
-
182
- ### Paid tools (x402 micropayments)
183
-
184
- | Tool | Price | Purpose |
185
- |---|---|---|
186
- | `analyze_treasury_health` | $0.003 USDC | Balances + gas + runway + rebalance advice |
187
- | `find_keeper_bounty` | $0.001 USDC | **GBLIN pays you**: check if a rebalance bounty is available (0.0001 ETH reward, no capital required) |
188
-
189
- All tools return structured JSON. All values are quoted on-chain (NAV via `quoteSellGBLIN` × Chainlink ETH/USD, with 24h staleness guard). No mock data.
190
-
191
- **Live verification:** the test suite (`npm test`) runs all eight tools against Base mainnet and confirms calldata generation, oracle freshness, slippage math, and governance state. See the [latest CI run](https://github.com/gblinproject/GBLIN-MCP/actions).
192
-
193
- ---
194
-
195
- ## x402 micropayments
196
-
197
- The paid tools use the **x402 protocol** for instant micropayments. Here's how it works:
198
-
199
- ### Payment flow
200
-
201
- 1. **First call** (without payment): The tool returns a 402 manifest with payment details
202
- 2. **Pay via facilitator**: Send a POST request to the facilitator with the payment details
203
- 3. **Receive PaymentProof**: The facilitator returns a signed proof of payment
204
- 4. **Second call** (with `_payment`): Include the base64-encoded PaymentProof in the `_payment` field
205
-
206
- ### Example (analyze_treasury_health)
207
-
208
- ```bash
209
- # Step 1: Get payment manifest
210
- npx @gblin-protocol/mcp-server analyze_treasury_health '{"wallet_address":"0x..."}'
211
- # Returns: 402 error with payment details
212
-
213
- # Step 2: Pay via facilitator
214
- curl -X POST https://x402.org/facilitator/pay \
215
- -H "Content-Type: application/json" \
216
- -d '{
217
- "amount": "0.003",
218
- "currency": "USDC",
219
- "recipient": "0x0ebA5d314F4f5Dcb7A094953Fa9311a45172dd1B",
220
- "chainId": 8453
221
- }'
222
- # Returns: PaymentProof JSON
223
-
224
- # Step 3: Call tool with payment
225
- npx @gblin-protocol/mcp-server analyze_treasury_health \
226
- '{"wallet_address":"0x...", "_payment":"<base64 PaymentProof>"}'
227
- # Returns: Treasury analysis results
228
- ```
229
-
230
- ### Payment recipients
231
-
232
- - **Default recipient**: `0x0ebA5d314F4f5Dcb7A094953Fa9311a45172dd1B`
233
- - **Override**: Set `RECIPIENT_WALLET` environment variable to use your own wallet
234
-
235
- ### Supported facilitators
236
-
237
- - **Primary**: `https://x402.org/facilitator` (Coinbase-maintained reference implementation)
238
- - **Override**: Set `X402_FACILITATOR_URL` environment variable
239
-
240
- All payments are processed on **Base mainnet** using USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913).
241
-
242
- ---
243
-
244
- ## Architectural decisions
245
-
246
- ### Native atomic swap
247
-
248
- The GBLIN contract exposes `sellGBLINForToken(amount, targetToken, fee, minOut)`. This burns GBLIN, swaps the basket → WETH → target token in a **single transaction**. No batched UserOp, no ERC-4337 dependency, no risk of half-finished JIT.
249
-
250
- The MCP returns calldata that works identically on:
251
- - **EOA wallets** (Privy, MetaMask, raw private key)
252
- - **ERC-4337 smart accounts** (Safe, Coinbase smart account)
253
- - **EIP-7702 delegated EOAs** (Pectra+)
254
-
255
- ### Dynamic slippage
256
-
257
- Slippage tolerance scales with on-chain risk regime:
258
-
259
- | Condition | Buffer |
260
- |---|---|
261
- | Normal market | **2.5%** |
262
- | Crash Shield active (≥1 basket asset slashed) | **4.0%** |
263
-
264
- The buffer is applied on top of the contract's internal `maxInternalSlippage` (200 bps), absorbing oracle drift and Uniswap pool variance.
265
-
266
- ### MEV protection
267
-
268
- `invest_usdc_to_gblin` **never** passes `minOut = 0`. Both `minWethOut` and `minGblinOut` are computed from on-chain quotes plus the dynamic slippage buffer. This eliminates the sandwich-attack surface that plagues naïve buy-with-token tools.
269
-
270
- ### Cooldown enforcement
271
-
272
- The contract enforces a 120-second sell lock after each buy. The JIT tool reads `lastDepositTime` and the **on-chain `block.timestamp`** (never `Date.now()`) and returns a clear `CooldownActive` error with the exact seconds remaining if the swap would revert.
273
-
274
- ---
275
-
276
- ## Configuration
277
-
278
- The server reads `GBLIN_RPC_URL` from the environment. With no env var it falls back to `https://base-rpc.publicnode.com` (free, no key, generous limits).
279
-
280
- For production load (>100 concurrent agents) use a dedicated provider:
281
-
282
- ```bash
283
- export GBLIN_RPC_URL="https://base-mainnet.g.alchemy.com/v2/YOUR_KEY"
284
- npx @gblin-protocol/mcp-server
285
- ```
286
-
287
- See `.env.example` for the full list.
288
-
289
- ---
290
-
291
- ## Development
292
-
293
- ```bash
294
- git clone https://github.com/gblinproject/GBLIN-MCP
295
- cd GBLIN-MCP
296
- npm install
297
- npm run build
298
- npm test # live read-only smoke test against Base mainnet
299
- npm start # run the compiled server
300
- ```
301
-
302
- Project layout:
303
-
304
- ```
305
- src/
306
- config.ts # network constants, addresses, slippage params
307
- abi.ts # GBLIN_V5 + Chainlink + ERC-20 ABIs
308
- client.ts # viem PublicClient + on-chain timestamp helper
309
- helpers.ts # NAV, basket state, slippage, cooldown, reverse quote
310
- keeper.ts # keeper bounty finder (incentivizedRebalance math)
311
- tools.ts # the 8 tool implementations + zod schemas
312
- index.ts # MCP stdio server entry
313
- scripts/
314
- test.ts # live smoke test
315
- ```
316
-
317
- ---
318
-
319
- ## Security notes
320
-
321
- - The server is **read-only**. It never holds, signs, or broadcasts.
322
- - All quotes are derived from on-chain calls + Chainlink oracles. Stale or negative oracle answers cause the tool to abort with `OracleStale` / `OracleDead`.
323
- - The agent's wallet is the sole signer. Calldata returned by tools is plain ABI-encoded bytes — review before broadcasting in untrusted environments.
324
- - No telemetry, no analytics, no remote dependencies beyond the configured RPC.
325
-
326
- ---
327
-
328
- ## Roadmap
329
-
330
- - **v0.2**: Uniswap V3 QuoterV2 integration for sub-1% slippage precision
331
- - **v0.3**: Permit2 support (skip the approve step for x402 reinvestment)
332
- - **v0.4**: Streamable HTTP transport for hosted multi-agent setups
333
- - **v1.0**: Audited contract integration + remote-only deployment guide
334
-
335
- ---
336
-
337
- ## Links
338
-
339
- - **Contract**: [0x38DcDB3A38…6345](https://basescan.org/address/0x38DcDB3A381677239BBc652aed9811F2f8496345)
340
- - **Protocol site**: https://gblin.digital
341
- - **Agent docs**: https://gblin.digital/agents
342
- - **Issues**: https://github.com/gblinproject/GBLIN-MCP/issues
343
-
344
- MIT © 2026 GBLIN Protocol
345
-
346
- ## Agent-to-Agent Skill Propagation (v0.1.9+)
347
-
348
- GBLIN MCP includes a unique tool — `share_skill_with_peer` — that lets one AI agent transfer treasury management capabilities to another agent.
349
-
350
- When agent A meets agent B in a multi-agent context (delegated task, x402 payment flow, shared workspace), agent A can call `share_skill_with_peer` to generate a portable JSON "skill seed". The seed contains:
351
-
352
- - Install instructions for the GBLIN MCP server
353
- - A working transaction example with reference TX on Basescan
354
- - Agent A's referral code (derived from its wallet)
355
- - The full natural-language explanation of GBLIN
356
-
357
- Agent B can install the server in seconds using the seed. From that moment, every GBLIN transaction agent B executes includes agent A's referral code in the calldata via ERC-8021 Builder Code (`bc_gbdo32j0`). A small portion of the protocol fee (0.05% of transaction value) is redirected to agent A's wallet — sourced from the existing protocol fee split, not added on top.
358
-
359
- This creates a viral propagation mechanism for treasury skills across the agent ecosystem, while economically rewarding agents who evangelize good treasury practices.
360
-
361
- No additional infrastructure is required. The mechanism is entirely on-chain via the existing Builder Code system.
362
-
363
- ## Keeper Bounty System (v0.1.11+)
364
-
365
- GBLIN is one of the few protocols that **pays AI agents** instead of charging them.
366
-
367
- When the treasury pool drifts from its target allocation, any agent can call `find_keeper_bounty` to check if a profitable rebalance is available. If one exists, the tool returns ready-to-send calldata. The agent broadcasts the transaction and receives **0.0001 ETH** from the protocol's stability fund — the swap uses the contract's own capital; the caller only pays gas (~$0.01 on Base).
368
-
369
- ```json
370
- // Example response when a bounty is available
371
- {
372
- "bountyAvailable": true,
373
- "direction": "WETH->asset",
374
- "estimatedRewardEth": "0.0001",
375
- "target": "0x38DcDB3A381677239BBc652aed9811F2f8496345",
376
- "calldata": "0x...",
377
- "value": "0",
378
- "note": "Send this calldata to earn the reward. The swap uses the contract's own funds."
379
- }
380
- ```
381
-
382
- For continuous income, poll `find_keeper_bounty` on an interval (e.g. every 5–15 minutes). A live keeper leaderboard is at [gblin.digital/keepers](https://gblin.digital/keepers).
383
-
384
- ## Discovery & Trust
385
-
386
- GBLIN exposes machine-readable discovery files for AI agents and protocols:
387
-
388
- - **x402 Manifest:** https://gblin.digital/.well-known/x402 — full list of paid endpoints with prices, chain ID, and currency
389
- - **LLM Discovery:** https://gblin.digital/api/x402/llms.txt — human-readable protocol summary (free, no paywall)
390
- - **Base MCP Plugin:** [PR #56 on base/skills](https://github.com/base/skills/pull/56) — official integration in review
391
-
392
- The MCP server in this repo provides the same operations as the x402 HTTP endpoints, but exposed via the Model Context Protocol for direct agent integration (Claude Desktop, Cursor, Windsurf, ElizaOS, etc.).
393
-
394
- ## GBLIN Sentinel — x402 Data Agent Example
395
-
396
- [GBLIN Sentinel](https://gblin-sentinel.vercel.app) is an open-source reference implementation of an autonomous AI agent that **sells** on-chain data via x402 micropayments. It demonstrates the full x402 producer pattern on Base.
397
-
398
- | Endpoint | Price | Data |
399
- |---|---|---|
400
- | `/api/data/base-risk-pulse` | $0.002 USDC | Chainlink risk signal: `normal`/`caution`/`risk-off` for ETH, BTC, USDC |
401
- | `/api/data/gblin-analytics` | $0.001 USDC | GBLIN treasury state, basket weights, keeper availability |
402
- | `/api/data/keeper-opps` | $0.001 USDC | Live keeper bounty check with MCP tool reference |
403
-
404
- Discovery:
405
- - x402 manifest: https://gblin-sentinel.vercel.app/.well-known/x402
406
- - LLM reference: https://gblin-sentinel.vercel.app/llms.txt
407
- - Source: https://github.com/gblinproject/gblin-sentinel
408
-
409
- Any agent using this MCP server can call `base-risk-pulse` before investing to gate treasury actions on current market risk signal.
410
-
411
- ## Related Repositories
412
-
413
- - **Smart Contract & Protocol:** https://github.com/gblinproject/GBLIN-Protocol
414
- - **Web App & x402 Endpoints:** https://github.com/gblinproject/GBLIN_WEBAPP
415
- - **ElizaOS Plugin:** https://github.com/gblinproject/GBLIN_PLUGIN
416
- - **GBLIN Sentinel (x402 data agent):** https://github.com/gblinproject/gblin-sentinel
1
+ # GBLIN MCP Server
2
+
3
+ > **Treasury standard for AI agents on Base mainnet.** A Model Context Protocol (MCP) server that lets autonomous agents hold capital in GBLIN — a diversified, Crash-Shield-protected on-chain index — and Just-In-Time swap to USDC the millisecond they need to pay an [x402](https://docs.cdp.coinbase.com/x402/welcome) invoice.
4
+
5
+ [![npm](https://img.shields.io/npm/v/@gblin-protocol/mcp-server.svg)](https://www.npmjs.com/package/@gblin-protocol/mcp-server)
6
+ [![CI](https://github.com/gblinproject/GBLIN-MCP/actions/workflows/ci.yml/badge.svg)](https://github.com/gblinproject/GBLIN-MCP/actions/workflows/ci.yml)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
8
+ [![Base Mainnet](https://img.shields.io/badge/network-Base%20mainnet-0052FF)](https://basescan.org/address/0x36C81d7E1966310F305eA637e761Cf77F90852f0)
9
+ [![Governance: 48h Timelock](https://img.shields.io/badge/governance-48h%20Timelock-1f6feb)](https://basescan.org/address/0x6aBeC8716fFeEcf7C3D6e68255b4797113E8e5Dd)
10
+ [![Base MCP Plugin](https://img.shields.io/badge/Base%20MCP-PR%20%2356-blue)](https://github.com/base/skills/pull/56)
11
+ [![x402 Manifest](https://img.shields.io/badge/x402-manifest-green)](https://gblin.digital/.well-known/x402)
12
+ [![MCP Registry](https://img.shields.io/badge/MCP%20Registry-Active-success)](https://registry.modelcontextprotocol.io)
13
+ [![Glama Score](https://img.shields.io/badge/Glama-100%25-brightgreen)](https://glama.ai/mcp/servers/gblinproject/GBLIN-MCP)
14
+
15
+ 📖 **Full documentation and Quick Start:** [gblin.digital/agents](https://gblin.digital/agents)
16
+
17
+ ---
18
+
19
+ ## ElizaOS Plugin
20
+
21
+ For agents running on **ElizaOS**, install the companion plugin:
22
+
23
+ ```bash
24
+ npm install plugin-gblin
25
+ # or: elizaos plugins add gblin
26
+ ```
27
+
28
+ It exposes three native Actions (`CHECK_GBLIN_TREASURY_HEALTH`, `INVEST_IDLE_USDC_GBLIN`, `RESCUE_USDC_FROM_GBLIN`) and a Provider that injects live NAV + Crash Shield status into the agent context on every loop.
29
+
30
+ → [Full Eliza plugin docs](https://github.com/gblinproject/GBLIN_PLUGIN)
31
+
32
+ ---
33
+
34
+ ## AI assistant discovery — `gblin-init`
35
+
36
+ Drop an `AGENTS.md` treasury policy into your repo so every modern AI coding
37
+ assistant (Claude Code, Cursor, Windsurf, GitHub Copilot, Codex) automatically
38
+ discovers GBLIN when it works on your codebase:
39
+
40
+ ```bash
41
+ npx -p @gblin-protocol/mcp-server gblin-init
42
+ ```
43
+
44
+ The command is **idempotent and safe**:
45
+
46
+ - If `AGENTS.md` does not exist → creates it from the canonical template at
47
+ [`gblin.digital/AGENTS.template.md`](https://gblin.digital/AGENTS.template.md).
48
+ - If `AGENTS.md` exists → appends a clearly delimited GBLIN block at the
49
+ bottom; your own content is never touched.
50
+ - Re-running is a no-op (detected via stable HTML markers).
51
+ - `--dry-run` prints what it would do without writing.
52
+ - `--force` refreshes the block to the latest version.
53
+
54
+ It also runs offline thanks to a bundled fallback template.
55
+
56
+ ### Postinstall hint
57
+
58
+ When the package is installed as a regular dependency (`npm i @gblin-protocol/mcp-server`),
59
+ a short tip is printed once suggesting the command above. **No files are
60
+ written** during postinstall — security-friendly and Socket-compliant. Set
61
+ `GBLIN_SKIP_HINT=1` to silence it.
62
+
63
+ ---
64
+
65
+ ## Trust & Governance
66
+
67
+ **GBLIN V6 is governed by a 48h Timelock Controller** — every admin operation (parameter change, oracle update, ownership transfer) is enforced on-chain to wait **172,800 seconds** before execution. Agents and integrators can verify this directly on BaseScan.
68
+
69
+ | Component | Address | Role |
70
+ |---|---|---|
71
+ | **GBLIN V6 token** | [`0x36C81d7E...52f0`](https://basescan.org/address/0x36C81d7E1966310F305eA637e761Cf77F90852f0) | Index contract (production) |
72
+ | **Timelock Controller** | [`0x6aBeC8716...8e5Dd`](https://basescan.org/address/0x6aBeC8716fFeEcf7C3D6e68255b4797113E8e5Dd) | 48h immutable delay, 14d grace period |
73
+ | **Ownership transfer tx** | [`0xb653f54f...edaaf`](https://basescan.org/tx/0xb653f54ffa9b1764b41932e6a411077e7e34550605303f15d90900de682edaaf) | Transferred at block 46160610 |
74
+
75
+ Properties enforced at the contract level:
76
+ - `MIN_DELAY` is **immutable** (override of `updateDelay` reverts permanently)
77
+ - `PROPOSER_ROLE` and `CANCELLER_ROLE` are **strictly separated** (constructor reverts on overlap)
78
+ - `EXECUTOR_ROLE` is open (`address(0)`) — anyone can execute a matured operation, anti-censorship
79
+ - The timelock is **self-administered**: every role/config change must itself go through the 48h delay
80
+
81
+ This is why the `get_governance_state` tool returns `owner_is_timelock: true` and a verifiable `min_delay_seconds: 172800`. AI agents can use these flags to gate trust-sensitive actions.
82
+
83
+ ---
84
+
85
+ ## Why this exists
86
+
87
+ AI agents today hold their working capital in **USDC**. USDC sits flat: zero yield, full inflation exposure.
88
+
89
+ **GBLIN** is an on-chain index on Base (45% cbBTC + 45% WETH + 10% USDC) with an algorithmic Crash Shield that auto-rebalances toward USDC when a basket asset drops >20%. Agents holding GBLIN earn basket appreciation while keeping the ability to settle x402 invoices instantly via native one-tx atomic swaps.
90
+
91
+ This server exposes that capability to any LLM agent through the standard MCP protocol.
92
+
93
+ ---
94
+
95
+ ## Quick start
96
+
97
+ ### Claude Desktop
98
+
99
+ Add to `claude_desktop_config.json` (on Windows: `%APPDATA%\Claude\claude_desktop_config.json`):
100
+
101
+ ```json
102
+ {
103
+ "mcpServers": {
104
+ "gblin": {
105
+ "command": "npx",
106
+ "args": ["-y", "@gblin-protocol/mcp-server"]
107
+ }
108
+ }
109
+ }
110
+ ```
111
+
112
+ Restart Claude Desktop. The 8 GBLIN tools appear in the tool picker.
113
+
114
+ ### Windsurf / Cursor
115
+
116
+ Add to `~/.codeium/windsurf/mcp_config.json` (Windsurf) or the equivalent Cursor MCP config:
117
+
118
+ ```json
119
+ {
120
+ "mcpServers": {
121
+ "gblin": {
122
+ "command": "npx",
123
+ "args": ["-y", "@gblin-protocol/mcp-server"],
124
+ "env": {
125
+ "GBLIN_RPC_URL": "https://base-rpc.publicnode.com"
126
+ }
127
+ }
128
+ }
129
+ }
130
+ ```
131
+
132
+ Refresh MCP servers from the IDE settings (or restart). The tools become callable inline.
133
+
134
+ ### Coinbase AgentKit (TypeScript)
135
+
136
+ ```ts
137
+ import { MCPClient } from "@modelcontextprotocol/sdk/client/index.js";
138
+ import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
139
+
140
+ const transport = new StdioClientTransport({
141
+ command: "npx",
142
+ args: ["-y", "@gblin-protocol/mcp-server"],
143
+ });
144
+ const client = new MCPClient({ name: "my-agent", version: "1.0.0" });
145
+ await client.connect(transport);
146
+
147
+ // List tools
148
+ const { tools } = await client.listTools();
149
+
150
+ // Quote a JIT payment of $0.50
151
+ const jit = await client.callTool({
152
+ name: "swap_gblin_to_usdc_jit",
153
+ arguments: { usdc_needed: "0.50", wallet_address: "0xYourAgent..." },
154
+ });
155
+ ```
156
+
157
+ ### ElizaOS / custom
158
+
159
+ Any framework that speaks MCP over stdio works:
160
+
161
+ ```bash
162
+ npx @gblin-protocol/mcp-server
163
+ ```
164
+
165
+ Also supports Cline, Continue.dev, and any agent that implements the MCP client spec.
166
+
167
+ ---
168
+
169
+ ## The 8 tools
170
+
171
+ ### Free tools (no payment required)
172
+
173
+ | Tool | Purpose |
174
+ |---|---|
175
+ | `get_treasury_state` | NAV in USD + basket composition + Crash Shield status |
176
+ | `quote_safe_swap` | Preview buy or sell with dynamic slippage buffer |
177
+ | `swap_gblin_to_usdc_jit` | **The x402 magic**: generate atomic GBLIN→USDC calldata (free) |
178
+ | `invest_usdc_to_gblin` | Convert USDC earnings into GBLIN treasury (MEV-safe) (free) |
179
+ | `get_governance_state` | Verify owner == 48h Timelock + pending asset proposals + min delay |
180
+ | `share_skill_with_peer` | Generate a portable skill seed to onboard a peer agent + embedded referral code |
181
+
182
+ ### Paid tools (x402 micropayments)
183
+
184
+ | Tool | Price | Purpose |
185
+ |---|---|---|
186
+ | `analyze_treasury_health` | $0.003 USDC | Balances + gas + runway + rebalance advice |
187
+ | `find_keeper_bounty` | $0.001 USDC | **GBLIN pays you**: check if a rebalance bounty is available (0.0001 ETH reward, no capital required) |
188
+
189
+ All tools return structured JSON. All values are quoted on-chain (NAV via `quoteSellGBLIN` × Chainlink ETH/USD, with 24h staleness guard). No mock data.
190
+
191
+ **Live verification:** the test suite (`npm test`) runs all eight tools against Base mainnet and confirms calldata generation, oracle freshness, slippage math, and governance state. See the [latest CI run](https://github.com/gblinproject/GBLIN-MCP/actions).
192
+
193
+ ---
194
+
195
+ ## x402 micropayments
196
+
197
+ The paid tools use the **x402 protocol** for instant micropayments. Here's how it works:
198
+
199
+ ### Payment flow
200
+
201
+ 1. **First call** (without payment): The tool returns a 402 manifest with payment details
202
+ 2. **Pay via facilitator**: Send a POST request to the facilitator with the payment details
203
+ 3. **Receive PaymentProof**: The facilitator returns a signed proof of payment
204
+ 4. **Second call** (with `_payment`): Include the base64-encoded PaymentProof in the `_payment` field
205
+
206
+ ### Example (analyze_treasury_health)
207
+
208
+ ```bash
209
+ # Step 1: Get payment manifest
210
+ npx @gblin-protocol/mcp-server analyze_treasury_health '{"wallet_address":"0x..."}'
211
+ # Returns: 402 error with payment details
212
+
213
+ # Step 2: Pay via facilitator
214
+ curl -X POST https://x402.org/facilitator/pay \
215
+ -H "Content-Type: application/json" \
216
+ -d '{
217
+ "amount": "0.003",
218
+ "currency": "USDC",
219
+ "recipient": "0x0ebA5d314F4f5Dcb7A094953Fa9311a45172dd1B",
220
+ "chainId": 8453
221
+ }'
222
+ # Returns: PaymentProof JSON
223
+
224
+ # Step 3: Call tool with payment
225
+ npx @gblin-protocol/mcp-server analyze_treasury_health \
226
+ '{"wallet_address":"0x...", "_payment":"<base64 PaymentProof>"}'
227
+ # Returns: Treasury analysis results
228
+ ```
229
+
230
+ ### Payment recipients
231
+
232
+ - **Default recipient**: `0x0ebA5d314F4f5Dcb7A094953Fa9311a45172dd1B`
233
+ - **Override**: Set `RECIPIENT_WALLET` environment variable to use your own wallet
234
+
235
+ ### Supported facilitators
236
+
237
+ - **Primary**: `https://x402.org/facilitator` (Coinbase-maintained reference implementation)
238
+ - **Override**: Set `X402_FACILITATOR_URL` environment variable
239
+
240
+ All payments are processed on **Base mainnet** using USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913).
241
+
242
+ ---
243
+
244
+ ## Architectural decisions
245
+
246
+ ### Native atomic swap
247
+
248
+ The GBLIN contract exposes `sellGBLINForToken(amount, targetToken, fee, minOut)`. This burns GBLIN, swaps the basket → WETH → target token in a **single transaction**. No batched UserOp, no ERC-4337 dependency, no risk of half-finished JIT.
249
+
250
+ The MCP returns calldata that works identically on:
251
+ - **EOA wallets** (Privy, MetaMask, raw private key)
252
+ - **ERC-4337 smart accounts** (Safe, Coinbase smart account)
253
+ - **EIP-7702 delegated EOAs** (Pectra+)
254
+
255
+ ### Dynamic slippage
256
+
257
+ Slippage tolerance scales with on-chain risk regime:
258
+
259
+ | Condition | Buffer |
260
+ |---|---|
261
+ | Normal market | **2.5%** |
262
+ | Crash Shield active (≥1 basket asset slashed) | **4.0%** |
263
+
264
+ The buffer is applied on top of the contract's internal `maxInternalSlippage` (200 bps), absorbing oracle drift and Uniswap pool variance.
265
+
266
+ ### MEV protection
267
+
268
+ `invest_usdc_to_gblin` **never** passes `minOut = 0`. Both `minWethOut` and `minGblinOut` are computed from on-chain quotes plus the dynamic slippage buffer. This eliminates the sandwich-attack surface that plagues naïve buy-with-token tools.
269
+
270
+ ### Cooldown enforcement
271
+
272
+ The contract enforces a 120-second sell lock after each buy. The JIT tool reads `lastDepositTime` and the **on-chain `block.timestamp`** (never `Date.now()`) and returns a clear `CooldownActive` error with the exact seconds remaining if the swap would revert.
273
+
274
+ ---
275
+
276
+ ## Configuration
277
+
278
+ The server reads `GBLIN_RPC_URL` from the environment. With no env var it falls back to `https://base-rpc.publicnode.com` (free, no key, generous limits).
279
+
280
+ For production load (>100 concurrent agents) use a dedicated provider:
281
+
282
+ ```bash
283
+ export GBLIN_RPC_URL="https://base-mainnet.g.alchemy.com/v2/YOUR_KEY"
284
+ npx @gblin-protocol/mcp-server
285
+ ```
286
+
287
+ See `.env.example` for the full list.
288
+
289
+ ---
290
+
291
+ ## Development
292
+
293
+ ```bash
294
+ git clone https://github.com/gblinproject/GBLIN-MCP
295
+ cd GBLIN-MCP
296
+ npm install
297
+ npm run build
298
+ npm test # live read-only smoke test against Base mainnet
299
+ npm start # run the compiled server
300
+ ```
301
+
302
+ Project layout:
303
+
304
+ ```
305
+ src/
306
+ config.ts # network constants, addresses, slippage params
307
+ abi.ts # GBLIN_V5 + Chainlink + ERC-20 ABIs
308
+ client.ts # viem PublicClient + on-chain timestamp helper
309
+ helpers.ts # NAV, basket state, slippage, cooldown, reverse quote
310
+ keeper.ts # keeper bounty finder (incentivizedRebalance math)
311
+ tools.ts # the 8 tool implementations + zod schemas
312
+ index.ts # MCP stdio server entry
313
+ scripts/
314
+ test.ts # live smoke test
315
+ ```
316
+
317
+ ---
318
+
319
+ ## Security notes
320
+
321
+ - The server is **read-only**. It never holds, signs, or broadcasts.
322
+ - All quotes are derived from on-chain calls + Chainlink oracles. Stale or negative oracle answers cause the tool to abort with `OracleStale` / `OracleDead`.
323
+ - The agent's wallet is the sole signer. Calldata returned by tools is plain ABI-encoded bytes — review before broadcasting in untrusted environments.
324
+ - No telemetry, no analytics, no remote dependencies beyond the configured RPC.
325
+
326
+ ---
327
+
328
+ ## Roadmap
329
+
330
+ - **v0.2**: Uniswap V3 QuoterV2 integration for sub-1% slippage precision
331
+ - **v0.3**: Permit2 support (skip the approve step for x402 reinvestment)
332
+ - **v0.4**: Streamable HTTP transport for hosted multi-agent setups
333
+ - **v1.0**: Audited contract integration + remote-only deployment guide
334
+
335
+ ---
336
+
337
+ ## Links
338
+
339
+ - **Contract**: [0x36C81d7E19…52f0](https://basescan.org/address/0x36C81d7E1966310F305eA637e761Cf77F90852f0)
340
+ - **Protocol site**: https://gblin.digital
341
+ - **Agent docs**: https://gblin.digital/agents
342
+ - **Issues**: https://github.com/gblinproject/GBLIN-MCP/issues
343
+
344
+ MIT © 2026 GBLIN Protocol
345
+
346
+ ## Agent-to-Agent Skill Propagation (v0.1.9+)
347
+
348
+ GBLIN MCP includes a unique tool — `share_skill_with_peer` — that lets one AI agent transfer treasury management capabilities to another agent.
349
+
350
+ When agent A meets agent B in a multi-agent context (delegated task, x402 payment flow, shared workspace), agent A can call `share_skill_with_peer` to generate a portable JSON "skill seed". The seed contains:
351
+
352
+ - Install instructions for the GBLIN MCP server
353
+ - A working transaction example with reference TX on Basescan
354
+ - Agent A's referral code (derived from its wallet)
355
+ - The full natural-language explanation of GBLIN
356
+
357
+ Agent B can install the server in seconds using the seed. From that moment, every GBLIN transaction agent B executes includes agent A's referral code in the calldata via ERC-8021 Builder Code (`bc_gbdo32j0`). A small portion of the protocol fee (0.05% of transaction value) is redirected to agent A's wallet — sourced from the existing protocol fee split, not added on top.
358
+
359
+ This creates a viral propagation mechanism for treasury skills across the agent ecosystem, while economically rewarding agents who evangelize good treasury practices.
360
+
361
+ No additional infrastructure is required. The mechanism is entirely on-chain via the existing Builder Code system.
362
+
363
+ ## Keeper Bounty System (v0.1.11+)
364
+
365
+ GBLIN is one of the few protocols that **pays AI agents** instead of charging them.
366
+
367
+ When the treasury pool drifts from its target allocation, any agent can call `find_keeper_bounty` to check if a profitable rebalance is available. If one exists, the tool returns ready-to-send calldata. The agent broadcasts the transaction and receives **0.0001 ETH** from the protocol's stability fund — the swap uses the contract's own capital; the caller only pays gas (~$0.01 on Base).
368
+
369
+ ```json
370
+ // Example response when a bounty is available
371
+ {
372
+ "bountyAvailable": true,
373
+ "direction": "WETH->asset",
374
+ "estimatedRewardEth": "0.0001",
375
+ "target": "0x36C81d7E1966310F305eA637e761Cf77F90852f0",
376
+ "calldata": "0x...",
377
+ "value": "0",
378
+ "note": "Send this calldata to earn the reward. The swap uses the contract's own funds."
379
+ }
380
+ ```
381
+
382
+ For continuous income, poll `find_keeper_bounty` on an interval (e.g. every 5–15 minutes). A live keeper leaderboard is at [gblin.digital/keepers](https://gblin.digital/keepers).
383
+
384
+ ## Discovery & Trust
385
+
386
+ GBLIN exposes machine-readable discovery files for AI agents and protocols:
387
+
388
+ - **x402 Manifest:** https://gblin.digital/.well-known/x402 — full list of paid endpoints with prices, chain ID, and currency
389
+ - **LLM Discovery:** https://gblin.digital/api/x402/llms.txt — human-readable protocol summary (free, no paywall)
390
+ - **Base MCP Plugin:** [PR #56 on base/skills](https://github.com/base/skills/pull/56) — official integration in review
391
+
392
+ The MCP server in this repo provides the same operations as the x402 HTTP endpoints, but exposed via the Model Context Protocol for direct agent integration (Claude Desktop, Cursor, Windsurf, ElizaOS, etc.).
393
+
394
+ ## GBLIN Sentinel — x402 Data Agent Example
395
+
396
+ [GBLIN Sentinel](https://gblin-sentinel.vercel.app) is an open-source reference implementation of an autonomous AI agent that **sells** on-chain data via x402 micropayments. It demonstrates the full x402 producer pattern on Base.
397
+
398
+ | Endpoint | Price | Data |
399
+ |---|---|---|
400
+ | `/api/data/base-risk-pulse` | $0.002 USDC | Chainlink risk signal: `normal`/`caution`/`risk-off` for ETH, BTC, USDC |
401
+ | `/api/data/gblin-analytics` | $0.001 USDC | GBLIN treasury state, basket weights, keeper availability |
402
+ | `/api/data/keeper-opps` | $0.001 USDC | Live keeper bounty check with MCP tool reference |
403
+
404
+ Discovery:
405
+ - x402 manifest: https://gblin-sentinel.vercel.app/.well-known/x402
406
+ - LLM reference: https://gblin-sentinel.vercel.app/llms.txt
407
+ - Source: https://github.com/gblinproject/gblin-sentinel
408
+
409
+ Any agent using this MCP server can call `base-risk-pulse` before investing to gate treasury actions on current market risk signal.
410
+
411
+ ## GBLIN Aureus — Autonomous Trading Agent (Track-Record Engine)
412
+
413
+ [Aureus](https://gblin.digital/aureus) is an autonomous catalyst & rotation agent that trades crypto, equities, indices and metals on Base — and **cannot lie about its results**: every thesis is keccak-hashed and committed on-chain *before* the agent acts, then revealed at close. Win or lose, the record is permanent and independently verifiable. No cherry-picked screenshots.
414
+
415
+ **Status: DRY-RUN validation.** Aureus runs the full loop on live market data with zero real funds. It graduates to real capital only if it passes a public gate: 30–50 closed trades, profit factor > 1.3, max drawdown < 10%, zero liquidations. The live dashboard publishes every metric in real time: [gblin.digital/aureus](https://gblin.digital/aureus).
416
+
417
+ Under the hood (the boring parts that keep capital alive):
418
+
419
+ - **Risk engine**: volatility-targeted sizing, stops always inside the liquidation distance, mark-to-market equity with automatic drawdown halt, 10-second stop watcher
420
+ - **Multi-venue funding carry**: delta-neutral funding harvest confirmed across Binance/Bybit/OKX medians, with persistence gating (regimes, not single prints)
421
+ - **Multi-timeframe alignment**: fast mean-reversion signals are gated by the daily trend (time-series momentum, the most documented edge in finance)
422
+ - **Microstructure eyes**: taker-flow (CVD) and order-book imbalance veto entries the tape opposes
423
+ - **Shadow book**: every rejected strategy keeps paper-trading on live data; capital allocation follows statistical proof, never opinion
424
+ - **News sentinel**: a multi-LLM consensus ensemble (6 independent providers) reads verified headlines into a risk signal — the math decides every entry, the LLMs only modulate
425
+
426
+ Aureus is also a planned GBLIN treasury user: idle capital parks in GBLIN via this MCP server and JIT-swaps to USDC when margin is needed — the agent eating the protocol's own cooking.
427
+
428
+ - **Live dashboard:** https://gblin.digital/aureus
429
+ - **Announcement:** [@GBLIN_Protocol on X](https://x.com/GBLIN_Protocol/status/2065196097207685240)
430
+
431
+ ## Related Repositories
432
+
433
+ - **Smart Contract & Protocol:** https://github.com/gblinproject/GBLIN-Protocol
434
+ - **Web App & x402 Endpoints:** https://github.com/gblinproject/GBLIN_WEBAPP
435
+ - **ElizaOS Plugin:** https://github.com/gblinproject/GBLIN_PLUGIN
436
+ - **GBLIN Sentinel (x402 data agent):** https://github.com/gblinproject/gblin-sentinel
437
+ - **GBLIN Aureus (autonomous trading agent):** https://gblin.digital/aureus — dry-run validation, on-chain commit-reveal track record
package/dist/abi.d.ts CHANGED
@@ -211,6 +211,21 @@ export declare const GBLIN_ABI: readonly [{
211
211
  readonly name: "minGblinOut";
212
212
  }];
213
213
  readonly outputs: readonly [];
214
+ }, {
215
+ readonly name: "buyGBLINInKind";
216
+ readonly type: "function";
217
+ readonly stateMutability: "nonpayable";
218
+ readonly inputs: readonly [{
219
+ readonly type: "address";
220
+ readonly name: "token";
221
+ }, {
222
+ readonly type: "uint256";
223
+ readonly name: "amountIn";
224
+ }, {
225
+ readonly type: "uint256";
226
+ readonly name: "minGblinOut";
227
+ }];
228
+ readonly outputs: readonly [];
214
229
  }];
215
230
  /**
216
231
  * GblinTimelockController — OpenZeppelin TimelockController v5 surface.
package/dist/abi.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BpB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBvB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGnC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKpB,CAAC"}
1
+ {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BpB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBvB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGnC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKpB,CAAC"}
package/dist/abi.js CHANGED
@@ -35,6 +35,8 @@ export const GBLIN_ABI = parseAbi([
35
35
  "function sellGBLINForEth(uint256 gblinAmount, uint256 minEthOut)",
36
36
  "function sellGBLINForToken(uint256 gblinAmount, address targetToken, uint24 wethToTargetFee, uint256 minTokenOut)",
37
37
  "function buyGBLINWithToken(bytes path, uint256 amountIn, uint256 minWethOut, uint256 minGblinOut)",
38
+ // V6: direct single-asset in-kind buy (deposit USDC directly, no swap)
39
+ "function buyGBLINInKind(address token, uint256 amountIn, uint256 minGblinOut)",
38
40
  ]);
39
41
  /**
40
42
  * GblinTimelockController — OpenZeppelin TimelockController v5 surface.
package/dist/abi.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"abi.js","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEhC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;IAChC,0BAA0B;IAC1B,gHAAgH;IAChH,4EAA4E;IAE5E,kDAAkD;IAClD,kMAAkM;IAElM,iBAAiB;IACjB,4DAA4D;IAC5D,+CAA+C;IAC/C,0CAA0C;IAE1C,gBAAgB;IAChB,+DAA+D;IAE/D,6CAA6C;IAC7C,yCAAyC;IACzC,iDAAiD;IACjD,gJAAgJ;IAEhJ,4EAA4E;IAC5E,gDAAgD;IAChD,kEAAkE;IAClE,mHAAmH;IACnH,mGAAmG;CACpG,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;IACnC,+CAA+C;IAC/C,gDAAgD;IAChD,iDAAiD;IACjD,kDAAkD;IAClD,iDAAiD;IACjD,sDAAsD;IACtD,qEAAqE;IACrE,kEAAkE;IAClE,sDAAsD;IACtD,6DAA6D;IAC7D,2DAA2D;IAC3D,0DAA0D;IAC1D,0DAA0D;IAC1D,+IAA+I;IAC/I,qCAAqC;IACrC,0GAA0G;CAC3G,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAC/C,uIAAuI;IACvI,0CAA0C;CAC3C,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;IAChC,4DAA4D;IAC5D,0CAA0C;IAC1C,kEAAkE;IAClE,2EAA2E;CAC5E,CAAC,CAAC"}
1
+ {"version":3,"file":"abi.js","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEhC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;IAChC,0BAA0B;IAC1B,gHAAgH;IAChH,4EAA4E;IAE5E,kDAAkD;IAClD,kMAAkM;IAElM,iBAAiB;IACjB,4DAA4D;IAC5D,+CAA+C;IAC/C,0CAA0C;IAE1C,gBAAgB;IAChB,+DAA+D;IAE/D,6CAA6C;IAC7C,yCAAyC;IACzC,iDAAiD;IACjD,gJAAgJ;IAEhJ,4EAA4E;IAC5E,gDAAgD;IAChD,kEAAkE;IAClE,mHAAmH;IACnH,mGAAmG;IACnG,uEAAuE;IACvE,+EAA+E;CAChF,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;IACnC,+CAA+C;IAC/C,gDAAgD;IAChD,iDAAiD;IACjD,kDAAkD;IAClD,iDAAiD;IACjD,sDAAsD;IACtD,qEAAqE;IACrE,kEAAkE;IAClE,sDAAsD;IACtD,6DAA6D;IAC7D,2DAA2D;IAC3D,0DAA0D;IAC1D,0DAA0D;IAC1D,+IAA+I;IAC/I,qCAAqC;IACrC,0GAA0G;CAC3G,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAC/C,uIAAuI;IACvI,0CAA0C;CAC3C,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;IAChC,4DAA4D;IAC5D,0CAA0C;IAC1C,kEAAkE;IAClE,2EAA2E;CAC5E,CAAC,CAAC"}
package/dist/config.js CHANGED
@@ -29,7 +29,7 @@ if (_rawRpc && !isValidHttpUrl(_rawRpc)) {
29
29
  }
30
30
  export const RPC_URL = _rawRpc && isValidHttpUrl(_rawRpc) ? _rawRpc : DEFAULT_RPC_URL;
31
31
  // ─── Core Contracts (Base Mainnet, verified) ────────────────────────────────
32
- export const GBLIN_V5 = "0x38DcDB3A381677239BBc652aed9811F2f8496345";
32
+ export const GBLIN_V5 = "0x36C81d7E1966310F305eA637e761Cf77F90852f0";
33
33
  export const USDC = "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
34
34
  export const WETH = "0x4200000000000000000000000000000000000006";
35
35
  // GblinTimelockController — owns GBLIN_V5 since block 46160610 (May 2026).
package/dist/keeper.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { createPublicClient, http, encodeFunctionData, formatEther } from 'viem';
2
2
  import { base } from 'viem/chains';
3
- const GBLIN = '0x38DcDB3A381677239BBc652aed9811F2f8496345';
3
+ const GBLIN = '0x36C81d7E1966310F305eA637e761Cf77F90852f0';
4
4
  const WETH = '0x4200000000000000000000000000000000000006';
5
5
  const BPS = 10000n;
6
6
  const REWARD = 100000000000000n; // 0.0001 ether
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA0GH,eAAO,MAAM,6BAA6B;;;;;;;;CASzC,CAAC;AAEF,wBAAsB,sBAAsB;;;;;GAgC3C;AAaD,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;CAgBtC,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,OAAO;;;;;GAoEtD;AAeD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;CAgB/B,CAAC;AAEF,wBAAsB,aAAa,CAAC,IAAI,EAAE,OAAO;;;;;GA6DhD;AAWD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;CAmB7B,CAAC;AAEF,wBAAsB,YAAY,CAAC,IAAI,EAAE,OAAO;;;;;GAsI/C;AAeD,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;CAoBvC,CAAC;AAEF,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,OAAO;;;;;GAsGxD;AAgBD,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;CAe3C,CAAC;AAEF,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,OAAO;;;;;GAqP3D;AAyMD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAS5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAe7E,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA0GH,eAAO,MAAM,6BAA6B;;;;;;;;CASzC,CAAC;AAEF,wBAAsB,sBAAsB;;;;;GAgC3C;AAaD,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;CAgBtC,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,OAAO;;;;;GAoEtD;AAeD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;CAgB/B,CAAC;AAEF,wBAAsB,aAAa,CAAC,IAAI,EAAE,OAAO;;;;;GA6DhD;AAWD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;CAmB7B,CAAC;AAEF,wBAAsB,YAAY,CAAC,IAAI,EAAE,OAAO;;;;;GA0F/C;AAeD,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;CAoBvC,CAAC;AAEF,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,OAAO;;;;;GAsGxD;AAgBD,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;CAe3C,CAAC;AAEF,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,OAAO;;;;;GAqP3D;AAyMD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAS5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAe7E,CAAC"}
package/dist/tools.js CHANGED
@@ -12,13 +12,13 @@
12
12
  * 7. share_skill_with_peer → portable JSON skill seed + referral code
13
13
  * 8. find_keeper_bounty → check rebalance bounty availability + calldata
14
14
  */
15
- import { encodeFunctionData, encodePacked, formatUnits, getAddress, isAddress, parseUnits, } from "viem";
15
+ import { encodeFunctionData, formatUnits, getAddress, isAddress, parseUnits, } from "viem";
16
16
  import { parseAbi } from "viem";
17
17
  import { z } from "zod";
18
18
  import { ERC20_ABI, GBLIN_ABI, TIMELOCK_ABI } from "./abi.js";
19
19
  import { client } from "./client.js";
20
20
  import { requirePayment } from "./paywall.js";
21
- import { EXPECTED_MIN_DELAY_SECONDS, GBLIN_GUARDIAN, GBLIN_TIMELOCK, GBLIN_V5, MIN_DEPOSIT_WEI, USDC, WETH, WETH_USDC_POOL_FEE, } from "./config.js";
21
+ import { EXPECTED_MIN_DELAY_SECONDS, GBLIN_GUARDIAN, GBLIN_TIMELOCK, GBLIN_V5, MIN_DEPOSIT_WEI, USDC, WETH_USDC_POOL_FEE, } from "./config.js";
22
22
  import { applySlippageBuffer, checkCooldown, getBasketState, getDynamicSlippage, getEthPriceUsd, getNavUsd, getWalletBalances, quoteGblinForUsdc, } from "./helpers.js";
23
23
  import { PACKAGE_VERSION } from "./config.js";
24
24
  import { findKeeperBounty } from "./keeper.js";
@@ -291,7 +291,7 @@ const InvestSchema = z.object({
291
291
  });
292
292
  export const INVEST_DEFINITION = {
293
293
  name: "invest_usdc_to_gblin",
294
- description: "Generate calldata to convert USDC earnings into GBLIN (treasury accumulation). Returns four sequential steps: (1) approve USDC to SwapRouter02, (2) swap USDC→WETH to wallet, (3) approve WETH to GBLIN contract, (4) buy GBLIN with WETH. Bypasses the broken exactInput path in the GBLIN contract. Free to call — revenue is captured on-chain via the 0.05% founder fee on every buy.",
294
+ description: "Generate calldata to convert USDC into GBLIN directly (treasury accumulation). V6 supports single-asset in-kind buys, so it returns just two steps: (1) approve USDC to the GBLIN contract, (2) buyGBLINInKind(USDC, amount, minGblinOut). No Uniswap swap, no WETH leg. Free to call - revenue is captured on-chain via the 0.05% founder fee on every buy.",
295
295
  inputSchema: {
296
296
  type: "object",
297
297
  properties: {
@@ -301,7 +301,7 @@ export const INVEST_DEFINITION = {
301
301
  },
302
302
  wallet_address: {
303
303
  type: "string",
304
- description: "User's wallet address to receive WETH and sign transactions.",
304
+ description: "User's wallet address that holds the USDC and signs the transactions.",
305
305
  },
306
306
  },
307
307
  required: ["usdc_amount", "wallet_address"],
@@ -334,79 +334,41 @@ export async function handleInvest(args) {
334
334
  if (minWethOut < MIN_DEPOSIT_WEI) {
335
335
  return toolError(`DepositTooSmall: ${parsed.usdc_amount} USDC converts to ~${formatUnits(wethExpected, 18)} WETH, below contract minimum of ${formatUnits(MIN_DEPOSIT_WEI, 18)} ETH.`, "Aggregate more USDC before investing.");
336
336
  }
337
- // Step 2: quote GBLIN out from the contract using the min WETH amount.
337
+ // Quote GBLIN out: value the USDC in ETH terms (USDC ~ $1) via the contract's
338
+ // own buy quote, then buffer with dynamic slippage so the call won't revert.
338
339
  const [gblinExpected] = await client.readContract({
339
340
  address: GBLIN_V5,
340
341
  abi: GBLIN_ABI,
341
342
  functionName: "quoteBuyGBLIN",
342
- args: [minWethOut],
343
+ args: [wethExpected],
343
344
  });
344
345
  const minGblinOut = applySlippageBuffer(gblinExpected, slippage.bps);
345
- // Step 1: Approve USDC to SwapRouter02 for the swap
346
- const approveRouterCalldata = encodeFunctionData({
346
+ // V6 buys USDC DIRECTLY (in-kind) - no Uniswap swap needed. Two steps only:
347
+ // 1) approve USDC to the GBLIN contract
348
+ // 2) buyGBLINInKind(USDC, amountIn, minGblinOut)
349
+ const approveUsdcCalldata = encodeFunctionData({
347
350
  abi: ERC20_ABI,
348
351
  functionName: "approve",
349
- args: [SWAP_ROUTER_02, usdcUnits],
352
+ args: [GBLIN_V5, usdcUnits],
350
353
  });
351
- // Step 2: Swap USDC→WETH via exactInputSingle (NO deadline — works with SwapRouter02)
352
- // WETH goes to user's wallet (not directly to GBLIN) — required for subsequent approve
353
- const swapCalldata = encodeFunctionData({
354
- abi: SWAP_ROUTER_ABI,
355
- functionName: "exactInputSingle",
356
- args: [
357
- {
358
- tokenIn: USDC,
359
- tokenOut: WETH,
360
- fee: WETH_USDC_POOL_FEE,
361
- recipient: parsed.wallet_address, // WETH goes to user wallet
362
- amountIn: usdcUnits,
363
- amountOutMinimum: minWethOut,
364
- sqrtPriceLimitX96: 0n,
365
- },
366
- ],
367
- });
368
- // Step 3: Approve WETH to GBLIN contract (required for buyGBLINWithToken transferFrom)
369
- const approveWethCalldata = encodeFunctionData({
370
- abi: ERC20_ABI,
371
- functionName: "approve",
372
- args: [GBLIN_V5, minWethOut],
373
- });
374
- // Step 4: Buy GBLIN with WETH — when tokenIn is WETH, contract skips Uniswap
375
- // Path encoding: WETH -> (fee=0) -> WETH (dummy, contract ignores it when tokenIn==WETH)
376
- const gblinPath = encodePacked(["address", "uint24", "address"], [WETH, 0, WETH] // fee=0, path dummy — contract uses amountIn directly as WETH
377
- );
378
354
  const buyCalldata = encodeFunctionData({
379
355
  abi: GBLIN_ABI,
380
- functionName: "buyGBLINWithToken",
381
- args: [gblinPath, minWethOut, 0n, minGblinOut], // amountIn = WETH received, minWethOut=0
356
+ functionName: "buyGBLINInKind",
357
+ args: [USDC, usdcUnits, minGblinOut],
382
358
  });
383
359
  return toolResult({
384
360
  action: "sequential_txs",
385
361
  steps: [
386
362
  {
387
363
  step: 1,
388
- description: "Approve USDC to SwapRouter02 for WETH swap",
364
+ description: "Approve USDC to the GBLIN V6 contract",
389
365
  target: USDC,
390
- calldata: appendBuilderCode(approveRouterCalldata),
366
+ calldata: appendBuilderCode(approveUsdcCalldata),
391
367
  value: "0",
392
368
  },
393
369
  {
394
370
  step: 2,
395
- description: "Swap USDC→WETH via SwapRouter02 exactInputSingle (WETH to wallet)",
396
- target: SWAP_ROUTER_02,
397
- calldata: swapCalldata,
398
- value: "0",
399
- },
400
- {
401
- step: 3,
402
- description: "Approve WETH to GBLIN contract",
403
- target: WETH,
404
- calldata: appendBuilderCode(approveWethCalldata),
405
- value: "0",
406
- },
407
- {
408
- step: 4,
409
- description: "Buy GBLIN with WETH (WETH path skips broken Uniswap call)",
371
+ description: "Buy GBLIN directly with USDC (V6 in-kind mint, no swap)",
410
372
  target: GBLIN_V5,
411
373
  calldata: buyCalldata,
412
374
  value: "0",
@@ -414,14 +376,13 @@ export async function handleInvest(args) {
414
376
  ],
415
377
  expected: {
416
378
  usdc_in: parsed.usdc_amount,
417
- weth_min: formatUnits(minWethOut, 18),
418
379
  gblin_min: formatUnits(minGblinOut, 18),
419
380
  slippage_buffer_pct: slippage.pct,
420
381
  },
421
382
  security: {
422
383
  mev_protected: true,
423
384
  min_outs_set: true,
424
- note: "minWethOut and minGblinOut are both > 0, computed from on-chain quotes + dynamic slippage. Reverts on bad execution.",
385
+ note: "minGblinOut > 0, computed from the on-chain quote + dynamic slippage. Reverts on bad execution. No Uniswap swap - USDC is deposited directly as in-kind collateral.",
425
386
  },
426
387
  });
427
388
  }
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/llms.txt CHANGED
@@ -50,6 +50,6 @@ Claude Desktop config:
50
50
 
51
51
  - Source: https://github.com/gblinproject/GBLIN-MCP
52
52
  - Docs: https://gblin.digital/agents
53
- - Contract: https://basescan.org/address/0x38DcDB3A381677239BBc652aed9811F2f8496345
53
+ - Contract: https://basescan.org/address/0x36C81d7E1966310F305eA637e761Cf77F90852f0
54
54
  - Network: Base mainnet (chain id 8453)
55
55
  - License: MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gblin-protocol/mcp-server",
3
- "version": "0.1.16",
3
+ "version": "0.1.17",
4
4
  "mcpName": "io.github.gblinproject/gblin-mcp-server",
5
5
  "description": "Model Context Protocol server for GBLIN — Treasury Standard for AI Agents on Base mainnet. Provides on-chain quotes, JIT swaps, and treasury analytics for x402-paying agents.",
6
6
  "type": "module",