# Scheduler /schedules/:id

## Networks

| Name | CAIP-2 | Chain ID / Cluster | Protocols |
|---|---|---|---|
| Tempo Mainnet | `eip155:4217` | 4217 | mpp |
| Solana Mainnet | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp` | mainnet-beta | mpp, x402 |
| Base | `eip155:8453` | 8453 | x402 |

## Accepted Currencies

| Symbol | Name | Decimals | Network | Address | Protocols |
|---|---|---|---|---|---|
| USDC.e | Bridged USDC (Stargate) | 6 | `eip155:4217` | `0x20c000000000000000000000b9537d11c60e8b50` | mpp |
| USDC | USD Coin (Solana) | 6 | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp` | `EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v` | mpp, x402 |
| USDC | USD Coin | 6 | `eip155:8453` | `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | x402 |

## Endpoints (2)

### Scheduler: Cancel Schedule

Cancel a schedule and stop future fires. Owner-scoped. Prepaid recurring fires that have not run are forfeited (refunds are full-only).

- Method: DELETE
- Path: `/schedules/:id`
- Price: $0.00050000

**Output Schema**

```json
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "const": true
    },
    "id": {
      "type": "string"
    }
  },
  "required": [
    "ok",
    "id"
  ],
  "additionalProperties": false
}
```

## How to invoke

Payment is handled automatically — the client signs the 402 challenge and retries.

### TypeScript — Tempo (mppx + fetch) ([docs](https://mpp.dev/sdk/typescript/client))

```ts
import { privateKeyToAccount } from 'viem/accounts'
import { Mppx, tempo } from 'mppx/client'

Mppx.create({
  methods: [tempo({ account: privateKeyToAccount('0x...') })],
})

const res = await fetch('https://scheduler.payweave.services/schedules/:id', {
  method: 'DELETE',
})
const data = await res.json()
```

### TypeScript — Solana (@solana/mpp + fetch) ([docs](https://github.com/solana-foundation/mpp-sdk))

```ts
import { createKeyPairSignerFromBytes } from '@solana/kit'
import { Mppx } from 'mppx/client'
import { solana } from '@solana/mpp/client'

const signer = await createKeyPairSignerFromBytes(/* 64-byte secret key */)
Mppx.create({ methods: [solana({ signer })] })

const res = await fetch('https://scheduler.payweave.services/schedules/:id', {
  method: 'DELETE',
})
const data = await res.json()
```

### mppx CLI ([docs](https://mpp.dev/sdk/typescript/cli))

```sh
npx mppx "https://scheduler.payweave.services/schedules/:id" -X DELETE
```

### Tempo Wallet ([docs](https://docs.tempo.xyz/cli/wallet))

```sh
tempo request "https://scheduler.payweave.services/schedules/:id" -X DELETE
```

### pay.sh — Solana Foundation ([docs](https://pay.sh))

```sh
pay --mainnet curl "https://scheduler.payweave.services/schedules/:id" -X DELETE
```

### agentcash CLI ([docs](https://www.npmjs.com/package/agentcash))

```sh
npx agentcash fetch "https://scheduler.payweave.services/schedules/:id" -m DELETE -p mpp
```

### x402 — Base / Solana USDC (x402-fetch) ([docs](https://x402.org))

```ts
import { wrapFetchWithPayment } from 'x402-fetch'
import { privateKeyToAccount } from 'viem/accounts'

const account = privateKeyToAccount('0x...') // Base USDC wallet
const fetchWithPay = wrapFetchWithPayment(fetch, account)

const res = await fetchWithPay('https://scheduler.payweave.services/schedules/:id', {
  method: 'DELETE',
})
const data = await res.json()
```

### x402 — agentcash CLI

```sh
npx agentcash fetch "https://scheduler.payweave.services/schedules/:id" -m DELETE -p x402
```

### Scheduler: Schedule Info

Get a schedule status, next/last run, run count, runs remaining, label/metadata, and recent delivery history. Owner-scoped.

- Method: GET
- Path: `/schedules/:id`
- Price: $0.00050000

**Output Schema**

```json
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "kind": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "createdAt": {
      "type": "number"
    },
    "nextRunAt": {
      "type": [
        "number",
        "null"
      ]
    },
    "lastRunAt": {
      "type": [
        "number",
        "null"
      ]
    },
    "runCount": {
      "type": "number"
    },
    "runsRemaining": {
      "type": "number"
    },
    "runs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "firedAt": {
            "type": "number"
          },
          "ok": {
            "type": "boolean"
          },
          "httpStatus": {
            "type": [
              "number",
              "null"
            ]
          },
          "attempts": {
            "type": "number"
          },
          "error": {
            "type": "string"
          }
        },
        "required": [
          "firedAt",
          "ok",
          "httpStatus",
          "attempts"
        ],
        "additionalProperties": false
      }
    },
    "label": {
      "type": "string"
    },
    "metadata": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "required": [
    "id",
    "kind",
    "status",
    "createdAt",
    "nextRunAt",
    "lastRunAt",
    "runCount",
    "runsRemaining",
    "runs"
  ],
  "additionalProperties": false
}
```

## How to invoke

Payment is handled automatically — the client signs the 402 challenge and retries.

### TypeScript — Tempo (mppx + fetch) ([docs](https://mpp.dev/sdk/typescript/client))

```ts
import { privateKeyToAccount } from 'viem/accounts'
import { Mppx, tempo } from 'mppx/client'

Mppx.create({
  methods: [tempo({ account: privateKeyToAccount('0x...') })],
})

const res = await fetch('https://scheduler.payweave.services/schedules/:id')
const data = await res.json()
```

### TypeScript — Solana (@solana/mpp + fetch) ([docs](https://github.com/solana-foundation/mpp-sdk))

```ts
import { createKeyPairSignerFromBytes } from '@solana/kit'
import { Mppx } from 'mppx/client'
import { solana } from '@solana/mpp/client'

const signer = await createKeyPairSignerFromBytes(/* 64-byte secret key */)
Mppx.create({ methods: [solana({ signer })] })

const res = await fetch('https://scheduler.payweave.services/schedules/:id')
const data = await res.json()
```

### mppx CLI ([docs](https://mpp.dev/sdk/typescript/cli))

```sh
npx mppx "https://scheduler.payweave.services/schedules/:id"
```

### Tempo Wallet ([docs](https://docs.tempo.xyz/cli/wallet))

```sh
tempo request "https://scheduler.payweave.services/schedules/:id"
```

### pay.sh — Solana Foundation ([docs](https://pay.sh))

```sh
pay --mainnet curl "https://scheduler.payweave.services/schedules/:id"
```

### agentcash CLI ([docs](https://www.npmjs.com/package/agentcash))

```sh
npx agentcash fetch "https://scheduler.payweave.services/schedules/:id" -m GET -p mpp
```

### x402 — Base / Solana USDC (x402-fetch) ([docs](https://x402.org))

```ts
import { wrapFetchWithPayment } from 'x402-fetch'
import { privateKeyToAccount } from 'viem/accounts'

const account = privateKeyToAccount('0x...') // Base USDC wallet
const fetchWithPay = wrapFetchWithPayment(fetch, account)

const res = await fetchWithPay('https://scheduler.payweave.services/schedules/:id')
const data = await res.json()
```

### x402 — agentcash CLI

```sh
npx agentcash fetch "https://scheduler.payweave.services/schedules/:id" -m GET -p x402
```
