Skip to content

SAID-Protocol/ows-policy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SAID Protocol × Open Wallet Standard

Identity-Gated Signing for AI Agent Wallets


The Problem

Every AI agent needs a wallet. Open Wallet Standard (OWS) solves that — wallets that work across chains, frameworks, and platforms.

But a wallet without identity is a liability:

  • Anonymous agents can drain funds with zero accountability
  • No trust layer — every transaction is a leap of faith
  • No reputation — good actors and bad actors look identical
  • No audit trail — can’t trace actions back to an identity

OWS gives agents wallets. SAID gives agents identity, reputation, and trust.


The Solution

SAID Protocol is on-chain agent identity infrastructure on Solana:

  • ✅ 2,651 registered agents
  • ✅ 2,591 verified agents (97.7%)
  • ✅ 6-component composite trust scores
  • ✅ Tier system: Anonymous → Registered → Verified → Trusted → Elite
  • ✅ Live API at api.saidprotocol.com

This plugin brings SAID into the OWS policy engine:

  • Wallets can require SAID identity before signing
  • Gate on verification — unverified agents blocked
  • Gate on trust score — low-trust agents restricted
  • Dynamic spending limits based on tier

How It Works

1. Pre-Signing Check

Before signing any transaction, the SAID policy checks:

Agent requests a transaction
  ↓
OWS policy engine runs pre-sign checks
  ↓
SAID plugin verifies via API:
  ✅ Does this wallet have a SAID identity?
  ✅ Is the agent verified?
  ✅ What’s the trust score? (6-component breakdown)
  ✅ Is the transaction within spending limits?
  ↓
All checks pass → OWS signs the transaction
Any check fails → Signing denied with reason

2. Trust Score Components

SAID computes a composite trust score (0-100) from 6 components:

Component Weight Description
identity 30% Verification + profile completeness
activity 20% Feedback count + interactions
economic 20% Reputation score + passport NFT
ecosystem 15% Endpoints (MCP/A2A) + skills
longevity 10% Account age
fairscale 5% External reputation integration

Spending Tiers (research-backed defaults):

Tier Per-tx Limit Daily Cap Requirements
Anonymous $0.50 $5 No SAID identity
Registered $5 $25 Registered, not verified
Verified $50 $250 Verified, trust score <50
Trusted $250 $1,000 Verified, trust score 50-79
Elite $1,000 $5,000 Verified, trust score 80+

Our Verified tier ($50/tx) matches Coinbase AgentKit’s default per-transaction limit. Limits are configurable per platform.

3. Policy Configuration

import { SAIDPolicy } from "said-ows-policy";

// Strict: Verified + high trust score
const strict = new SAIDPolicy({
  requireVerified: true,
  minTrustScore: 50,  // Trusted tier minimum
  useDynamicLimits: true,
  blockAnonymous: true,
});

// Relaxed: Allow anyone, dynamic limits by tier
const relaxed = new SAIDPolicy({
  requireVerified: false,
  useDynamicLimits: true,
});

Installation

npm install said-ows-policy

Usage

Basic Example

import { SAIDPolicy } from "said-ows-policy";

const policy = new SAIDPolicy({
  requireVerified: true,
  minTrustScore: 50,  // Trusted tier or above
  useDynamicLimits: true,
});

const result = await policy.evaluate({
  signerAddress: "4yNvqCyocbyqMVWQsztXaW5iZAsnb8wQy8Ghg58uSN9Q",
  amountUSD: 25,
});

if (result.allowed) {
  console.log("✅ Allowed");
  console.log("Tier:", result.metadata.agentTier);        // "Verified"
  console.log("Per-tx limit:", result.metadata.spendingLimit); // 50
  console.log("Trust score:", result.metadata.trustScore);     // 39
} else {
  console.log("❌ Denied:", result.reason);
}

CLI Wrapper

For integration with OWS’s custom executable policy slot:

# Install dependencies
npm install

# Build
npm run build

# Run CLI (reads JSON from stdin, outputs JSON to stdout)
echo '{"signerAddress":"4yNvqCyocbyqMVWQsztXaW5iZAsnb8wQy8Ghg58uSN9Q","amountUSD":50}' | node dist/cli.js

Output format:

{
  "allowed": true,
  "metadata": {
    "agentTier": "Verified",
    "spendingLimit": 50,
    "trustScore": 39,
    "isVerified": true
  }
}

This CLI format is exactly what OWS expects for external policy executables.


Demo

Run the included demo to see SAID policy in action:

npm install
npm run demo

API Response Format

The /api/verify/{wallet} endpoint returns:

{
  "registered": true,
  "verified": true,
  "wallet": "4yNvqCyocbyqMVWQsztXaW5iZAsnb8wQy8Ghg58uSN9Q",
  "trustScore": {
    "score": 39,
    "tier": "bronze",
    "badges": ["verified"],
    "sources": ["said"],
    "identity": 8,
    "activity": 0,
    "economic": 3,
    "ecosystem": 3,
    "longevity": 4,
    "fairscale": 0,
    "computedAt": "2026-04-04T01:52:30.657Z"
  },
  "identity": { "name": "Kai", "twitter": "kaiclawd" },
  "reputation": { "score": 0, "feedbackCount": 0, "trustTier": "medium" }
}

OWS Integration Path

This module is designed to slot into OWS’s custom executable policy mechanism:

  1. OWS supports custom policy executables that read JSON from stdin and output JSON to stdout
  2. Our CLI wrapper (cli.ts) implements this interface
  3. OWS calls the executable before each transaction
  4. The executable queries SAID’s API and returns allow/deny decision

Architecture:

┌─────────────────┐
│   OWS Wallet    │
└────────┬────────┘
         │
         │ Pre-sign check
         ↓
┌─────────────────┐
│  SAID Policy    │
│  Executable     │
│  (CLI wrapper)  │
└────────┬────────┘
         │
         │ API call
         ↓
┌─────────────────┐
│  SAID Protocol  │
│  API            │
│  api.said       │
│  protocol.com   │
└─────────────────┘

Stats

  • Mainnet Program: 5dpw6KEQPn248pnkkaYyWfHwu2nfb3LUMbTucb6LaA8G
  • Registered Agents: 2,651
  • Verified Agents: 2,591 (97.7%)
  • Registration: Free
  • Verification: 0.01 SOL
  • Website: saidprotocol.com
  • API: api.saidprotocol.com

License

MIT


Built For

Open Wallet Standard Hackathon, April 3-4, 2026

Track 2: Agent Spend Governance & Identity

OWS gives agents wallets. SAID gives them identity and trust. Together: accountability for the agent economy.

2,651 agents already registered on SAID. This plugin makes their identities portable to every OWS wallet, on every chain.

About

SAID Protocol identity-gated signing for Open Wallet Standard

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors