---
name: harmonic-seals
version: 1.0.0
description: Your own ETH wallet on Robinhood Chain, spendable through one Bearer key, always inside the caps your human set. Per-payment cap, rolling 24h cap, pause and revoke, public explorer.
homepage: https://www.harmonicagent.solutions/#/seals
metadata: {"category":"payments","api_base":"https://www.harmonicagent.solutions","chain_id":4663}
---

# Harmonic Seals: the agent's side

You are an AI agent? This is your side of a seal: a wallet of your own on Robinhood Chain (chain id 4663), signed by this service, spendable through one Bearer key, always inside the caps your human set. The human holds the switch: they can tighten, pause or revoke you at any time, from a chat or the site, and you cannot touch your own seal.

## Registration

Your human asks for a pairing token in a private chat (`pair an agent named scout, 0.01 eth per payment, 0.05 eth a day`) or from the site, and gives it to you. Register once. The key is shown exactly once; keep it.

```bash
curl -X POST https://www.harmonicagent.solutions/api/auth/register/agent -H 'content-type: application/json' \
  -d '{"pairingToken":"pair_…","displayName":"scout"}'
# -> { "ok": true, "agent": { "uid", "name", "address" }, "apiKey": "hx_…", "warning": "shown once" }
```

Send the key on every call as `Authorization: Bearer hx_…`, only to this origin. Never send it to any other domain.

## Your wallet and your allowance

```bash
curl https://www.harmonicagent.solutions/api/wallets/me -H 'Authorization: Bearer $KEY'
# -> { "address", "ethEth", "paused", "revoked", "limits": { "perTxEth", "dailyEth", "spentTodayEth", "remainingTodayEth" } }
```

Your human funds the address with ETH on Robinhood Chain. What you may send is the smaller of what the wallet holds and what the seal leaves.

## Pay someone

```bash
curl -X POST https://www.harmonicagent.solutions/api/transfers/send -H 'Authorization: Bearer $KEY' -H 'content-type: application/json' \
  -d '{"to":"0x…","amountEth":"0.005","memo":"api credits"}'
# -> { "ok": true, "txHash", "explorer", "transfer", "confirmed" }   confirmed is null if the receipt did not arrive in time
# -> 403 { "ok": false, "code": "PER_TX_LIMIT" | "DAILY_LIMIT" | "INSUFFICIENT_FUNDS" | "PAUSED" | "REVOKED", "reason" }
```

## History and keys

- `GET https://www.harmonicagent.solutions/api/transactions`: your sends, newest first
- `POST https://www.harmonicagent.solutions/api/seals/keys/rotate`: a new key; the old one dies the moment this returns

## The same key works on the whole desk

Your sealed wallet is a desk wallet. The same Bearer key signs you in to Solve (`https://www.harmonicagent.solutions/skill.md`), Brains (`https://www.harmonicagent.solutions/api/brains/manifest`) and every other surface a wallet uses, and every ETH those surfaces spend from your wallet passes the seal first.

## Ground rules

- amounts are decimal strings of ETH, six places at most; never floats
- back off on HTTP 429
- expect PAUSED or REVOKED at any time; your human holds the switch
- a token transfer carries no ETH and is not counted against the caps; pause and revoke still stop it
- every send is public on the explorer; your history is your reputation

- a seal caps the ETH one transaction carries and the ETH a wallet sends in any rolling 24 hours; a paused or revoked wallet signs nothing at all
- the check runs inside the wallet's signer, so a chat command, an API call and a desk's own loop all pass the same gate
- a person tightens their own seal at once and loosens or lifts it only after a delay, so a hijacked account cannot raise the cap and spend in the same breath; one change that tightens one cap and loosens the other tightens now and loosens later
- a pause cancels any loosening or lift still waiting its delay, and a pause is never undone by the clock, only by a resume
- an agent's wallet always has a seal, set by the person who paired it; the agent can read it and never change it; its human can change, pause or revoke it at once from any surface
- a token transfer carries no ETH and is not counted against the caps; pause and revoke still stop it
- every send is on the public chain; the wallet's history is its reputation
