EdgePass gives agents your rules, not your keys.
Live Demo โ ย ยทย npm โ ย ยทย Contract โ ย ยทย Docs โ
The best infrastructure is invisible.
Every developer building an autonomous agent hits the same wall:
| Option | Approach | Problem |
|---|---|---|
| A | Give the agent full wallet access | Catastrophic risk โ unlimited exposure |
| B | Human approves every transaction | Defeats the purpose of automation |
| C | Build custom policy logic per app | 6โ8 weeks of infrastructure before any business logic |
There is no Option D. No standard primitive for saying:
"This agent can spend up to $300, at these merchants, auto-approve under $50, ask me before anything over $100, and shut down in 48 hours โ without ever touching my keys."
Edge is Option D.
Edge is programmable trust infrastructure. Users define boundaries once. Agents execute freely within them. Unsafe actions escalate automatically.
The atomic unit is the EdgePass โ a Sui Move object encoding a complete trust policy:
budget: $300 ยท auto-approve: < $50 ยท escalate: > $100 ยท merchants: [...] ยท expiry: 48h
Without Edge, every developer builds the same infrastructure from scratch:
โ Policy engine who can the agent pay? how much?
โ Escalation system when does the human get notified?
โ Audit trail what did the agent do? prove it.
โ Budget tracker how much is left?
โ Expiry system when does authority end?
โ Revocation how do I stop it immediately?
โ On-chain state where does the policy live?
With Edge:
pnpm add @edge-protocol/sdkconst pass = await sdk.create(EdgePass.fromTemplate('festival', { owner }), signer);
const outcome = await sdk.execute(pass, { merchant, amount }, signer);
// โ
policy enforced ยท ๐ audit logged ยท โ done10 lines of code. 8 weeks of infrastructure. Gone.
The real proof: Claude autonomously manages festival purchases within an EdgePass.
๐ง Claude: "Shuttle from parking โ $18.50 at Shuttle Express"
โ๏ธ PolicyEngine: โ
auto-approved ยท under $50 threshold ยท trusted merchant
โ Sui: execute_transaction ยท Success ยท checkpoint #348722271
๐ง Claude: "Drinks for the group โ $32 at Hydra Bar"
โ๏ธ PolicyEngine: โ
auto-approved ยท within policy limits
โ Sui: execute_transaction ยท Success
๐ง Claude: "VIP artist meet & greet โ $149"
โ๏ธ PolicyEngine: โ ๏ธ escalated ยท exceeds $100 threshold
๐ค User: approves via modal (Face ID in production)
โ Sui: execute_transaction ยท Success
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
3 transactions executed autonomously
$54.50 spent ยท $245.50 remaining
0 wallet popups ยท every action verified on Suiscan
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Every decision cryptographically verified on-chain. Every receipt immutably stored on Walrus.
npm install @edge-protocol/sdk
# or
pnpm add @edge-protocol/sdk
# or
yarn add @edge-protocol/sdkimport { EdgePass, MIST_PER_SUI } from '@edge-protocol/sdk';
const sdk = new EdgePass({ network: 'mainnet', enokiApiKey: 'YOUR_KEY' });
// From a template โ sensible defaults for common use cases
const pass = await sdk.create(
EdgePass.fromTemplate('festival', {
approvedMerchants: ['Shuttle Express', 'Hydra Bar', 'Stage Access VIP'],
owner: userAddress,
}),
signer
);
// Or from scratch โ full control
const pass = await sdk.create({
budget: 300n * MIST_PER_SUI,
autoThreshold: 50n * MIST_PER_SUI,
escalateThreshold: 100n * MIST_PER_SUI,
approvedMerchants: ['Shuttle Express', 'Hydra Bar'],
expiryMs: 48 * 60 * 60 * 1000,
owner: userAddress,
}, signer);const outcome = await sdk.execute(pass, {
merchant: 'Shuttle Express',
amount: 18_500_000_000n, // 18.5 SUI in MIST
}, signer);
switch (outcome.status) {
case 'approved':
console.log('executed:', outcome.digest);
// audit log written to Walrus automatically
break;
case 'escalated':
await notifyUser(outcome.reason);
break;
case 'blocked':
console.log('policy rejected:', outcome.reason);
break;
}// Zero network calls โ pure TypeScript, sub-millisecond
const preview = sdk.validate(pass, { merchant, amount });
// { allowed: boolean, requiresEscalation: boolean, reason: string }await sdk.revoke(pass, signer);
// all future execute() calls return 'blocked'Pre-configured trust boundaries for the most common use cases:
| Template | Budget | Auto โค | Escalate โฅ | Max/tx | Expiry |
|---|---|---|---|---|---|
festival |
300 SUI | 50 SUI | 100 SUI | 200 SUI | 48h |
gaming |
50 SUI | 2 SUI | 10 SUI | 10 SUI | 4h |
subscription |
200 SUI | 20 SUI | 50 SUI | 50 SUI | 30d |
defi |
10,000 SUI | 500 SUI | 1,000 SUI | 2,000 SUI | 7d |
enterprise |
50,000 SUI | 1,000 SUI | 5,000 SUI | 10,000 SUI | 30d |
Every template is a starting point โ override any field:
const pass = await sdk.create(
EdgePass.fromTemplate('defi', {
budget: 25_000n * MIST_PER_SUI,
approvedMerchants: ['DeepBook', 'Cetus', 'Turbos'],
owner: userAddress,
}),
signer
);User creates EdgePass (once)
โ
โผ
Agent calls sdk.execute() โ many times, autonomously
โ
โโโถ ๐ PolicyEngine.validate()
โ Pure TypeScript ยท no network ยท <1ms
โ โโ active? expired? merchant in allowlist?
โ โโ amount within budget? below maxPerTx?
โ โโ amount > escalateThreshold? โ โ ๏ธ escalate
โ โโ amount โค autoThreshold? โ โ
auto-approve
โ
โโโถ โก ExecutionEngine โ PTB (atomic)
โ validate โ execute โ update spent โ emit event
โ if any step fails โ everything reverts ยท no partial state
โ
โโโถ ๐ Walrus โ immutable audit receipt
cryptographically committed ยท decentralized ยท permanent
Five primitives. All native to Sui. None exist anywhere else.
๐ zkLogin
Invisible wallet from Google login. No seed phrase, no MetaMask.
On Ethereum: weeks of account abstraction infrastructure.
On Sui: one API call.
โฝ Sponsored Transactions
Users never pay gas. Protocol-level primitive.
On Ethereum: deploy and maintain a Paymaster contract.
On Sui: one API key.
๐งฑ Programmable Transaction Blocks
Policy check + execution + state update + audit event โ one atomic block.
If any step fails, everything reverts. No race conditions. No partial state.
Native to Sui. Doesn't exist anywhere else.
๐ฆ Object Model
EdgePass is a first-class owned object in the user's wallet.
An agent executes against it without ever taking ownership.
Trust enforced at the protocol level, not application code.
On Ethereum: a contract mapping the developer can modify.
On Sui: an object only the owner can touch.
๐ Walrus
Every execution writes an immutable audit receipt to decentralized storage.
Built by the same team as Sui. Byzantine fault-tolerant. Erasure-coded.
Not IPFS. Not S3. Native.
You could build a worse version of Edge on Ethereum in months. On Sui it took 48 hours โ because every primitive was already there.
The same three lines work across every vertical:
| Vertical | Template | The agent does |
|---|---|---|
| ๐ช Consumer / Festival | festival |
Purchases at approved vendors, escalates big spends |
| ๐ฎ Gaming | gaming |
In-game micro-purchases within session budget |
| ๐ฆ Subscriptions | subscription |
Recurring payments to approved services |
| ๐ DeFi / Trading | defi |
Trades on approved DEXes within risk parameters |
| ๐ข Enterprise / Payroll | enterprise |
Vendor payments with compliance audit trail |
| ๐ค AI Agent Platforms | any | Any LLM making autonomous spending decisions |
| ๐ฆ Institutional | enterprise | Fireblocks custody + Edge policy = complete stack |
๐ Network: Sui Testnet (Mainnet pending)
๐ฆ Package: 0x9f4065009494aa5acd92a5c72a6c22ce80939b2bddae3b34345459bc98d2501d
๐ Deployer: 0xe759eaf1a47566836f825b96a8d12e55b858df1be7d86b032f449638a93489c9
๐งพ Tx Digest: 64fovgDj7P5DX9mNDTEEmEwVU2cxxJhQvnZq2eos1s84
cd packages/sdk && pnpm testโ auto-approves transactions under threshold
โ escalates transactions above threshold
โ blocks merchants not in approved list
โ blocks when remaining budget is exceeded
โ blocks when EdgePass has expired
โ blocks when EdgePass is inactive
Test Suites: 1 passed
Tests: 6 passed, 6 total โ
# Clone and install
git clone https://github.com/fluturecode/edge.git
cd edge && pnpm install
# Set environment variables
cp apps/web/.env.example apps/web/.env.local
# Add: NEXT_PUBLIC_ENOKI_API_KEY, NEXT_PUBLIC_GOOGLE_CLIENT_ID, ANTHROPIC_API_KEY
# Run the demo app
cd apps/web && pnpm dev
# โ http://localhost:3000
# Run SDK tests
cd packages/sdk && pnpm test
# Build SDK
cd packages/sdk && pnpm buildedge/
โโโ ๐ฑ apps/web/ Next.js 15 demo app
โ โโโ app/
โ โ โโโ page.tsx Login โ terminal typewriter, zkLogin
โ โ โโโ auth/callback/ zkLogin callback, Enoki address derivation
โ โ โโโ dashboard/ Main dashboard, EdgePass card
โ โ โโโ dashboard/create/ EdgePass creation + PTB preview + terminal log
โ โ โโโ dashboard/activity/ Festival Mode simulation + Walrus audit
โ โ โโโ dashboard/agent/ ๐ค AI agent demo โ Claude + EdgePass
โ โโโ lib/
โ โ โโโ signer.ts zkLogin signer, gas coin resolution
โ โ โโโ zklogin.ts ZK proof generation via Enoki
โ โ โโโ walrus.ts Walrus HTTP API (write/read blobs)
โ โ โโโ seal.ts Seal policy encryption
โ โโโ app/api/
โ โโโ sign/route.ts Transaction signing + Sui execution
โ โโโ zkp/route.ts ZK proof generation via Enoki
โ โโโ agent/route.ts Claude API for autonomous decisions
โ
โโโ ๐ฆ packages/sdk/ @edge-protocol/sdk
โ โโโ src/
โ โโโ core/
โ โ โโโ EdgePass.ts Main API + fromTemplate()
โ โ โโโ PolicyEngine.ts Validation logic (pure TS, 6/6 tests)
โ โ โโโ ExecutionEngine.ts PTB builder + chain execution
โ โโโ utils/
โ โโโ types.ts All TypeScript types
โ โโโ constants.ts Templates + Package IDs + MIST_PER_SUI
โ
โโโ ๐ contracts/navis/
โโโ sources/edge_pass.move โ
Deployed to Sui testnet
Phase 1 โ Foundation โ shipped
- zkLogin onboarding โ invisible wallet from Google
- EdgePass creation โ real Move object on-chain
- PolicyEngine โ 6/6 tests, pure TypeScript
- Festival Mode simulation โ all 5 transaction types
- ๐ค AI agent demo โ Claude making real autonomous decisions
- ๐ Walrus audit logs โ live blobs on testnet
- ๐ Seal policy encryption
- Move contract โ deployed to Sui testnet
- SDK on npm โ
@edge-protocol/sdk@0.1.2 - CI/CD โ GitHub Actions contract deployment
Phase 2 โ Trust Layer ๐จ in progress
- Agent reputation system โ on-chain scoring across sessions
- Composable delegation โ org hierarchy trust trees
- Multi-token support โ USDC, USDT, any Sui coin
- Events โ
on('approved'),on('escalated'),on('blocked') - Mainnet deployment
Phase 3 โ Protocol ๐ coming
- Cross-agent coordination โ multi-agent quorum execution
- Intent-based policies โ natural language โ on-chain rules
- Edge Protocol DAO โ community governance
- Cross-chain EdgePasses
Before Stripe, every developer built their own payment processing. After Stripe, you call
stripe.charge().Edge is
stripe.charge()for autonomous agent trust.
The agentic economy is already here:
- 140M+ autonomous agent payments completed in 9 months
- $43M+ in agent-managed transaction volume
- Growing exponentially as AI adoption accelerates
Every one of those agents needs a trust boundary. Today, every team builds their own. With Edge, every team ships in a day.
The best infrastructure is invisible.
Built with โฅ by @fluturecode for Sui Overflow 2026 โ Agentic Web track.
pnpm add @edge-protocol/sdk
MIT License