AI agents
An agent that pays a few thousandths of a cent per API call, data point or inference. One channel per service, thousands of calls, and no one waits for the chain.
The payer picks a payee, an asset (ETH or any ERC-20), an amount and a dispute window. The contract records the channel and holds the deposit. The only cost is the gas of this one transaction.
Keep scrolling. It goes sideways.
"I owe you this much in total." The newest ticket replaces the last. No fee, no wait, no transaction. These are real EIP-712 tickets, signed and checked by your browser as you scroll.
Payer
PayeeThe contract recovers the signer from the signature, checks it is the payer, and pays out exactly what it says. The rest of the deposit goes back to the payer, and the channel closes. Whatever the number of payments, that is transaction number two.
If the payee vanishes, the payer asks to close and a window starts. The payee can still settle inside it. If nobody comes, the whole deposit returns to the payer when the window ends. The payer cannot cheat the payee, and the payee cannot take more than was signed.
Execution gas only, at the price read from the chain: 0.020 gwei (last value seen). One ETH transfer is 21,000 gas, about -. Opening a channel is about - gas and settling about -. Gas here is already tiny, so the gain is not magic: it is one settlement instead of thousands, no block to wait for, and payments that can be smaller than their own fee.
The payer signs a typed message (EIP-712) with the same secp256k1 key as their Ethereum wallet. The contract recovers the signer with ecrecover, then pays out the amount in it.
// EIP-712 typed data, signed by the payer (65 bytes) domain Hummingbird v1, chain 4663, the contract channel bytes32 // which channel amount uint256 // total owed so far seq uint64 // goes up every ticket
open(payee, token, deposit, window, nonce) // payer: locks the deposit, ETH or any ERC-20 settle(id, amount, seq, signature) // payee: recovers the signer, pays amount, refunds the rest requestClose(id) // payer alone: starts the dispute window finalize(id) // anyone, after the window: refunds the payer if no ticket came cooperativeClose(id, amount, payeeSignature) // a payee-signed final amount: close at once, no waiting
Status: written, compiled and tested, not audited, not deployed. Its address is already fixed by the compiled bytecode (CREATE2, salt 0): -
An agent that pays a few thousandths of a cent per API call, data point or inference. One channel per service, thousands of calls, and no one waits for the chain.
Charge by the request without sign-ups, invoices or card fees. The caller signs, the server verifies in well under a millisecond and answers.
Pay by the second of video, the minute of compute or the move in a game, and settle once the session is over.
Yes. Your browser creates fresh secp256k1 keys, opens a simulated channel and signs EIP-712 tickets with the same code the tests run, for every sip in the garden and every step of the scroll. No funds exist and nothing is sent anywhere.
The payee settles the newest ticket and is paid what was signed. Nothing is lost beyond the next unsigned payment, which is why services usually ask for the next ticket before the next response.
The payer asks to close. After the dispute window anyone can finalize and the contract refunds the whole deposit.
No. The contract is written, compiled and tested on an in-process EVM (29 tests), but it is not audited and not deployed. The read-only checks against Robinhood Chain confirm it: there is no code at its future address yet. Nothing on this site sends a transaction.
No. The contract has no token and no fee. See the $HUM page.
Batching still needs the payer to be online and the payee to wait. A ticket is paid the moment it is signed, from a phone, a script or an agent, with no transaction in the loop.

Open a channel in the playground, pay it as many times as you like and settle it. No wallet, no signing prompt, nothing to install.