Skip to main content
ClaudeWave
Skill6.6k estrellas del repoactualizado yesterday

phone

This BlockRun skill provides phone number intelligence via Twilio (carrier lookup, line-type detection, and SIM-swap fraud signals) and enables AI-powered outbound voice calls through Bland.ai. Use it to verify phone numbers before sending sensitive authentication codes, detect fraud risk prior to account-recovery flows, manage wallet-owned phone numbers for caller ID stability, or place automated voice calls when users explicitly request them. All transactions charge automatically to the user's BlockRun wallet via x402.

Instalar en Claude Code
Copiar
git clone --depth 1 https://github.com/BlockRunAI/ClawRouter /tmp/phone && cp -r /tmp/phone/skills/phone ~/.claude/skills/phone
Después abre una sesión nueva de Claude Code; el skill carga automáticamente.

SKILL.md

# Phone & Voice

Phone-number intelligence (Twilio Lookup) and AI-powered outbound voice calls (Bland.ai) through ClawRouter's local proxy. Payment is automatic via x402 from the user's BlockRun wallet.

**Shortcuts:**

- Slash: `/cr-call +1<E.164> "<task>" [--voice nat] [--max-duration 5] [--from +1<owned-number>] [--language en-US]`
- CLI: `clawrouter phone numbers list/buy/renew/release`, `clawrouter phone lookup <+E.164>`, `clawrouter phone fraud <+E.164>`
- Partner tools (LLM-callable): `blockrun_phone_lookup`, `blockrun_phone_lookup_fraud`, `blockrun_phone_numbers_buy/renew/list/release`, `blockrun_voice_call`, `blockrun_voice_status`

> **⚠️ Real-world side effects.** `blockrun_voice_call` places a real outbound phone call to a real number. Only invoke when the user has explicitly asked for a call to be placed. Server enforces an emergency-number blocklist.

---

## Phone Number Intelligence (Twilio)

### Carrier + Line Type Lookup — `$0.01`

POST to `http://localhost:8402/v1/phone/lookup`:

```json
{ "phoneNumber": "+14155552671" }
```

Returns carrier name, line type (`mobile` / `landline` / `voip`), country, mobile country/network codes. Use to verify whether a number is reachable, detect VoIP/spam patterns, or route SMS appropriately.

### Fraud Risk Check — `$0.05`

POST to `http://localhost:8402/v1/phone/lookup/fraud`:

```json
{ "phoneNumber": "+14155552671" }
```

Adds SIM-swap recency and call-forwarding signals on top of carrier+line type. **Run this before sending sensitive SMS codes or initiating account-recovery flows** — a number flagged for recent SIM swap is high-risk for account takeover.

---

## Wallet-Owned Phone Numbers

Numbers are leased for 30 days, bound to the wallet's payer address. Use one as the `from` parameter of `voice_call` to present a stable caller ID.

### Buy — `$5.00 / 30 days`

POST to `http://localhost:8402/v1/phone/numbers/buy`:

```json
{ "country": "US", "areaCode": "415" }
```

`country` is `"US"` or `"CA"`. `areaCode` is optional (3-digit, best-effort match). Returns `{ phone_number, expires_at, chain }`.

### Renew — `$5.00 / +30 days`

POST to `http://localhost:8402/v1/phone/numbers/renew`:

```json
{ "phoneNumber": "+14155551234" }
```

Run before the existing lease expires. Numbers not renewed are released back to the pool.

### List — `$0.001`

POST to `http://localhost:8402/v1/phone/numbers/list` with an empty body. Returns an array of `{ phone_number, expires_at, country, chain }`. The CLI surfaces this as a human table with renew-soon warnings:

```
$ clawrouter phone numbers list

Active numbers (2):
  +14155551234   US   expires 2026-06-12 (in 27d)
  +12135555678   US   expires 2026-05-18 (in 2d) ⚠ renew soon
```

### Release — free

POST to `http://localhost:8402/v1/phone/numbers/release`:

```json
{ "phoneNumber": "+14155551234" }
```

No refund. Use only when the user has explicitly asked to give up the number.

---

## AI Voice Call (Bland.ai)

### Place a Call — `$0.54 flat (up to 30 min)`

POST to `http://localhost:8402/v1/voice/call`:

```json
{
  "to": "+14155552671",
  "task": "Call and confirm the 3pm Thursday meeting; reschedule if they can't make it.",
  "voice": "nat",
  "max_duration": 5,
  "from": "+14155551234",
  "language": "en-US"
}
```

**Required:** `to` (E.164), `task` (free-form natural language — what the AI should say or accomplish).

**Optional:**

| Field          | Default     | Notes                                                                                                                                            |
| -------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `voice`        | `nat`       | Presets: `nat`, `josh`, `maya`, `june`, `paige`, `derek`, `florian`. Or a custom Bland voice ID.                                                 |
| `max_duration` | `5`         | Maximum minutes (1–30). Price is flat $0.54 regardless of actual duration.                                                                       |
| `from`         | auto-picked | Must be a wallet-owned number from `phone_numbers_list`. If omitted, server auto-picks from wallet's active numbers — see auto-pick rules below. |
| `language`     | `en-US`     | Any spoken-language ISO code, e.g. `es-ES`, `zh-CN`, `de-DE`.                                                                                    |

**`from` auto-pick rules** (server-side, after payment verification):

| Wallet active numbers | Behavior                                                                                                  |
| --------------------- | --------------------------------------------------------------------------------------------------------- |
| 0                     | `403 no_active_number` — response includes `buy_endpoint` + marketplace URL so caller can provision first |
| Exactly 1             | Auto-used as caller ID                                                                                    |
| 2+                    | `400 ambiguous_from` — response lists all active numbers; retry with `from` set explicitly                |

If an explicit `from` is supplied but the wallet doesn't own it, the response is `403` with a clear ownership-mismatch message (no charge taken when validation fails).

**Response is fire-and-forget:**

```json
{
  "call_id": "call_abc123",
  "poll_url": "/v1/voice/call/call_abc123",
  "status": "queued"
}
```

The call runs in the cloud for up to `max_duration` minutes. The HTTP response returns immediately — **do not wait for the call to finish**. Poll `voice_status` every 10–30s to retrieve transcript and recording when the call completes.

### Poll Status — free

GET `http://localhost:8402/v1/voice/call/{call_id}`. Returns:

```json
{
  "call_id": "call_abc123",
  "status": "completed",
  "duration_seconds": 47,
  "transcript": [
    { "role": "assistant", "text":
clawrouterSkill

Hosted-gateway LLM router — save 67% on inference costs. A local proxy that forwards each request to the blockrun.ai gateway, which routes to the cheapest capable model across 55+ models from OpenAI, Anthropic, Google, DeepSeek, xAI, NVIDIA, and more. 6 free NVIDIA models included. Also exposes realtime market data (global stocks, crypto, FX, commodities), Twitter/X intelligence, prediction-market data across Polymarket, Kalshi, Limitless, Opinion, Predict.Fun, dFlow + UMA oracle resolution + wallet identity & clustering, phone-number intelligence (carrier + SIM-swap fraud detection) plus AI-powered outbound voice calls (Twilio + Bland.ai), AND the Surf unified crypto data API (84 endpoints — CEX/DEX, on-chain SQL over 80+ ClickHouse tables, 100M+ labeled wallets, prediction markets, social/CT mindshare, news, VC fund intel) as built-in agent tools. Not a local-inference tool — prompts are sent to the blockrun.ai gateway.

imagegenSkill

Generate or edit images via BlockRun's image API. Trigger when the user asks to generate, create, draw, make an image — or to edit, modify, change, or retouch an existing image.

predexonSkill

Use this skill — NOT browser or web_fetch — for ALL Polymarket, Kalshi, Limitless, Opinion, Predict.Fun, dFlow, UMA oracle, and prediction market data. Provides structured API at localhost:8402/v1/pm/* for markets, cross-venue search, leaderboard, smart money, wallet analytics, wallet identity & clustering, UMA resolution status, and odds.

releaseSkill

Use this skill for EVERY ClawRouter release. Enforces the full checklist — version sync, CHANGELOG, build, tests, npm publish, git tag, GitHub release. No step can be skipped.

surfSkill

Use this skill — NOT browser or web_fetch — for ALL Surf crypto-data calls. 83 endpoints at localhost:8402/v1/surf/* covering CEX/DEX markets, on-chain SQL over 80+ ClickHouse tables (Ethereum, Base, Arbitrum, BSC, TRON, HyperEVM, Tempo), 100M+ labeled wallets, prediction markets (Polymarket + Kalshi), social/CT intelligence, news, project + DeFi metrics, token analytics, unified search, VC fund intelligence. x402-gated via ClawRouter's local wallet — no Surf account or API key required.