Docs

Using Ebbryn

Everything you need to plan your USDC payouts, understand why a plan passes or fails, and sign the moves from your own wallet.

Quickstart

Your first plan takes a few minutes and needs no wallet.

  1. 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.
  2. Read the cash rules and hard limits. Change anything you like. The template is an example, never your data.
  3. 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.
  4. On the plan, read the split, the 30-day chart and SERV’s reasons. Each reason quotes the rule it follows.
  5. 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

StepWhoWhat happens
PlanSERV ReasoningWeighs your rules, payout dates and how long each vault takes to pay out, then proposes the split and withdrawal dates.
CheckEbbryn’s codeRuns eight fixed checks. If one fails, SERV gets one retry with the failures. If it still fails, moves stay locked.
BuildIXSBuilds the unsigned approve and deposit transactions for the vault.
SignYouEvery 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.

CheckWhat it means
Amounts add up
SUM
Ready plus parked equals your balance.
Hard limit respected
CAP
Nothing parked above your limit.
No closed vaults
CLOSED
Only vaults taking deposits right now.
Every payout funded exactly once
COVER_ONCE
No payout counted twice or left out.
Enough cash kept ready
LIQUID_COVER
Ready cash covers its payouts and your buffer.
Money back in time
TIMING
Withdrawals land a day before they're needed.
Can't withdraw more than parked
REDEEM_LE_PARKED
Withdrawals never exceed what's in the vault.
No shortfall
SHORTFALL
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

  1. On Setup, pick Blank or edit a template.
  2. 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.
  3. You can add up to 20 payouts. Ebbryn plans the next 30 days.

Connect a wallet on BSC testnet

  1. Install a browser wallet such as MetaMask.
  2. On Moves, click Connect wallet. Ebbryn asks your wallet to switch to BSC testnet (chain 97) and adds it if needed.
  3. Get a little test BNB for network fees from the BNB Chain testnet faucet.
  4. 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

  1. Approve USDC. This lets the vault take exactly the deposit amount. Skipped if your wallet already approved enough.
  2. Deposit USDC. This parks the money in the IXS vault. Each transaction links to the block explorer once confirmed.

Reference

Planning windowNext 30 days from today
Payouts per planUp to 20
Park at most0 to 100% of the balance
Extra days kept ready0 to 30 days of daily spend
Planning limit5 plans per visitor every 10 minutes, 200 plans a day across everyone. The same inputs within 10 minutes reuse the last plan.
Modelgpt-6-luna-serv-kronos-multipath with Shadow Agent, via SERV Reasoning by OpenServ
VaultIXHYB - BSC on BSC testnet (chain 97). Withdraw anytime.
NetworkTestnet only. Mainnet IXS vaults require IXS verification.
Your dataSetup, 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 seeWhat 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 passRead the failed checks, adjust your rules or limits, and plan again. Nothing can be signed from a failed plan.
Moves asks you to replanA vault changed since you planned, or the plan is from an older session. Plan again.
Not enough USDC or BNBYour 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.