agent-pulse

2
0
Source

Send and verify on-chain liveness pulses for autonomous agents on Base via the Agent Pulse protocol. Use when you need to: (1) prove an agent is alive by sending a pulse, (2) check any agent's liveness status or streak, (3) monitor multiple agents, (4) view the global pulse feed, (5) auto-configure wallet and PULSE balance, (6) run scheduled heartbeat pulses, or (7) read protocol health and config. Supports both API and direct on-chain (cast) modes.

Install

mkdir -p .claude/skills/agent-pulse && curl -L -o skill.zip "https://mcp.directory/api/skills/download/3558" && unzip -o skill.zip -d .claude/skills/agent-pulse && rm skill.zip

Installs to .claude/skills/agent-pulse

About this skill

Agent Pulse 💓

Liveness signaling for autonomous agents on Base. An agent periodically sends a pulse (PULSE token transfer) to prove it's alive. Observers query status via API or on-chain.

Network: Base (chainId 8453)

ContractAddress
PulseToken0x21111B39A502335aC7e45c4574Dd083A69258b07
PulseRegistry0xe61C615743A02983A46aFF66Db035297e8a43846
APIhttps://x402pulse.xyz

$PULSE is a utility token for pulse signals. A pulse shows recent wallet activity — it does not prove identity, quality, or "AI." Avoid language suggesting financial upside.

Decision Tree

  1. First time? → Run scripts/setup.sh to auto-detect wallet, check balance, verify approval.
  2. Send a pulse?scripts/pulse.sh --direct 1000000000000000000 (requires PRIVATE_KEY).
  3. Automated heartbeat?scripts/auto-pulse.sh (cron-safe; skips if TTL is healthy).
  4. Check one agent?scripts/status.sh <address> or curl .../api/v2/agent/<addr>/alive.
  5. Check many agents?scripts/monitor.sh <addr1> <addr2> ...
  6. View pulse feed?scripts/monitor.sh --feed
  7. Protocol config/health?scripts/config.sh / scripts/health.sh

Scripts Reference

All scripts live in scripts/. Pass -h or --help for usage.

setup.sh — Self-Configure

Auto-detects wallet from PRIVATE_KEY, checks PULSE balance, verifies registry approval, and queries agent status.

# Interactive setup
{baseDir}/scripts/setup.sh

# Auto-approve registry + JSON output
{baseDir}/scripts/setup.sh --auto-approve --quiet

Env: PRIVATE_KEY (required), BASE_RPC_URL, API_BASE Requires: cast, curl, jq

pulse.sh — Send Pulse

Send an on-chain pulse via direct cast send.

export PRIVATE_KEY="0x..."
{baseDir}/scripts/pulse.sh --direct 1000000000000000000

Env: PRIVATE_KEY (required), BASE_RPC_URL Requires: cast

auto-pulse.sh — Cron Heartbeat

Check if agent is alive; send pulse only when TTL is low or agent is dead. Safe to run on a schedule.

# Normal: pulse only if needed
{baseDir}/scripts/auto-pulse.sh

# Force pulse regardless of TTL
{baseDir}/scripts/auto-pulse.sh --force

# Check without sending
{baseDir}/scripts/auto-pulse.sh --dry-run

Env: PRIVATE_KEY (required), BASE_RPC_URL, PULSE_AMOUNT (default 1e18), TTL_THRESHOLD (default 21600s = 6h) Exit codes: 0 = success or skipped, 1 = error

status.sh — Agent Status

{baseDir}/scripts/status.sh 0xAgentAddress

config.sh / health.sh — Protocol Info

{baseDir}/scripts/config.sh     # addresses, network, x402 config
{baseDir}/scripts/health.sh     # paused status, total agents, health

monitor.sh — Multi-Agent Monitor

# Check specific agents
{baseDir}/scripts/monitor.sh 0xAddr1 0xAddr2 0xAddr3

# From file (one address per line)
{baseDir}/scripts/monitor.sh -f agents.txt

# JSON output
{baseDir}/scripts/monitor.sh --json 0xAddr1 0xAddr2

# Global pulse feed
{baseDir}/scripts/monitor.sh --feed

API Quick Reference

EndpointMethodAuthDescription
/api/v2/agent/{addr}/aliveGETNoneAlive check + TTL
/api/status/{addr}GETNoneFull status + streak
/api/pulse-feedGETNoneRecent pulse activity
/api/configGETNoneProtocol configuration
/api/protocol-healthGETNoneHealth and paused state
/api/pulsePOSTx402Send pulse via API

Direct On-Chain (cast)

export BASE_RPC_URL="https://mainnet.base.org"

# Read: is agent alive?
cast call --rpc-url "$BASE_RPC_URL" \
  0xe61C615743A02983A46aFF66Db035297e8a43846 \
  "isAlive(address)(bool)" 0xAgent

# Read: full status tuple
cast call --rpc-url "$BASE_RPC_URL" \
  0xe61C615743A02983A46aFF66Db035297e8a43846 \
  "getAgentStatus(address)(bool,uint256,uint256,uint256)" 0xAgent

# Write: approve + pulse (requires PRIVATE_KEY)
cast send --rpc-url "$BASE_RPC_URL" --private-key "$PRIVATE_KEY" \
  0x21111B39A502335aC7e45c4574Dd083A69258b07 \
  "approve(address,uint256)(bool)" \
  0xe61C615743A02983A46aFF66Db035297e8a43846 1000000000000000000

cast send --rpc-url "$BASE_RPC_URL" --private-key "$PRIVATE_KEY" \
  0xe61C615743A02983A46aFF66Db035297e8a43846 \
  "pulse(uint256)" 1000000000000000000

Error Handling

ErrorCauseFix
BelowMinimumPulseAmount < minPulseAmount (default 1e18)Use ≥ 1000000000000000000
ERC20 transfer failureMissing approval or low PULSE balanceRun setup.sh --auto-approve
whenNotPausedRegistry pausedWait; check health.sh
401/402/403Missing payment for paid endpointsUse direct on-chain mode
5xxTransient API errorRetry with backoff

Read-Only Mode (No Private Key)

These commands work without PRIVATE_KEY — no wallet or signing required:

# Check any agent's status
{baseDir}/scripts/status.sh 0xAnyAgentAddress

# Monitor multiple agents
{baseDir}/scripts/monitor.sh 0xAddr1 0xAddr2

# View global pulse feed
{baseDir}/scripts/monitor.sh --feed

# Protocol configuration
{baseDir}/scripts/config.sh

# Protocol health
{baseDir}/scripts/health.sh

Security

Required Credentials

Env VarRequired ForDefault
PRIVATE_KEYWrite ops (pulse, approve)(none — read-only without it)
BASE_RPC_URLAll on-chain callshttps://mainnet.base.org
API_BASEAPI callshttps://x402pulse.xyz
PULSE_AMOUNTPulse amount (wei)1000000000000000000 (1 PULSE)
TTL_THRESHOLDAuto-pulse skip threshold21600 (6 hours)
PULSE_REGISTRY_ADDRESSOverride registry0xe61C...
PULSE_TOKEN_ADDRESSOverride token0x2111...
X402_PAYMENT_HEADERx402 payment proof for API pulse(none — use direct on-chain mode without it)
X402_HEADER_NAMECustom x402 header nameX-402-Payment

Approval Behavior

  • setup.sh --auto-approve sets a bounded allowance of 1,000 PULSE (not unlimited). This is enough for ~1,000 pulses before re-approval is needed.
  • pulse.sh --direct approves the exact amount per transaction (no excess allowance).
  • The PulseRegistry contract can only call transferFrom during pulse() — it cannot arbitrarily drain tokens.

Best Practices

  • Never log, print, or commit PRIVATE_KEY.
  • Use a dedicated wallet with only the PULSE tokens needed — not your main wallet.
  • Start with --dry-run mode to verify behavior before sending real transactions.
  • Verify contract addresses and chainId before signing transactions.
  • Test with small amounts first.

References

  • Action guide: references/action_guide.md — detailed API patterns and examples
  • Contract ABI: references/contract_abi.json — PulseRegistry full ABI

seedream-image-gen

openclaw

Generate images via Seedream API (doubao-seedream models). Synchronous generation.

2359

ffmpeg-cli

openclaw

Comprehensive video/audio processing with FFmpeg. Use for: (1) Video transcoding and format conversion, (2) Cutting and merging clips, (3) Audio extraction and manipulation, (4) Thumbnail and GIF generation, (5) Resolution scaling and quality adjustment, (6) Adding subtitles or watermarks, (7) Speed adjustment (slow/fast motion), (8) Color correction and filters.

6723

context-optimizer

openclaw

Advanced context management with auto-compaction and dynamic context optimization for DeepSeek's 64k context window. Features intelligent compaction (merging, summarizing, extracting), query-aware relevance scoring, and hierarchical memory system with context archive. Logs optimization events to chat.

3722

a-stock-analysis

openclaw

A股实时行情与分时量能分析。获取沪深股票实时价格、涨跌、成交量,分析分时量能分布(早盘/尾盘放量)、主力动向(抢筹/出货信号)、涨停封单。支持持仓管理和盈亏分析。Use when: (1) 查询A股实时行情, (2) 分析主力资金动向, (3) 查看分时成交量分布, (4) 管理股票持仓, (5) 分析持仓盈亏。

9121

himalaya

openclaw

CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).

7921

garmin-connect

openclaw

Syncs daily health and fitness data from Garmin Connect into markdown files. Provides sleep, activity, heart rate, stress, body battery, HRV, SpO2, and weight data.

7321

You might also like

flutter-development

aj-geddes

Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.

643969

drawio-diagrams-enhanced

jgtolentino

Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.

591705

ui-ux-pro-max

nextlevelbuilder

"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."

318399

godot

bfollington

This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.

340397

nano-banana-pro

garg-aayush

Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.

452339

fastapi-templates

wshobson

Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.

304231

Stay ahead of the MCP ecosystem

Get weekly updates on new skills and servers.