Quickstart
Your first plan takes a few minutes and needs no wallet.
- Open Setup and pick the Payroll team template. It fills in a 128,400 USDC balance, contractor payroll on the 1st and 15th, and a daily agent top-up.
- Read the cash rules and hard limits. Change anything you like. The template is an example, never your data.
- Click Plan my cash. SERV Reasoning drafts a plan and Ebbryn runs its eight checks. This usually takes under a minute, and can take up to two.
- On the plan, read the split, the 30-day chart and SERV’s reasons. Each reason quotes the rule it follows.
- Click Review moves to see the exact deposit you would sign. Connecting a wallet is optional until you want to sign.
Want to see the checks catch a bad plan first? Open the recorded plan Ebbryn rejected.
How Ebbryn works
Ebbryn splits your USDC into two parts. Ready cash stays in your wallet for payouts that are close. Parked cash goes into an IXS real-world-asset vault, and Ebbryn plans a withdrawal so it’s back in your wallet at least a day before the payout it funds.
Who decides what
| Step | Who | What happens |
|---|---|---|
| Plan | SERV Reasoning | Weighs your rules, payout dates and how long each vault takes to pay out, then proposes the split and withdrawal dates. |
| Check | Ebbryn’s code | Runs eight fixed checks. If one fails, SERV gets one retry with the failures. If it still fails, moves stay locked. |
| Build | IXS | Builds the unsigned approve and deposit transactions for the vault. |
| Sign | You | Every transaction is signed in your own wallet. Ebbryn never holds keys or funds. |
Rules and hard limits
Your cash rules are plain English, for example “Keep 3 days of agent spend ready.” SERV reads them and explains how it followed them. Your two hard limits are numbers that code enforces: the most you’ll park, as a percentage of your balance, and extra days of daily spend kept ready. If a rule and a hard limit disagree, the hard limit wins.
Withdrawals don’t happen by themselves
A planned withdrawal is a date, not an automatic action. On that date you come back to Ebbryn and sign it. Use Add to calendar on the plan or moves screen so you don’t miss it.
Why a plan can be trusted
- Every passing plan is signed by the server, so it can’t be edited in the browser before moves are built.
- Before building moves, Ebbryn checks the live vaults again. If a vault closed since you planned, you’re asked to replan.
- Ebbryn only accepts transactions aimed at the vault and USDC contracts it expects, and checks that the approval is exactly the deposit amount.
The eight checks
Every plan passes all eight, or nothing can be signed.
| Check | What it means |
|---|---|
Amounts add upSUM | Ready plus parked equals your balance. |
Hard limit respectedCAP | Nothing parked above your limit. |
No closed vaultsCLOSED | Only vaults taking deposits right now. |
Every payout funded exactly onceCOVER_ONCE | No payout counted twice or left out. |
Enough cash kept readyLIQUID_COVER | Ready cash covers its payouts and your buffer. |
Money back in timeTIMING | Withdrawals land a day before they're needed. |
Can't withdraw more than parkedREDEEM_LE_PARKED | Withdrawals never exceed what's in the vault. |
No shortfallSHORTFALL | Your balance covers every payout in the window. |
Guides
Write cash rules that work
- Name the payout: “Never be short for contractor payroll” beats “be safe”.
- Use numbers: “keep at least half the balance ready” or “keep 5 days of agent spend ready”.
- Put anything that must never be broken in the hard limits, not the rules text. Code enforces limits exactly.
Add your own payouts
- On Setup, pick Blank or edit a template.
- For each payout, set a name, an amount in USDC, a first date and how often it repeats: One time, Every day, or 1st and 15th.
- You can add up to 20 payouts. Ebbryn plans the next 30 days.
Connect a wallet on BSC testnet
- Install a browser wallet such as MetaMask.
- On Moves, click Connect wallet. Ebbryn asks your wallet to switch to BSC testnet (chain 97) and adds it if needed.
- Get a little test BNB for network fees from the BNB Chain testnet faucet.
- You also need IXS test USDC. Only IXS can issue it, so without it you can review the moves but not send them.
Sign the moves
- Approve USDC. This lets the vault take exactly the deposit amount. Skipped if your wallet already approved enough.
- Deposit USDC. This parks the money in the IXS vault. Each transaction links to the block explorer once confirmed.
Reference
| Planning window | Next 30 days from today |
|---|---|
| Payouts per plan | Up to 20 |
| Park at most | 0 to 100% of the balance |
| Extra days kept ready | 0 to 30 days of daily spend |
| Planning limit | 5 plans per visitor every 10 minutes, 200 plans a day across everyone. The same inputs within 10 minutes reuse the last plan. |
| Model | gpt-6-luna-serv-kronos-multipath with Shadow Agent, via SERV Reasoning by OpenServ |
| Vault | IXHYB - BSC on BSC testnet (chain 97). Withdraw anytime. |
| Network | Testnet only. Mainnet IXS vaults require IXS verification. |
| Your data | Setup, plans and transaction hashes are saved in this browser only. See Privacy. |
API
The app runs on three JSON endpoints you can call directly.
GET /api/vaults
Live IXS vaults with network, withdrawal timing and whether each accepts deposits right now.
POST /api/plan
Returns a plan, SERV’s reasons, the result of every check and, if all pass, a signature. Counts toward the planning limit.
curl -X POST https://ebbryn.midelabs.xyz/api/plan \
-H 'content-type: application/json' \
-d '{
"balance": 128400,
"payouts": [
{"id": "payroll", "label": "Contractor payroll", "amount": 42000,
"date": "2026-10-01", "repeat": "semimonthly"},
{"id": "agents", "label": "Agent fleet top-up", "amount": 1200,
"date": "2026-09-24", "repeat": "daily"}
],
"rules": "Never be short for payroll. Keep 3 days of agent spend ready.",
"limits": {"maxParkedPct": 60, "minLiquidDays": 3}
}'repeat is none, daily or semimonthly (the 1st and 15th).
POST /api/moves
Takes the inputs, plan and signature from /api/plan plus your wallet address as owner, and returns the unsigned IXS transactions. A plan that was edited or no longer passes against live vaults is rejected.
Troubleshooting
| You see | What to do |
|---|---|
| “Planning is paused for a few minutes to protect shared credits.” | You hit the planning limit. The screen counts down until you can plan again. |
| “Planning is paused while Ebbryn’s SERV credits are topped up.” | The shared SERV balance ran out. Nothing was changed. Try again later. |
| “IXS didn’t answer in time…” | The IXS testnet API was slow. Wait a minute and try again. |
| The plan didn’t pass | Read the failed checks, adjust your rules or limits, and plan again. Nothing can be signed from a failed plan. |
| Moves asks you to replan | A vault changed since you planned, or the plan is from an older session. Plan again. |
| Not enough USDC or BNB | Your wallet needs IXS test USDC for the deposit and a little test BNB for fees. |
FAQ
Does Ebbryn hold my money?
No. You sign every transaction in your own wallet, and Ebbryn never sees your keys.
Is this financial advice?
No. Ebbryn turns the rules you set into a proposed schedule. You decide whether to sign anything.
Can I use real funds?
No. Ebbryn is a testnet build for the OpenServ SERV Hackathon and hasn’t been audited.
Why does planning take up to two minutes?
SERV reasons over your rules and a second agent reviews the draft before it’s returned. If a request stalls, Ebbryn sends a second one and uses whichever finishes first.
What if SERV makes a mistake?
That’s what the checks are for. In testing, SERV once funded the same payroll twice. The checks rejected it and nothing could be signed.