[Rules for AI agents, enforced on Solana]

Write the rules once.Your agent can’t break them.

Edict is a vault for AI agents on Solana. Your agent gets its own key and a budget, and every move it makes is checked by the program first: caps, allowed programs and wallets, a wait on big moves, and a freeze you can pull at any time.

Checks
4 per move
Caps roll over
any 60 min
Freeze
1 tap
EDICTLaunching soon on Solana · CA posted on X at launch
Works withJupiterKaminoDriftRaydiumMeteoraOrca
app.edictcoin.com/vaults/agent-7/moves
agent-7 / Moves
Solana · Edict programOpen
TimeMoveTargetVerdict
15:26Swap 4 SOL → JUPJupiterPassed
15:21Lend 3 SOLKaminoPassed
15:17Swap 2 SOL → USDCJupiterPassed
Move M-1042
Swap 4 SOL → JUP · Jupiter · 4 SOL
Passed
->Open not frozen✓ passed
->Destination Jupiter · on the program list✓ passed
->Caps 4 / 5 per move · 9 / 10 in 60 min✓ passed
->Hold line under 20 SOL · moves now✓ passed
Settled in 1 slot · balance checkedFunds moved

Live demo · every verdict comes from Edict’s rule engine

[How it works]

From an empty wallet to a guarded agent.Five steps, five minutes.

You create the vault from your wallet, write the rules, list what the agent may touch, fund it, and hand the agent a key that can only ask. Each step is one transaction you can read on Solscan.

Read the quickstart
Step 1
Wallet → first guarded move · agent-7

From your own wallet. You are the owner; a guardian key is optional.

app.edictcoin.com/vaults/new
->Vault agent-7 · owner 5yHq…c9Wd · guardian 9xaE…Lm4Psigning…
->Rules SOL 5 / 10 / 40 · hold over 20 · USDC 500 / 1,500 / 5,000queued
->Allowlist Jupiter, Kamino · Treasury, Payrollqueued
->Deposit 60 SOL · 4,000 USDC → vault 3pZk…Vt1uqueued
->Agent 7Rk3…q2Fd · can ask, can’t takequeued

[Rules]

A move asks four questions.If one answer is no, nothing moves.

The rules live in the program, not in your agent’s prompt. A prompt can be talked around. A Solana program can’t: it asks the same four questions on every move, in the same order.

Read the rulebook
agent-7 · rulebook ↔ Edict program
1↔

Is the vault open? You or your guardian can freeze it in one tap, and three refused moves in ten minutes freeze it on their own.

vault.frozen → refuse(1), nothing moves
tripwire_strikes = 3 · tripwire_window = 600 s
2↔

Is the destination on your list? Swaps go to programs you allowed, payments go to wallets you allowed. Nothing else gets a signature.

allow_program(Jupiter) · allow_program(Kamino)
allow_recipient(Treasury) · allow_recipient(Payroll)
3↔

Is it within the caps? Per move, in any 60 minutes, in any 24 hours. The windows roll, so there is no hour boundary to spend across.

set_rule(SOL, per_tx: 5, per_hour: 10, per_day: 40)
rings: 13 × 5 min · 25 × 1 h, rolling
4↔

Is it a big move? Over the hold line it waits six hours, and you can cancel it. If nobody releases it in time, it expires.

hold_above: 20 SOL · hold_delay: 6 h
hold_ttl: 48 h · queue_transfer → release_hold_sol

[Try it]

Pick a move.See which rule answers.

This is Edict’s rule engine on a demo vault: 5 SOL a move, 10 SOL in any hour, Jupiter and Kamino allowed, two known wallets, holds over 20 SOL. Try your agent’s moves, then try what a thief would do with its key.

app.edictcoin.com/vaults/demo/try
demo · your agent’s movesOpen
#MoveTargetRun
SOL · any 60 min0 / 10
USDC · any 60 min0 / 1,500
Run as
Move journal

Pick a move on the left.

[Caps]

What your agent spendsnever passes what you allowed.

Fixed hourly buckets let an agent spend the cap at 10:59 and again at 11:01. Edict’s windows roll: 10 SOL an hour means 10 SOL in any 60 minutes, and the day cap works the same way over any 24 hours.

How the windows roll
app.edictcoin.com/vaults/agent-7/caps
Spent in any 60 min
10 SOL
≤
Cap per hour
10 SOL
->Swap 5 SOL 10:59 · counted✓ passed
->Swap 5 SOL 11:00 · counted · 10 of 10✓ passed
->Swap 1 SOL 11:01 · a fixed hourly bucket would allow 10 more✕ refused
->Swap 1 SOL 11:58 · still inside 60 min of 10:59✕ refused
->Swap 5 SOL 12:06 · window rolled✓ passed
Last 24 hours · agent-7 · 15-minute slots

09:58 · refused, over the 60-minute cap · nothing moved

Every square is a quarter hour. The brighter it is, the more the agent moved; the coral ones are moves the window refused because the last 60 minutes were already full.

[Recovery]

Lose the agent,not the vault.

If an agent’s key leaks or its prompt gets hijacked, the damage stops at the caps. Refusals trip the freeze, you hand the agent a new key, and you carry on. Your own wallet can always pull the funds out.

->Tripwire 3 refused moves in 4 min · vault frozen✓ done
->Freeze confirmed by guardian 9xaE…Lm4Pqueued
->Rotate agent key 7Rk3…q2Fd → 4mZq…t8Aaqueued
->Unfreeze signed by the owner 5yHq…c9Wdqueued
Old agent keyFrozen
7Rk3…q2Fd
0 moves allowed
New agent keyWaiting
4mZq…t8Aa
10 SOL / hour
Funds stay in the vault the whole time
What Edict checks after every program call
  • Balance deltaevery vault token account the call touched, read before and after
  • No approval lefta delegate on any vault account undoes the whole call
  • Owner unchangednobody can take over a vault token account
  • SOL countedlamports leaving the vault count toward the caps
  • Owner rescueyour wallet can withdraw at any time, even while frozen

[Use cases]

One vault per agent.Same four questions.

Set one up
SetupREADY
Trading agent
10 SOL / hour
Swaps on Jupiter, lends on Kamino
Programs
Jupiter, Kamino
Hold line
20 SOL
Use this setup
SetupREADY
Payments agent
5,000 USDC / day
Pays invoices to known wallets
Recipients
12 wallets
Hold line
2,000 USDC
Use this setup
SetupREADY
Treasury agent
2,000 USDC / move
Parks idle cash in lending
Programs
Kamino, Marginfi
Hold line
10,000 USDC
Use this setup
SetupREADY
Market maker
25 SOL / hour
Quotes on Drift and Phoenix
Programs
Drift, Phoenix
Hold line
off
Use this setup

[Token]

The program is free.The coin is EDICT.

EDICT is the project’s coin on Solana, launched on Pump.fun. You never need it to use a vault: every agent can use the program. The coin is how the project is funded and followed while the program grows.

pump.fun · EDICT
EDICT / SOL
Soon
launching on Pump.fun
Contract
posted on X at launch
Network
Solana
Launch
Pump.fun
Supply
1,000,000,000
CA at launch

[Questions]

Read the answersbefore you hand over a key.

Read the docs

What does Edict need to start?

A Solana wallet for you, a fresh key for your agent, and a few minutes. You create the vault, write the rules and fund it. The agent only ever holds its own key, and that key can only ask.

Which agents work with it?

Anything that can sign a Solana transaction: ElizaOS, Solana Agent Kit, a Python script, your own bot. The agent calls Edict instead of the target program; Edict checks the move and makes the call for it.

Who holds the funds?

The vault does: an address only the Edict program can sign for. Your wallet is the owner and can withdraw at any time, even while the vault is frozen.

What if the agent’s key leaks?

The thief gets what the agent had: the caps. Moves to new wallets or new programs are refused, refusals trip the freeze, and you rotate the key from your wallet.

What if the agent gets prompt-injected?

Same answer. Edict doesn’t read the prompt, it reads the transaction. A hijacked agent can only make the moves your rules already allow.

Can a refused move be forced?

No. Only the owner can change the rules, rule changes are their own transactions, and they are visible on chain the moment they land.

Which rules run on chain?

All four: the freeze, the program and wallet lists, the caps per move, per 60 minutes and per 24 hours, and the hold line. They run inside the program on every move, before anything leaves.

How are caps counted on a swap?

By balance. Edict reads every vault token account the call touches before and after, and counts what left. That works for any program, not only plain transfers.

Do I need the coin to use it?

No. The program is free for every agent. EDICT is the project’s coin on Pump.fun; holding it is not required for anything.

[Your agent]

Write your first rule.Edict checks the rest.

Create a vault from your wallet, set a cap and hand your agent a key. It takes about five minutes, and the first rule is the one that matters.

app.edictcoin.com/vaults/new
New vault / DraftDraft
->Owner
->Agent key generated in the app, never leaves your agentqueued
->Rules SOL 5 a move · 10 an hour · 40 a dayqueued
->Allowlist Jupiter, Kamino · Treasuryqueued
->Hold line over 20 SOL waits 6 hoursqueued
->Guardian optional · a second key that can only freezequeued
Edict program · Solana4 checks per moveRolling 60 min and 24 h windows
Demo vaults on this page