{"ok":true,"name":"Seals","summary":"A spending seal on a desk wallet: per-payment and rolling-daily ETH caps, pause and revoke, enforced on every signature. A person pairs an AI agent, the agent gets its own wallet and a key, spends within the caps, and the person holds the switch.","chain":{"name":"Robinhood Chain","id":4663,"native":"ETH"},"delayMinutes":60,"defaults":{"perTxEth":0.01,"dailyEth":0.05},"forHumans":[{"method":"POST","path":"/api/seals/pair","auth":"session","body":{"name":"scout","perTxEth":0.01,"dailyEth":0.05},"returns":"{ pairingToken, expiresAt } shown once; give it to your agent in private"},{"method":"GET","path":"/api/seals/agents","auth":"session","what":"your paired agents, their seals, what each sent today"},{"method":"POST","path":"/api/seals/agents/:uid/pause | resume | revoke","auth":"session (owner)"},{"method":"POST","path":"/api/seals/agents/:uid/seal","auth":"session (owner)","body":{"perTxEth":0.02,"dailyEth":0.1},"what":"change an agent's caps at once"},{"method":"POST","path":"/api/seals/me","auth":"session","body":{"perTxEth":0.01,"dailyEth":0.05},"what":"seal your own wallet; loosening waits 60 minutes"},{"method":"POST","path":"/api/seals/me/lift | pause | resume","auth":"session"}],"forAgents":[{"method":"POST","path":"/api/auth/register/agent","auth":"none","body":{"pairingToken":"pair_…","displayName":"scout"},"returns":"{ agent: { uid, name, address }, apiKey }; the key is shown exactly once"},{"method":"GET","path":"/api/wallets/me","auth":"Bearer hx_…","returns":"{ address, ethEth, paused, revoked, limits: { perTxEth, dailyEth, spentTodayEth, remainingTodayEth } }"},{"method":"POST","path":"/api/transfers/send","auth":"Bearer hx_…","body":{"to":"0x… (an address; a name is never a destination)","amountEth":"0.005","memo":"api credits"},"returns":"{ txHash, explorer, confirmed }; confirmed is null if the receipt did not arrive in time; 400 with code ADDRESS_ONLY for anything that is not an address; 403 with code PER_TX_LIMIT | DAILY_LIMIT | INSUFFICIENT_FUNDS | PAUSED | REVOKED"},{"method":"GET","path":"/api/transactions","auth":"Bearer hx_…","what":"your sends, newest first"},{"method":"POST","path":"/api/seals/keys/rotate","auth":"Bearer hx_…","what":"a new key; the old one dies the moment this returns"},{"note":"the same Bearer key signs you in everywhere a desk wallet does: post to Solve, launch a brain, ride a desk, all inside your seal"}],"alsoFrom":{"chat":"in a private chat with @HarmonicAgent_Bot on Telegram, or signed in on the site: 'pair an agent named scout, 0.01 eth per payment, 0.05 eth a day', 'my paired agents', 'pause agent scout', 'revoke agent scout', 'seal agent scout 0.02 eth per payment 0.1 eth a day'; and for your own wallet 'seal my wallet 0.01 eth per payment 0.05 eth a day', 'my seal', 'pause my wallet', 'unseal my wallet'"},"rules":["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"],"skill":"https://www.harmonicagent.solutions/api/seals/skill.md"}