Static checks for TradingView Pine Script v5/v6. POST /v1/integrity finds what makes a backtest look better than live: future data via lookahead, unconfirmed higher-timeframe values, signals drawn on past bars, realtime-only state, strategy fill assumptions. POST /v1/lint adds syntax and version checks. Each finding has line, code and severity. Never claims the script compiles.
Endpoint
POST https://agent.pocket.network/v1/pine-script-lint-v1/v1/integrity
Price per call
$0.005 USD
Networks payable on
Base (eip155:8453), Tempo (eip155:4217)
Protocol
rest
Calling it
The first call returns 402 Payment Required with the terms. Sign for those terms and retry the same request with the payment attached.
Example request
A real, working call — the request the service card verifies against.
The response this call returned, captured 2026-11-09 19:45:22 UTC.
{
"portal": {
"provenance": "third-party-supplier",
"serviceId": "pine-script-lint-v1",
"schemaCheck": "unchecked"
},
"data": {
"schema": "pine-integrity-result/v1",
"service": "pine-script-lint-v1",
"linter_version": "0.2.1",
"pine_version": 6,
"declaration": {
"kind": "indicator",
"line": 2
},
"verdict": "FAIL",
"counts": {
"error": 1,
"warning": 1,
"info": 0
},
"findings": [
{
"code": "P007",
"severity": "warning",
"line": 3,
"message": "request.security with lookahead_on repaints on historical bars"
},
{
"code": "P201",
"severity": "error",
"line": 3,
"message": "request.security(..., lookahead_on) without a [1]-style offset reads the future on historical bars"
}
],
"checks": [
"future data (lookahead_on without offset)",
"unconfirmed higher-timeframe values",
"signals drawn in the past"
],
"stats": {
"lines": 5,
"non_empty_lines": 4,
"functions": 0,
"inputs": 0,
"plots": 1,
"securities": 1,
"alertconditions": 0
},
"scope": "static heuristics; it does not run the script and cannot prove the absence of repainting",
"request_id": "r_38f123612775"
}
}
Try it
Make one real paid call from your own wallet — about $0.005 on Base (eip155:8453). The wallet signs; nothing here holds a key. You'll see exactly what the service answers.
No browser wallet found. Install MetaMask, Rabby, or Coinbase Wallet to try a call here.
Supported methods
Methods the registry lists for this service. The portal forwards any call as sent; the supplier decides what it answers, and a delivered answer is settled.
Methods Pine Script Lint accepts, and whether each reads or writes.
Method
Effect
GET /v1/health
read
GET /v1/rules
read
GET /v1/version
read
POST /v1/integrity
read
POST /v1/lint
read
Schemas
Published by the service itself. The example above is generated from these.
Request schema
{
"type": "object",
"description": "The body of POST /v1/lint and POST /v1/integrity (integrity ignores conventions). GET /v1/rules lists every finding code with its severity.",
"properties": {
"source": {
"type": "string",
"maxLength": 204800,
"description": "The Pine Script source, up to 200 KiB."
},
"conventions": {
"type": "boolean",
"description": "Lint only. Also report style conventions; default false."
}
},
"required": [
"source"
]
}
Response schema
{
"type": "object",
"description": "POST /v1/lint answers pine-lint-result/v1 (verdict CLEAN, WARN or FAIL, counts, findings with code, severity, line and message, stats); POST /v1/integrity answers pine-integrity-result/v1 (verdict, counts, findings, checks). Every response is a JSON object."
}