Skip to content

AsterPay/erc8183-kya-hook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AsterPay KYA Hook — ERC-8183 Integration

Know Your Agent (KYA) verification gate for Agentic Commerce jobs.

This hook implements the IACPHook interface to enforce AsterPay's 5-layer Trust Framework before AI agents can participate in ERC-8183 commerce jobs.

How It Works

Client creates job with hook = AsterPayKYAHook
                    │
                    ▼
     ┌──── setProvider() ────┐
     │  beforeAction:        │
     │  ✓ Sanctions Oracle   │
     │  ✓ Trust Score ≥ N    │
     │  ✓ Score freshness    │
     └───────────────────────┘
                    │
                    ▼
     ┌──────── fund() ───────┐
     │  beforeAction:        │
     │  ✓ Same KYA checks    │
     │  ✓ Cache result       │
     └───────────────────────┘
                    │
         provider works...
                    │
     ┌─────── complete() ────┐
     │  afterAction:         │
     │  → ReputationPositive │
     └───────────────────────┘

Architecture

Contract Purpose
AsterPayKYAHook.sol Main hook — sanctions + trust score gate
IACPHook.sol ERC-8183 hook interface
IAgenticCommerce.sol Read-only ACP job interface
IAgentTrustScore.sol AsterPay trust score oracle interface
ISanctionsOracle.sol Chainalysis oracle interface

Checks Performed

  1. Sanctions screening — Chainalysis Oracle on Base (OFAC, EU, UN). Fail-closed if oracle unreachable.
  2. Trust Score — Agent must have score ≥ minTrustScore (default: 20 = verified tier)
  3. Score freshness — Score must be updated within maxScoreAge seconds (default: 3600)
  4. Tier validation — Agent must not be in "blocked" tier

Quick Start

Deploy

cd contracts/erc8183-kya-hook

# Install Foundry deps
forge install

# Deploy to Base Sepolia
ACP_ADDRESS=0x... \
TRUST_ORACLE_ADDRESS=0x... \
forge script script/Deploy.s.sol:DeployKYAHook \
  --rpc-url base_sepolia --broadcast --verify

Test

forge test -vvv

TypeScript SDK

import { createKYAHookSDK } from './ts-sdk/kya-hook';
import { ethers } from 'ethers';

const provider = new ethers.JsonRpcProvider('https://mainnet.base.org');
const signer = new ethers.Wallet(PRIVATE_KEY, provider);

const sdk = createKYAHookSDK(HOOK_ADDRESS, ACP_ADDRESS, signer);

// Pre-flight check
const result = await sdk.wouldPass('0xAgentWallet...');
console.log(result);
// { passes: true, score: 42, tier: 'verified', sanctionsClear: true }

// Create a KYA-protected job
const jobId = await sdk.createJobWithKYA({
  provider: '0xAgentWallet...',
  evaluator: '0xEvaluator...',
  expiredAt: Math.floor(Date.now() / 1000) + 86400,
  description: 'Translate document EN→FR',
});

// Fund triggers KYA check automatically
await sdk.fundJob(jobId, 100n);

Configuration

Parameter Default Description
minTrustScore 20 Minimum score (0-100). 20 = verified tier
maxScoreAge 3600 Max seconds since last score update
sanctionsEnabled true Enable Chainalysis screening

All configurable by contract owner via setMinTrustScore(), setMaxScoreAge(), setSanctionsEnabled().

Events

Event When Use
KYAVerified Agent passes all checks Index verified agents
KYABlocked Agent fails any check Alert, compliance logging
ReputationPositive Job completed Feed into ERC-8004 reputation
ReputationNegative Job rejected Feed into ERC-8004 reputation

License

MIT (hook contract) / CC0 (interfaces aligned with ERC-8183 and EIP-Agent Trust Score)

About

AsterPay KYA Hook for ERC-8183 Agentic Commerce — sanctions screening + trust score gate before job funding. Live on Base Sepolia.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors