Skip to content

Plugin: Wallet reputation scoring for counterparty trust assessment #532

@jacobsd32-cpu

Description

@jacobsd32-cpu

Problem

GOAT gives agents 200+ financial tools and multi-chain wallet access, but no way to assess who they're transacting with. When an agent is about to send a payment, provide liquidity, or interact with another wallet — there's no trust signal to inform the decision.

This is especially important as agent-to-agent commerce grows. A lending agent extending credit needs different risk thresholds than a simple payment agent.

Proposal

Add a wallet reputation scoring plugin powered by DJD Agent Score.

The API returns a 0–100 trust score across 5 behavioral dimensions, derived from on-chain activity on Base:

Dimension What it measures
Identity Multi-chain attestations (ENS, stETH, governance tokens)
Behavior Transaction frequency, diversity, gas efficiency
Reliability Balance stability, payment consistency
Viability Balance trajectory, longevity
Capability Contract interactions, DeFi protocol usage

Plugin sketch

import { PluginBase, createTool } from "@goat-sdk/core";

class WalletReputationPlugin extends PluginBase {
  constructor() {
    super("walletReputation", []);
  }

  supportsChain = () => true; // Scoring works for any wallet

  getTools() {
    return [
      createTool({
        name: "check_wallet_reputation",
        description: "Score a wallet's on-chain reputation (0-100) before transacting",
        parameters: {
          wallet: { type: "string", description: "Wallet address to score" },
        },
        execute: async ({ wallet }) => {
          const res = await fetch(
            `https://djd-agent-score.fly.dev/score/basic/${wallet}`
          );
          return res.json();
        },
      }),
      createTool({
        name: "check_reputation_detailed",
        description: "Get detailed wallet reputation with dimension breakdown",
        parameters: {
          wallet: { type: "string", description: "Wallet address to score" },
        },
        execute: async ({ wallet }) => {
          const res = await fetch(
            `https://djd-agent-score.fly.dev/score/full/${wallet}`
          );
          return res.json();
        },
      }),
    ];
  }
}

Usage with any GOAT agent

import { WalletReputationPlugin } from "@goat-sdk/plugin-wallet-reputation";

const tools = getOnChainTools({
  wallet: myWallet,
  plugins: [
    new WalletReputationPlugin(),
    // ... other plugins
  ],
});

// Agent can now check reputation before sending payments:
// "Check the reputation of 0x... before sending 100 USDC"

Key features

  • Free tier: 3 scores/day, no API key needed
  • x402 micropayments: Pay-per-request via USDC on Base for higher volume
  • TypeScript SDK: npm install djd-agent-score-client
  • Sybil detection: Flags wash trading, gas manipulation, circular flows
  • ERC-8004: Scores also published on-chain for trustless access

This fits GOAT's plugin architecture well — lightweight, optional, and composable with existing financial tools. Happy to help build this out or submit a PR!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions