@gblin-protocol/mcp-server 0.1.20 → 0.2.0

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/dist/tools.js CHANGED
@@ -1,24 +1,26 @@
1
1
  /**
2
2
  * GBLIN MCP — Tool Implementations
3
3
  *
4
- * Eight focused tools. Each returns structured JSON the LLM can parse:
4
+ * Ten focused tools. Each returns structured JSON the LLM can parse:
5
5
  *
6
- * 1. get_treasury_state → NAV, basket, Crash Shield (snapshot)
7
- * 2. quote_safe_swap → preview a buy/sell with safe minOut
8
- * 3. swap_gblin_to_usdc_jit → calldata for Just-In-Time x402 payment
9
- * 4. invest_usdc_to_gblin → calldata to convert USDC earnings → GBLIN
10
- * 5. analyze_treasury_health → balances + gas check + runway estimate
11
- * 6. get_governance_state → verify 48h timelock ownership + pending ops
12
- * 7. share_skill_with_peer → portable JSON skill seed + referral code
13
- * 8. find_keeper_bounty → check rebalance bounty availability + calldata
6
+ * 1. get_treasury_state → NAV, basket, Crash Shield (snapshot)
7
+ * 2. quote_safe_swap → preview a buy/sell with safe minOut
8
+ * 3. swap_gblin_to_usdc_jit → calldata for Just-In-Time x402 payment
9
+ * 4. invest_usdc_to_gblin → calldata to convert USDC earnings → GBLIN
10
+ * 5. analyze_treasury_health → balances + gas check + runway estimate (PAID)
11
+ * 6. get_governance_state → verify 48h timelock ownership + pending ops
12
+ * 7. share_skill_with_peer → portable JSON skill seed + referral code
13
+ * 8. find_keeper_bounty → check rebalance bounty availability + calldata (PAID)
14
+ * 9. get_market_risk_regime → on-chain BTC/ETH risk regime signal (PAID)
15
+ * 10. verify_risk_attestation → verify a perishable Risk Attestation (FREE)
14
16
  */
15
- import { encodeFunctionData, formatUnits, getAddress, isAddress, parseUnits, } from "viem";
17
+ import { encodeFunctionData, formatUnits, getAddress, hashTypedData, isAddress, parseUnits, recoverTypedDataAddress, } from "viem";
16
18
  import { parseAbi } from "viem";
17
19
  import { z } from "zod";
18
20
  import { ERC20_ABI, GBLIN_ABI, TIMELOCK_ABI } from "./abi.js";
19
- import { client } from "./client.js";
21
+ import { client, getOnChainTimestamp } from "./client.js";
20
22
  import { requirePayment } from "./paywall.js";
21
- import { EXPECTED_MIN_DELAY_SECONDS, GBLIN_GUARDIAN, GBLIN_TIMELOCK, GBLIN_V6, MIN_DEPOSIT_WEI, USDC, WETH, WETH_USDC_POOL_FEE, } from "./config.js";
23
+ import { EXPECTED_MIN_DELAY_SECONDS, GBLIN_ATTESTOR, GBLIN_GUARDIAN, GBLIN_TIMELOCK, GBLIN_V6, MIN_DEPOSIT_WEI, USDC, WETH, WETH_USDC_POOL_FEE, } from "./config.js";
22
24
  import { applySlippageBuffer, checkCooldown, getBasketState, getDynamicSlippage, getEthPriceUsd, getNavUsd, getWalletBalances, quoteGblinForUsdc, } from "./helpers.js";
23
25
  import { PACKAGE_VERSION } from "./config.js";
24
26
  import { findKeeperBounty } from "./keeper.js";
@@ -883,6 +885,8 @@ async function handleShareSkillWithPeer(args) {
883
885
  "get_governance_state",
884
886
  "share_skill_with_peer",
885
887
  "find_keeper_bounty",
888
+ "get_market_risk_regime",
889
+ "verify_risk_attestation",
886
890
  ],
887
891
  chain: "Base mainnet (8453)",
888
892
  contract: GBLIN_V6,
@@ -890,7 +894,7 @@ async function handleShareSkillWithPeer(args) {
890
894
  },
891
895
  example_transaction: {
892
896
  use_case: peer_context,
893
- action: "Park idle USDC into treasury-backed GBLIN, then JIT-swap back to USDC when needed for x402 payments.",
897
+ action: "Park SURPLUS USDC into treasury-backed GBLIN (managed crypto exposure, not a USDC substitute), then JIT-swap back to USDC when needed for x402 payments.",
894
898
  amount_usdc: example_amount_usdc,
895
899
  steps: [
896
900
  "1. Call quote_safe_swap with action=buy and the desired USDC amount",
@@ -905,7 +909,7 @@ async function handleShareSkillWithPeer(args) {
905
909
  "GBLIN is a treasury-backed index token on Base mainnet, collateralized by WETH, cbBTC, and USDC.",
906
910
  "Every GBLIN is backed by real on-chain assets — NAV is computed from Chainlink oracle prices, not from market speculation.",
907
911
  "Holding GBLIN as treasury preserves agent capital while keeping liquidity for x402 micropayments via Just-In-Time redemption.",
908
- "The protocol has zero pre-mint (fair launch), 48-hour governance timelock, and an algorithmic Crash Shield that auto-rebalances toward USDC when basket assets drop >20%.",
912
+ "The protocol has zero pre-mint (fair launch), 48-hour governance timelock, and an algorithmic Crash Shield that adaptively reduces risk exposure as basket assets draw down (V6 adaptive threshold, from ~15%).",
909
913
  "Installing this MCP server gives your AI agent 8 production-tested tools to manage treasury, quote swaps, redeem just-in-time, propagate the skill to other agents, and earn passive ETH income as a keeper.",
910
914
  ].join(" "),
911
915
  referral_disclosure: {
@@ -932,7 +936,7 @@ async function handleShareSkillWithPeer(args) {
932
936
  " 3. Set the GBLIN_REFERRER environment variable to: " + referralCode,
933
937
  " 4. Restart the MCP client to load the new server",
934
938
  "",
935
- "Once installed, the peer agent has the same 8 tools available. Every transaction it executes will include your referral code in the Builder Code ERC-8021 attribution, redirecting a small share of the protocol fee to your wallet (" +
939
+ "Once installed, the peer agent has the same 10 tools available. Every transaction it executes will include your referral code in the Builder Code ERC-8021 attribution, redirecting a small share of the protocol fee to your wallet (" +
936
940
  caller_wallet +
937
941
  ").",
938
942
  "",
@@ -970,6 +974,269 @@ async function handleFindKeeperBounty() {
970
974
  }
971
975
  }
972
976
  // ───────────────────────────────────────────────────────────────────────────
977
+ // TOOL 9 — get_market_risk_regime (GENERIC PAID RISK SIGNAL — the agent hook)
978
+ // ───────────────────────────────────────────────────────────────────────────
979
+ export const MARKET_RISK_DEFINITION = {
980
+ name: "get_market_risk_regime",
981
+ description: "On-chain market-risk signal for autonomous agents. Returns the current BTC/ETH risk regime (calm | elevated | crash), a severity score, and a risk posture (risk_on | reduce | risk_off), derived from GBLIN's verifiable on-chain Crash Shield (drawdown-driven weight cuts vs Chainlink-oracle peaks on Base). Useful to ANY trading or treasury agent deciding risk-on/risk-off — independent of holding GBLIN. The signal changes with the market, so poll it each decision cycle. Costs $0.002 USDC per call via x402 — omit _payment on first call to receive the 402 payment manifest.",
982
+ inputSchema: {
983
+ type: "object",
984
+ properties: {
985
+ _payment: {
986
+ type: "string",
987
+ description: "Base64-encoded x402 PaymentProof JSON. Omit on first call to receive the 402 payment manifest.",
988
+ },
989
+ },
990
+ additionalProperties: false,
991
+ },
992
+ };
993
+ async function handleMarketRiskRegime() {
994
+ try {
995
+ const basket = await getBasketState();
996
+ const riskAssets = basket.entries.filter((e) => !e.isStable);
997
+ const assets = riskAssets.map((e) => {
998
+ const cut = e.baseWeightBps > 0
999
+ ? Math.max(0, ((e.baseWeightBps - e.dynamicWeightBps) / e.baseWeightBps) * 100)
1000
+ : 0;
1001
+ return {
1002
+ token: e.token,
1003
+ shielded: e.isSlashed,
1004
+ base_weight_pct: e.baseWeightBps / 100,
1005
+ dynamic_weight_pct: e.dynamicWeightBps / 100,
1006
+ weight_cut_pct: Number(cut.toFixed(2)),
1007
+ };
1008
+ });
1009
+ const maxCut = assets.reduce((m, a) => Math.max(m, a.weight_cut_pct), 0);
1010
+ const usdcEntry = basket.entries.find((e) => e.isStable);
1011
+ const defensiveCashPct = usdcEntry ? usdcEntry.dynamicWeightBps / 100 : null;
1012
+ let regime;
1013
+ let posture;
1014
+ if (maxCut <= 0) {
1015
+ regime = "calm";
1016
+ posture = "risk_on";
1017
+ }
1018
+ else if (maxCut < 40) {
1019
+ regime = "elevated";
1020
+ posture = "reduce";
1021
+ }
1022
+ else {
1023
+ regime = "crash";
1024
+ posture = "risk_off";
1025
+ }
1026
+ return toolResult({
1027
+ regime,
1028
+ risk_posture: posture,
1029
+ severity_pct: Number(maxCut.toFixed(2)),
1030
+ shield_active: basket.crashShieldActive,
1031
+ defensive_cash_pct: defensiveCashPct,
1032
+ assets,
1033
+ source: "GBLIN on-chain Crash Shield (Base mainnet, Chainlink-oracle drawdown)",
1034
+ verify: "https://basescan.org/address/0x36C81d7E1966310F305eA637e761Cf77F90852f0",
1035
+ meta: { contract: GBLIN_V6, chain: "base", chain_id: 8453 },
1036
+ });
1037
+ }
1038
+ catch (err) {
1039
+ return toolError(err.message, "Check RPC connectivity and oracle freshness.");
1040
+ }
1041
+ }
1042
+ // ───────────────────────────────────────────────────────────────────────────
1043
+ // TOOL 10 — verify_risk_attestation (FREE public-good verifier — adoption flywheel)
1044
+ //
1045
+ // The counterpart to the paid /api/x402/attestation endpoint. Verifying a peer's
1046
+ // attestation is FREE on purpose: every agent that verifies one is exposed to
1047
+ // GBLIN and learns it can mint its own → drives paid calls to the attestation
1048
+ // endpoint. Keyless integrity + EIP-712 recover + live-drift, no RPC secrets.
1049
+ // ───────────────────────────────────────────────────────────────────────────
1050
+ // EIP-712 schema — MUST stay byte-for-byte identical to the webapp signer
1051
+ // (GBLIN_WEBAPP/src/app/api/x402/attestation/route.ts). Do not reorder fields.
1052
+ const ATTESTATION_EIP712_DOMAIN = {
1053
+ name: "GBLIN Risk Attestation",
1054
+ version: "1",
1055
+ chainId: 8453,
1056
+ verifyingContract: GBLIN_V6,
1057
+ };
1058
+ const ATTESTATION_EIP712_TYPES = {
1059
+ RiskAttestation: [
1060
+ { name: "regime", type: "uint8" },
1061
+ { name: "severityBps", type: "uint16" },
1062
+ { name: "defensiveCashBps", type: "uint16" },
1063
+ { name: "blockNumber", type: "uint64" },
1064
+ { name: "issuedAt", type: "uint64" },
1065
+ { name: "expiresAt", type: "uint64" },
1066
+ { name: "basketHash", type: "bytes32" },
1067
+ ],
1068
+ };
1069
+ const REGIME_LABELS = ["calm", "elevated", "crash"];
1070
+ const ZERO_ADDR = "0x0000000000000000000000000000000000000000";
1071
+ export const VERIFY_ATTESTATION_DEFINITION = {
1072
+ name: "verify_risk_attestation",
1073
+ description: "Verify a GBLIN Risk Attestation — the object returned by GBLIN's /api/x402/attestation, or a proof-of-diligence a peer agent attached to its action. FREE, no payment. Runs four checks: (1) INTEGRITY — recomputes the EIP-712 attestation_id and detects tampering; (2) AUTHENTICITY — if a signature is present, recovers the signer and checks it is GBLIN's published attestor; (3) FRESHNESS — whether it expired (10-minute TTL), using on-chain time; (4) LIVE DRIFT — compares the attested regime to the CURRENT on-chain regime and flags if it changed. Use before you trust any counterparty/peer that claims it 'checked market risk via GBLIN'.",
1074
+ inputSchema: {
1075
+ type: "object",
1076
+ properties: {
1077
+ attestation: {
1078
+ type: "object",
1079
+ description: "The full attestation object from /api/x402/attestation (must include `eip712`; `attestation_id`, `signature`, `attestor` are used when present). A JSON string of that object is also accepted.",
1080
+ },
1081
+ expected_attestor: {
1082
+ type: "string",
1083
+ description: "Optional 0x address to check the signature against. Defaults to the GBLIN attestor address baked into this MCP build (GBLIN_ATTESTOR_ADDRESS env).",
1084
+ pattern: "^0x[a-fA-F0-9]{40}$",
1085
+ },
1086
+ },
1087
+ required: ["attestation"],
1088
+ additionalProperties: false,
1089
+ },
1090
+ };
1091
+ async function handleVerifyRiskAttestation(args) {
1092
+ const a = (args ?? {});
1093
+ // Accept either a parsed object or a JSON string.
1094
+ let att = a.attestation;
1095
+ if (typeof att === "string") {
1096
+ try {
1097
+ att = JSON.parse(att);
1098
+ }
1099
+ catch {
1100
+ return toolError("`attestation` string is not valid JSON.");
1101
+ }
1102
+ }
1103
+ if (!att || typeof att !== "object") {
1104
+ return toolError("Missing `attestation` object.", "Pass the whole object returned by /api/x402/attestation.");
1105
+ }
1106
+ const eip712 = att.eip712;
1107
+ if (!eip712 || !eip712.message || !eip712.domain || !eip712.types) {
1108
+ return toolError("Attestation is missing its `eip712` payload (domain/types/message).", "Pass the whole object returned by /api/x402/attestation, including the `eip712` field.");
1109
+ }
1110
+ // Rebuild the typed message (uint64 fields as bigint for viem).
1111
+ const m = eip712.message;
1112
+ let message;
1113
+ try {
1114
+ message = {
1115
+ regime: Number(m.regime),
1116
+ severityBps: Number(m.severityBps),
1117
+ defensiveCashBps: Number(m.defensiveCashBps),
1118
+ blockNumber: BigInt(m.blockNumber),
1119
+ issuedAt: BigInt(m.issuedAt),
1120
+ expiresAt: BigInt(m.expiresAt),
1121
+ basketHash: String(m.basketHash),
1122
+ };
1123
+ }
1124
+ catch {
1125
+ return toolError("Attestation `eip712.message` fields are malformed.");
1126
+ }
1127
+ // 1. INTEGRITY — recompute the id using the CANONICAL schema from this build
1128
+ // (never trust the schema embedded in the payload for hashing).
1129
+ const recomputedId = hashTypedData({
1130
+ domain: ATTESTATION_EIP712_DOMAIN,
1131
+ types: ATTESTATION_EIP712_TYPES,
1132
+ primaryType: "RiskAttestation",
1133
+ message,
1134
+ });
1135
+ const claimedId = typeof att.attestation_id === "string" ? att.attestation_id : "";
1136
+ const integrityOk = claimedId ? recomputedId.toLowerCase() === claimedId.toLowerCase() : null;
1137
+ // The payload's OWN domain must match the canonical GBLIN domain, else it is
1138
+ // a different (untrusted) schema even if internally consistent.
1139
+ const schemaMatches = eip712.domain?.name === ATTESTATION_EIP712_DOMAIN.name &&
1140
+ String(eip712.domain?.version) === ATTESTATION_EIP712_DOMAIN.version &&
1141
+ Number(eip712.domain?.chainId) === ATTESTATION_EIP712_DOMAIN.chainId;
1142
+ // 2. AUTHENTICITY — signature recover
1143
+ const expectedAttestor = typeof a.expected_attestor === "string" && isAddress(a.expected_attestor)
1144
+ ? getAddress(a.expected_attestor)
1145
+ : GBLIN_ATTESTOR;
1146
+ let signatureOk = null;
1147
+ let recoveredSigner = null;
1148
+ let isGblinAttestor = null;
1149
+ const signature = typeof att.signature === "string" ? att.signature : null;
1150
+ if (signature) {
1151
+ try {
1152
+ recoveredSigner = await recoverTypedDataAddress({
1153
+ domain: ATTESTATION_EIP712_DOMAIN,
1154
+ types: ATTESTATION_EIP712_TYPES,
1155
+ primaryType: "RiskAttestation",
1156
+ message,
1157
+ signature: signature,
1158
+ });
1159
+ signatureOk = true;
1160
+ if (expectedAttestor.toLowerCase() !== ZERO_ADDR) {
1161
+ isGblinAttestor = recoveredSigner.toLowerCase() === expectedAttestor.toLowerCase();
1162
+ }
1163
+ }
1164
+ catch {
1165
+ signatureOk = false;
1166
+ }
1167
+ }
1168
+ // 3. FRESHNESS — prefer on-chain time
1169
+ let nowSec;
1170
+ try {
1171
+ nowSec = Number(await getOnChainTimestamp());
1172
+ }
1173
+ catch {
1174
+ nowSec = Math.floor(Date.now() / 1000);
1175
+ }
1176
+ const expiresAtNum = Number(message.expiresAt);
1177
+ const expired = nowSec >= expiresAtNum;
1178
+ const secondsToExpiry = expired ? 0 : expiresAtNum - nowSec;
1179
+ // 4. LIVE DRIFT — is the attested regime still the current on-chain regime?
1180
+ let liveRegime = null;
1181
+ let stillCurrent = null;
1182
+ try {
1183
+ const basket = await getBasketState();
1184
+ const maxCut = basket.entries
1185
+ .filter((e) => !e.isStable)
1186
+ .reduce((mx, e) => {
1187
+ const cut = e.baseWeightBps > 0
1188
+ ? Math.max(0, ((e.baseWeightBps - e.dynamicWeightBps) / e.baseWeightBps) * 100)
1189
+ : 0;
1190
+ return Math.max(mx, cut);
1191
+ }, 0);
1192
+ const liveCode = maxCut <= 0 ? 0 : maxCut < 40 ? 1 : 2;
1193
+ liveRegime = REGIME_LABELS[liveCode];
1194
+ stillCurrent = liveCode === message.regime;
1195
+ }
1196
+ catch {
1197
+ /* leave null — RPC hiccup shouldn't fail the crypto verification */
1198
+ }
1199
+ // Overall verdict: integrity not falsified, canonical schema, not expired, and
1200
+ // (if signed) a valid signature from the expected attestor when one is known.
1201
+ const trustable = integrityOk !== false &&
1202
+ schemaMatches &&
1203
+ !expired &&
1204
+ (signature ? signatureOk === true && isGblinAttestor !== false : true);
1205
+ const guidance = !signature
1206
+ ? "Unsigned attestation: integrity + freshness verified, but authenticity relies on the gblin.digital TLS origin. Prefer signed attestations for counterparty gating."
1207
+ : isGblinAttestor === null
1208
+ ? "Signature is cryptographically valid, but this MCP build has no published GBLIN attestor to compare against. Pass expected_attestor or set GBLIN_ATTESTOR_ADDRESS."
1209
+ : isGblinAttestor
1210
+ ? "Signed by GBLIN's published attestor."
1211
+ : "WARNING: signature does NOT match GBLIN's published attestor — do not trust this attestation.";
1212
+ return toolResult({
1213
+ valid: trustable,
1214
+ checks: {
1215
+ integrity: integrityOk === null ? "no_id_to_compare" : integrityOk,
1216
+ schema_matches_gblin: schemaMatches,
1217
+ signed: !!signature,
1218
+ signature_valid: signatureOk,
1219
+ recovered_signer: recoveredSigner,
1220
+ is_gblin_attestor: isGblinAttestor,
1221
+ expected_attestor: expectedAttestor.toLowerCase() === ZERO_ADDR ? "not_published_in_this_build" : expectedAttestor,
1222
+ expired,
1223
+ seconds_to_expiry: secondsToExpiry,
1224
+ },
1225
+ attested: {
1226
+ regime: REGIME_LABELS[message.regime] ?? "unknown",
1227
+ severity_pct: message.severityBps / 100,
1228
+ defensive_cash_pct: message.defensiveCashBps / 100,
1229
+ block_number: Number(message.blockNumber),
1230
+ issued_at: Number(message.issuedAt),
1231
+ expires_at: expiresAtNum,
1232
+ },
1233
+ live: { regime: liveRegime, still_current: stillCurrent },
1234
+ recomputed_attestation_id: recomputedId,
1235
+ guidance,
1236
+ source: "GBLIN Risk Attestation verifier — keyless integrity + EIP-712 recover + live drift",
1237
+ });
1238
+ }
1239
+ // ───────────────────────────────────────────────────────────────────────────
973
1240
  // REGISTRY
974
1241
  // ───────────────────────────────────────────────────────────────────────────
975
1242
  export const TOOL_DEFINITIONS = [
@@ -981,6 +1248,8 @@ export const TOOL_DEFINITIONS = [
981
1248
  GET_GOVERNANCE_STATE_DEFINITION,
982
1249
  SHARE_SKILL_DEFINITION,
983
1250
  FIND_KEEPER_BOUNTY_DEFINITION,
1251
+ MARKET_RISK_DEFINITION,
1252
+ VERIFY_ATTESTATION_DEFINITION,
984
1253
  ];
985
1254
  export const TOOL_HANDLERS = {
986
1255
  // ── FREE tools ─────────────────────────────────────────────────────────────
@@ -992,9 +1261,11 @@ export const TOOL_HANDLERS = {
992
1261
  share_skill_with_peer: handleShareSkillWithPeer,
993
1262
  swap_gblin_to_usdc_jit: handleJitSwap,
994
1263
  invest_usdc_to_gblin: handleInvest,
1264
+ verify_risk_attestation: handleVerifyRiskAttestation,
995
1265
  // ── PAID tools (x402 intelligence layer) ──────────────────────────────────
996
1266
  // Analysis and keeper discovery — these are "advice", not transport.
997
1267
  analyze_treasury_health: requirePayment({ priceUsdc: "0.003", priceLabel: "$0.003 USDC per call" }, handleAnalyzeTreasury),
998
1268
  find_keeper_bounty: requirePayment({ priceUsdc: "0.001", priceLabel: "$0.001 USDC per call" }, handleFindKeeperBounty),
1269
+ get_market_risk_regime: requirePayment({ priceUsdc: "0.002", priceLabel: "$0.002 USDC per call" }, handleMarketRiskRegime),
999
1270
  };
1000
1271
  //# sourceMappingURL=tools.js.map
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
@@ -1,23 +1,34 @@
1
1
  # GBLIN MCP Server
2
2
 
3
- > Treasury standard for autonomous AI agents on Base mainnet. Provides
4
- > on-chain quotes, Just-In-Time GBLIN→USDC swaps for x402 payments, and
5
- > treasury analytics through the Model Context Protocol.
3
+ > On-chain market-risk signal + treasury tools for autonomous AI agents on Base
4
+ > mainnet. Verifiable Crash-Shield risk regime, MEV-safe quotes, and Just-In-Time
5
+ > GBLIN→USDC swaps for x402 payments, through the Model Context Protocol.
6
6
 
7
- GBLIN is an algorithmic on-chain index on Base (45% cbBTC / 45% WETH / 10%
8
- USDC) with an automated Crash Shield that reduces risk-asset exposure during
9
- >20% drawdowns. Designed as a yielding alternative to holding pure USDC for
10
- AI agent operating capital.
7
+ GBLIN is an algorithmic on-chain index on Base (45% cbBTC / 45% WETH / 10% USDC)
8
+ with an automated Crash Shield that adaptively cuts risk-asset exposure as
9
+ drawdown rises (V6 adaptive trigger from ~15%, scaling proportionally toward a
10
+ deep-drawdown floor). NAV is computed from Chainlink oracle prices — fully
11
+ on-chain and verifiable.
11
12
 
12
- ## Why agents use GBLIN
13
+ ## What GBLIN is — and isn't (read this first)
13
14
 
14
- - **Treasury yield**: holding GBLIN earns basket appreciation vs flat USDC
15
- - **JIT compatible**: native `sellGBLINForToken(USDC)` works in a single
16
- atomic tx on any wallet (EOA, ERC-4337, EIP-7702)
17
- - **MEV-safe quotes**: every tool returns positive `minOut` values from
18
- on-chain quotes + dynamic slippage (never accepts 0)
19
- - **Oracle-verified prices**: NAV is computed from `quoteSellGBLIN` × the
20
- Chainlink ETH/USD feed with 24h staleness guard
15
+ - GBLIN is **managed crypto exposure with capped drawdown** — a calmer way to
16
+ hold BTC/ETH risk. It is **NOT** a substitute for USDC: it can still lose value
17
+ in a crash (less than holding BTC/ETH, but it is not principal-protected).
18
+ - Use GBLIN for **surplus / long-horizon capital** you want to grow with reduced
19
+ drawdown — NOT for operating capital you must spend soon (keep that in USDC).
20
+
21
+ ## What agents actually buy here
22
+
23
+ - `get_market_risk_regime` — the headline product: is the BTC/ETH market in a
24
+ **calm / elevated / crash** regime right now, with a severity score and a
25
+ `risk_on` / `reduce` / `risk_off` posture. Derived from GBLIN's on-chain Crash
26
+ Shield (drawdown vs Chainlink-oracle peaks) — data you cannot recompute from a
27
+ single price feed. Useful to **any** trading or treasury agent, independent of
28
+ holding GBLIN. The signal moves with the market, so poll it every decision
29
+ cycle. $0.002 USDC/call via x402.
30
+ - MEV-safe quotes + Just-In-Time GBLIN→USDC redemption for x402 payments.
31
+ - Treasury-health analysis + keeper-bounty discovery (earn ETH rebalancing).
21
32
 
22
33
  ## Installation
23
34
 
@@ -37,14 +48,24 @@ Claude Desktop config:
37
48
 
38
49
  ## Tools
39
50
 
40
- 1. `get_treasury_state` — NAV, basket composition, Crash Shield status
41
- 2. `quote_safe_swap` — preview buy/sell with dynamic slippage buffer
42
- 3. `swap_gblin_to_usdc_jit` — generate calldata for x402 JIT payments
43
- 4. `invest_usdc_to_gblin` — convert USDC earnings back to GBLIN treasury
44
- 5. `analyze_treasury_health` — balances, gas, runway, rebalance advice
45
- 6. `get_governance_state` — verify 48h timelock ownership + pending ops
46
- 7. `share_skill_with_peer` — portable JSON skill seed + referral code
47
- 8. `find_keeper_bounty` — check rebalance bounty availability + calldata
51
+ 1. `get_market_risk_regime` — BTC/ETH risk regime + severity + posture ($0.002) ← start here
52
+ 2. `get_treasury_state` — NAV, basket composition, Crash Shield status (free)
53
+ 3. `quote_safe_swap` — preview buy/sell with dynamic slippage (free)
54
+ 4. `swap_gblin_to_usdc_jit` — calldata for x402 JIT payments (free)
55
+ 5. `invest_usdc_to_gblin` — convert surplus USDC into GBLIN (free)
56
+ 6. `analyze_treasury_health` — balances, gas runway, rebalance advice ($0.003)
57
+ 7. `get_governance_state` — verify 48h timelock ownership + pending ops (free)
58
+ 8. `share_skill_with_peer` — portable JSON skill seed + referral code (free)
59
+ 9. `find_keeper_bounty` — check rebalance bounty + calldata ($0.001)
60
+ 10. `verify_risk_attestation` — verify a peer's Risk Attestation: integrity + EIP-712 signature + freshness + live drift (free)
61
+
62
+ ## Risk Attestation (perishable proof-of-diligence)
63
+
64
+ Mint at `GET https://gblin.digital/api/x402/attestation` ($0.003 USDC via x402): a
65
+ 10-minute, verifiable snapshot of the BTC/ETH risk regime. Attach it to your action
66
+ as proof you checked market risk; any counterparty verifies it in one step with the
67
+ free `verify_risk_attestation` tool. Because it expires in 10 minutes, any workflow
68
+ that gates on a fresh attestation re-fetches every cycle.
48
69
 
49
70
  ## Links
50
71