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
| Category | Market data |
|---|---|
| Provider host | api.solsentry.app |
| Networks | solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp |
| Payment schemes | exact |
| Self-reported calls, 30 days | 6 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 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"
}