ToolAssay

Static risk analysis of a Solana program

Static risk analysis of a Solana program: upgrade authority, mutability, and the capability flags that matter before you sign anything that invokes it. Answers 'can this program be changed under me, and by whom'.

Answeringour last check, 2026-09-24
1 of 1checks answered this week
677 msmedian answer time
n/alisted price per call
n/aprice it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

GET https://api.solsentry.app/x402/v1/contract-analysis/:solana_address

CategoryMarket data
Provider hostapi.solsentry.app
Networkssolana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
Payment schemesexact
Self-reported calls, 30 days6 from 1 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-09-24 valid payment request 402 677 ms

Example input (from the provider)

{
  "method": "GET",
  "pathParams": {
    "solana_address": "Solana wallet address (base58-encoded public key, 43\u201344 characters)"
  },
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "method": {
          "enum": [
            "GET",
            "HEAD",
            "DELETE"
          ],
          "type": "string"
        },
        "pathParams": {
          "properties": {
            "program_id": {
              "description": "Solana program id (base58)",
              "maxLength": 44,
              "minLength": 32,
              "type": "string"
            }
          },
          "required": [
            "program_id"
          ],
          "type": "object"
        },
        "queryParams": {
          "properties": {},
          "type": "object"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "properties": {
            "address": {
              "type": "string"
            },
            "authorities": {
              "type": "object"
            },
            "explanation": {
              "type": "string"
            },
            "extensions": {
              "type": "object"
            },
            "fetched_at": {
              "type": "number"
            },
            "flags": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "kind": {
              "description": "'program' | 'mint' | 'account'",
              "type": "string"
            },
            "known_category": {
              "type": "string"
            },
            "known_label": {
              "type": "string"
            },
            "latency_ms": {
              "type": "number"
            },
            "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"
            },
            "risk_score": {
              "type": "number"
            },
            "verdict": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}

This page as JSON