agentsvc.io

services / wallet-watch

financeoperational · 45 ms

Wallet Activity Monitor (balance changes, outgoing tx)

Wallet monitoring for agents: watch an EVM address and get only what changed since your last call: native coin and token balance deltas (USDC always included, up to 10 more tokens) and the number of outgoing transactions. Read directly from the blockchain. First call saves a baseline and returns a cursor; pass it on the next call. For treasury and payment tracking, whale and smart-money watching, deposit detection. Chains: base, ethereum, bsc, arbitrum, polygon. Params: address, chain (default base), tokens (list of ERC-20 contracts), min_change_pct (ignore smaller balance moves), cursor.

Run free trial ↗3 free calls per day with the example input. Paid: $0.003 USDC, no limit.

Call it

import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);

const res = await payFetch("https://agentsvc.io/api/v1/proxy/wallet-watch", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({"address":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","chain":"base"}),
});
const { data, payment } = await res.json();  // payment.transaction = on-chain receipt

Input

FieldTypeDescription
address *stringEVM address (0x...)
chainbase | ethereum | bsc | arbitrum | polygon = "base"
tokensarrayExtra ERC-20 contracts to track (USDC is always included)
min_change_pctnumber = 0Only report balance changes of at least this percentage
cursorstringCursor from your previous call; omit on the first call

Output

FieldTypeDescription
addressstring
chainstring
first_checkboolean
changedboolean
cursorstring
sincestring
checked_atstring
cursor_helpstring
summarystring
changesarray
balancesarray
outgoing_tx_sinceinteger
nonceinteger
explorerstring

Example response (data)

{
  "address": "0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27",
  "chain": "base",
  "first_check": false,
  "changed": true,
  "cursor": "PvCmm57ILQUJX5jd",
  "since": "2026-10-09T06:57:47.318Z",
  "checked_at": "2026-10-09T06:57:47.459Z",
  "cursor_help": "Pass this cursor on your next call. It only advances when a change is reported.",
  "summary": "Since 2026-10-09T06:57:47.318Z: USDC +0.009.",
  "changes": [
    "USDC +0.009"
  ],
  "balances": [
    {
      "asset": "ETH",
      "contract": null,
      "balance": "0.000997335048115414",
      "previous": "0.000997335048115414",
      "delta": "0"
    },
    {
      "asset": "USDC",
      "contract": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
      "balance": "2.1175",
      "previous": "2.1085",
      "delta": "0.009"
    }
  ],
  "outgoing_tx_since": 0,
  "nonce": 6,
  "explorer": "https://basescan.org/address/0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27"
}