{
  "x402Version": 2,
  "id": 33169,
  "slug": "33169",
  "resource": "https://api.solsentry.app/x402/v1/lookalike-check",
  "description": "Address-poisoning pre-send check. Give the destination you are about to pay plus the addresses the user has paid before; returns findings ranked by confidence when the destination is a visual or prefix/suffix lookalike of a known contact. Stateless and offline — no RPC call, nothing stored.",
  "type": "http",
  "serviceName": "SolSentry",
  "resourceType": "Monitoring",
  "accepts": [
    {
      "scheme": "exact",
      "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
      "payTo": "HwXJGH7FMugPCoLiQnuG1nCUMWhBejMhkjdswNHmLeN8",
      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "amount": "4000",
      "amountUsd": 0.004,
      "maxTimeoutSeconds": 300
    }
  ],
  "outputSchema": {
    "properties": {
      "example": {
        "properties": {
          "confidence": {
            "description": "'strong' | 'medium' | 'weak' | 'none'",
            "type": "string"
          },
          "contacts_checked": {
            "type": "integer"
          },
          "destination": {
            "type": "string"
          },
          "findings": {
            "items": {
              "properties": {
                "confidence": {
                  "type": "string"
                },
                "original_contact": {
                  "type": "string"
                },
                "prefix_match": {
                  "type": "integer"
                },
                "reasons": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "suffix_match": {
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "provenance": {
            "description": "Freshness of this answer: when it was fetched/computed (UTC), whether it came from a cache layer, and the Solana slot it reflects when the underlying data source exposes one (null otherwise).",
            "properties": {
              "as_of_slot": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "cached": {
                "type": "boolean"
              },
              "fetched_at": {
                "description": "ISO-8601 UTC timestamp",
                "type": "string"
              },
              "source": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "type": "object"
          },
          "suspect": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "type": {
        "type": "string"
      }
    },
    "required": [
      "type"
    ],
    "type": "object"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "method": "GET",
          "queryParams": {
            "contacts": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
            "destination": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM"
          },
          "type": "http"
        },
        "output": {
          "example": {
            "confidence": "none",
            "contacts_checked": 1,
            "destination": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
            "findings": [],
            "latency_ms": 0,
            "provenance": {
              "as_of_slot": null,
              "cached": false,
              "fetched_at": "<ISO-8601 UTC>",
              "source": null
            },
            "suspect": false
          },
          "type": "json"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "method": {
                "enum": [
                  "GET",
                  "HEAD",
                  "DELETE"
                ],
                "type": "string"
              },
              "queryParams": {
                "properties": {
                  "contacts": {
                    "description": "Comma-separated prior contact addresses",
                    "type": "string"
                  },
                  "destination": {
                    "description": "Address about to receive funds",
                    "maxLength": 44,
                    "minLength": 32,
                    "type": "string"
                  }
                },
                "required": [
                  "destination",
                  "contacts"
                ],
                "type": "object"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method"
            ],
            "type": "object"
          },
          "output": {
            "properties": {
              "example": {
                "properties": {
                  "confidence": {
                    "description": "'strong' | 'medium' | 'weak' | 'none'",
                    "type": "string"
                  },
                  "contacts_checked": {
                    "type": "integer"
                  },
                  "destination": {
                    "type": "string"
                  },
                  "findings": {
                    "items": {
                      "properties": {
                        "confidence": {
                          "type": "string"
                        },
                        "original_contact": {
                          "type": "string"
                        },
                        "prefix_match": {
                          "type": "integer"
                        },
                        "reasons": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "suffix_match": {
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "provenance": {
                    "description": "Freshness of this answer: when it was fetched/computed (UTC), whether it came from a cache layer, and the Solana slot it reflects when the underlying data source exposes one (null otherwise).",
                    "properties": {
                      "as_of_slot": {
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "cached": {
                        "type": "boolean"
                      },
                      "fetched_at": {
                        "description": "ISO-8601 UTC timestamp",
                        "type": "string"
                      },
                      "source": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "type": "object"
                  },
                  "suspect": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    }
  },
  "tags": [
    "solana",
    "security",
    "risk",
    "threat-intelligence",
    "wallet",
    "bazaar"
  ],
  "sourceHost": "api.solsentry.app",
  "lastUpdated": "2026-10-13T14:56:16.353Z",
  "quality": {
    "calls30d": 38,
    "uniquePayers30d": 3,
    "lastCalledAt": "2026-10-13T14:56:16.073Z"
  },
  "metadata": {
    "serviceName": "SolSentry",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "method": "GET",
            "queryParams": {
              "contacts": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
              "destination": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM"
            },
            "type": "http"
          },
          "output": {
            "example": {
              "confidence": "none",
              "contacts_checked": 1,
              "destination": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
              "findings": [],
              "latency_ms": 0,
              "provenance": {
                "as_of_slot": null,
                "cached": false,
                "fetched_at": "<ISO-8601 UTC>",
                "source": null
              },
              "suspect": false
            },
            "type": "json"
          }
        },
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "input": {
              "additionalProperties": false,
              "properties": {
                "method": {
                  "enum": [
                    "GET",
                    "HEAD",
                    "DELETE"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "properties": {
                    "contacts": {
                      "description": "Comma-separated prior contact addresses",
                      "type": "string"
                    },
                    "destination": {
                      "description": "Address about to receive funds",
                      "maxLength": 44,
                      "minLength": 32,
                      "type": "string"
                    }
                  },
                  "required": [
                    "destination",
                    "contacts"
                  ],
                  "type": "object"
                },
                "type": {
                  "const": "http",
                  "type": "string"
                }
              },
              "required": [
                "type",
                "method"
              ],
              "type": "object"
            },
            "output": {
              "properties": {
                "example": {
                  "properties": {
                    "confidence": {
                      "description": "'strong' | 'medium' | 'weak' | 'none'",
                      "type": "string"
                    },
                    "contacts_checked": {
                      "type": "integer"
                    },
                    "destination": {
                      "type": "string"
                    },
                    "findings": {
                      "items": {
                        "properties": {
                          "confidence": {
                            "type": "string"
                          },
                          "original_contact": {
                            "type": "string"
                          },
                          "prefix_match": {
                            "type": "integer"
                          },
                          "reasons": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "suffix_match": {
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "provenance": {
                      "description": "Freshness of this answer: when it was fetched/computed (UTC), whether it came from a cache layer, and the Solana slot it reflects when the underlying data source exposes one (null otherwise).",
                      "properties": {
                        "as_of_slot": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "cached": {
                          "type": "boolean"
                        },
                        "fetched_at": {
                          "description": "ISO-8601 UTC timestamp",
                          "type": "string"
                        },
                        "source": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "type": "object"
                    },
                    "suspect": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "type": {
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object"
            }
          },
          "required": [
            "input"
          ],
          "type": "object"
        }
      }
    }
  },
  "liveness": {
    "reliability": null
  },
  "verified": false,
  "featured": false,
  "provider": {
    "host": "api.solsentry.app",
    "manifest_name": "api.solsentry.app",
    "source": "cdp-mirror",
    "source_manifest_url": "https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources",
    "submitted_at": "2026-10-14T01:15:01.050Z"
  },
  "exampleResponse": {
    "example": {
      "confidence": "string",
      "contacts_checked": 0,
      "destination": "string",
      "findings": [
        {
          "confidence": "string",
          "original_contact": "string",
          "prefix_match": 0,
          "reasons": [
            "string"
          ],
          "suffix_match": 0
        }
      ],
      "provenance": {
        "as_of_slot": 0,
        "cached": true,
        "fetched_at": "string",
        "source": "string"
      },
      "suspect": true
    },
    "type": "string"
  }
}