Payout operations on Tempo
40 payees.
One signature.
A month of agency payouts, split by one rule. All but one clear themselves.
FlowRail is payout software for agencies on Tempo. Approve a run once; every payee gets a key that can pay only them, only their amount, and expires on its own.
Run total
$9,687.93
Released
$7,837.93
Awaiting signature
$1,850.00
Ada Okonkwo
$65.00
Rafa Mendes
$120.00
Yuki Tanabe
$48.50
Priya Raman
$310.00
Tomasz Wrona
$75.25
Amara Nwosu
$220.00
Lena Fischer
$95.00
Diego Salas
$180.40
Mei Lin Chow
$52.00
Oskar Nowak
$144.99
Zara Haddad
$60.00
Felix Braun
$275.00
Nia Abara
$88.75
Hugo Lefevre
$132.00
Jane Adeyemi
$1,850.00
…and 34 more routine payouts, each on its own key
Escalated
financeJane Adeyemi
$1,850.00
Known address (40d), but over the $500 auto cap. One approval releases it — the key still cannot pay anyone else.
What you get
Pay everyone fast, without handing anyone the keys.
Approve the run once
Bring a month of invoices. Two rules you set sort every line; you only sign the ones that break them.
Each key pays one person
Every payee gets their own key: capped at their exact amount, locked to their address, gone in 7 d.
- payee
- Ada Okonkwo
- can send
- $65.00
- only to
- 0xdfcd…eb57
- expires
- 7 d
Tempo enforces it
The cap, the recipient and the expiry live on-chain. A key that tries to overpay or pay someone else is reverted by Tempo, not by our code.
01 — Arrival
Money lands with no instructions
A deposit arrives. No memo tells us who to pay.
flowrail · classifierInbound deposit · 1 tx · no memo
0x91c4…0a3f$9,783.930xdfcd…eb57$65.000x5604…52b7$120.000x56de…2dbd$48.500x0742…9db6$310.000xf5df…9fab$75.250x9c94…ca2a$220.00…and 34 more, none of them labelled — plus $96.00 that matches no payee.
02 — Identity
Each address is resolved to a person
Our roster supplies a name and how long that address has been stable.
flowrail · classifierRoster match · 40/40 resolved
✓Ada Okonkwo21d✓Rafa Mendes34d✓Yuki Tanabe12d✓Priya Raman58d✓Tomasz Wrona9d✓Jane Adeyemi40d03 — Rule
Two questions, asked per line
Is this address old enough, and is the amount small enough? Both must pass.
flowrail · classifierTwo gates · all must pass
Address stable for 7+ days6/6Amount at or under $5005/61 line fails the cap
Jane Adeyemi · $1,850.00 cannot be approved by a machine.
04 — Result
The run divides itself
39 leave on their own key. One is held for a signature.
flowrail · classifierReleased
39
$7,837.93 · $200.97 avg
Held
1
financeJane AdeyemiThe thirty-nine never touch the agency key. Each spends its own delegated key, capped and locked, and expires on its own.
The shape of a run
One deposit. 40 exits. One of them stops.
Built on Tempo
Rules that hold even if FlowRail doesn't.
39 of 40
paid with no one in the loop
every line at or under $500 to a known address
1
signature for the whole run
only the line that broke a rule waited for a person
5
unsafe calls Tempo refused
each one run and recorded on Moderato testnet
“Slow, or exposed — agencies have lived with those two. FlowRail, on Tempo, is the third.”
Why FlowRail exists, in one line
Underneath
What the chain actually did.
Access key · one auto leg
- payee
- Ada Okonkwo · Creator
- recipient
- 0xdfcd…eb57 · locked, 1 address
- authorised amount
- $65.00 pathUSD · exactly this payout
- lifetime
- 7 d · standing
- tier
- auto · standing payee, within auto cap
- selector
- transfer
- issued
- 2026-01-01 00:00:00 UTC
- expires
- 2026-01-08 00:00:00 UTC
authorizeKey(key, expiry: +7 d, limits: [pathUSD, 65.00])
setAllowedCalls(key, [transfer → 0xdfcd…eb57])
Moderato testnet
4accepted5reverted- !the unauthorised transfer · 0xa809a8dbf4f0…2026-10-01
A fresh key is unrestrictedthe gap we close
Paid an address that was never allowlisted
- ✕reverts leave no hash · constraint: the lock · 0x0b156dd779e0…2026-10-01
A locked key pays nobody else
The same key, a different address
- ✕reverts leave no hash · constraint: the capped authorisation · 0xd239f832569a…2026-10-01
The authorised amount is a hard ceiling
1.000001 pathUSD against a 1.00 cap
- ✕reverts leave no hash · constraint: the expiring authorisation · 0xd29ced643a70…2026-10-01
Expiry is enforced by the chain
A transfer 70 seconds after the key expired
- ✕2026-10-01
Moderato exposes no atomic batch call
wallet_sendCalls with two memo transfers
- ✕2026-10-01
pathUSD gates recipients it has not seen
A first transfer to a brand-new address
Where it fails
The chain says no before FlowRail gets a vote.
Tempo makes authorization native: caps, expiry, recipient scope as first-class account operations, no custom contract. Remove Tempo and FlowRail has nothing left to refuse with — the limits live on-chain, not in our review logic.
- ✓transfer submittedpassed
- ✕token transfer policyPolicyForbids
- ·access keychainnot reached
- ·authorised amountnot reached
- ·recipient locknot reached
Rejected with PolicyForbids before the access key was consulted. New payees must already be inside the token's transfer policy.
The RPC rejects the method outright. We settle leg by leg with a receipt each, and we do not claim single-transaction settlement.
Start here
Bring a month of payouts. Leave with one decision.
Demo
Run the desk yourself
Load run INV-2500, watch 40 lines sort themselves, and sign the one that needs you. Every payout links to its testnet receipt.
Code
Read how it's built
The policy engine, the key lifecycle, and every claim on this page traced to a transaction on Moderato.