SCROLL TO SET THE BOUNDARY01

THE PERMISSION LAYER FOR AI AGENTS

LET AGENTS WORK.STOP THEMWHEN IT MATTERS.

One approval inbox for every agent. Routine work keeps moving. Sensitive actions stop for you.

EXPLORE VETO ↓

Chain ID 4663Ethereum L2ETH gas

VETOACTION / 4821

research-agent

SEND EMAIL

team@example.com

Weekly research report

report.pdf

external_communication

APPROVAL REQUIRED

ACTION
WAITING

AUTONOMY / BOUNDARY

AGENTS
MOVE FAST.

SO SHOULD
PERMISSION.

ACTION / 4821
WAITING

VETO / ROBINHOOD CHAIN

ONE CHECK.
THEN ONCHAIN.

Connect Phantom, add Robinhood Chain, and route consequential agent actions through VETO before execution.

OPEN EXPLORER ↗
NETWORK
RH

ROBINHOOD
CHAIN

CHAIN ID
4663
GAS TOKEN
ETH
TYPE
ETHEREUM L2
WALLET
NOT CONNECTED

THE PROBLEM / 002

AUTONOMY
WITHOUT
BOUNDARIES
ISN'T CONTROL.

AGENT / research-agent

01READ DOCUMENTALLOW →
02SEARCH WEBALLOW →
03ANALYZE FILEALLOW →
04CREATE DRAFTALLOW →
05SEND EMAILSTOP ■

EXTERNAL SIDE EFFECT VETO

THE POLICY / LIVE

ROUTINE WORK
KEEPS MOVING.
IMPORTANT ACTIONS
STOP.

01READ_FILE
ALLOW
02SEARCH_WEB
ALLOW
03CREATE_DRAFT
ALLOW
04SEND_EMAIL
ASK
05DELETE_FILE
ASK
06CHANGE_PERMISSION
DENY

NOT EVERY
ACTION
NEEDS YOU.

THE IMPORTANT
ONES DO.

THE OBJECT / 003

THE
ACTION.

Before a sensitive action executes, VETO turns intent into something you can inspect.

VETOACTION / 4821
research-agent
Who wants to act?
send_email()
What will execute?
to: team@example.com
subject: Weekly report
attachment: report.pdf
What exactly will happen?
external_communication
Which rule matched?
external_side_effect
Why did it stop?
ASK
What happens next?

CONSEQUENCE / 004

SEE IT
BEFORE
IT HAPPENS.

NO EMAIL SENT.

External state is unchanged.

PROPOSED ACTIONsend_email()
TO
team@example.com
SUBJECT
Weekly research report
ATTACHMENT
report.pdf

EXTERNAL EMAIL SENT.

Waiting behind boundary.

POLICY OUTPUT

THREE
DECISIONS.

ALLOW

Action continues automatically.

ASK

Action waits for approval.

DENY×

Action stops.

RULES / 005

TEACH VETO
WHEN TO STOP.

Click any decision to change the boundary.

ACTIONDECISION

RULE BUILDER / INLINE POLICY

WHENACTIONsend_emailANDrecipient.domainNOT EQUALcompany.comTHENASK
IFsend_emailTO EXTERNAL DOMAINTHENASK

APPROVAL INBOX / 006

ONE INBOX.
EVERY AGENT.

[ ACTION / AGENT ]
ACTIONAGENTINTENTDECISIONAGE
4821research-agentSEND EMAILASKNOW
4820deploy-agentDEPLOY PRODUCTIONASK2M
4819ops-agentDELETE FILEASK8M
4818content-agentPUBLISH POSTASK12M

MULTI-AGENT / 007

YOUR AGENTS.
ONE BOUNDARY.

research-agent
deploy-agent
email-agent
content-agent
ops-agent
VETO
EXECUTION →

DON'T REVIEW
EVERYTHING.

REVIEW
WHAT MATTERS.

READSEARCHPARSEDRAFTREADSEARCHPARSEDRAFTREADSEARCHPARSEDRAFTREADSEARCHPARSEDRAFTREADSEARCHPARSEDRAFTSEND ■

AUDIT / 008

EVERY
DECISION
LEAVES
A RECORD.

ACTION_PROPOSED
POLICY_MATCHEDexternal_communication
DECISION_REQUIREDASK
USER_APPROVEDUSER
ACTION_RELEASED
ACTION_EXECUTEDSUCCESS
YOU BUILD
THE AGENT.
VETO BUILDS
THE BOUNDARY.

VETO / DEVELOPERS

ONE CHECK
BEFORE
THE TOOL CALL.

Send sensitive agent actions through VETO before execution.

01 const action = await veto.propose({
02 agent: 'research-agent',
03 tool: 'send_email',
04 arguments: { to, subject, attachment },
05 });
06
07 if (action.decision === 'ALLOW') {
08 await execute(action);
09 }