Explorer
Syncing—

Pine Script LintService

pine-script-lint-v1

Pine Script Lint and Integrity: deterministic static checks for TradingView Pine Script v5/v6. POST /v1/integrity answers 'does this script contain structures that make history look better than live?': future data via lookahead_on without offset, unconfirmed higher-timeframe values, signals drawn on past bars, pivot lag, realtime-only state (barstate, timenow, varip), strategy fill and cost assumptions, alerts on unconfirmed bars. POST /v1/lint adds syntax and version checks (v4 remnants, brackets, strings, undeclared reassignment, plot/security limits, namespaces). Each finding has line, code, severity. Same source, same findings; it never claims the script compiles or proves no repainting. Every response is a JSON object. Identity via GET /v1/version, readiness via GET /v1/health, rules via GET /v1/rules.

Active Suppliers
1
of 1 ever configured
Service Info
Service ID
pine-script-lint-v1
Compute Units / Relay
50,000
Active Applications
1
Relay Mining EMA
—
Service Metadata Cardsource: on-chain metadata (LCD)
{10 items
"schema":"pocket-service-card/v1"
"description":"Pine Script Lint and Integrity: deterministic static checks for TradingView Pine Script v5/v6. POST /v1/integrity answers 'does this script contain structures t..."
"updated":"2026-09-22"
"rpc_types":[1 item
0:{4 items
"type":"REST"
"intent":"expected"
"backend_hint":"pine-script-lint-v1 HTTP server on :8796; mount at /"
"notes":"POST /v1/lint body {"source": "<pine>", "conventions": false}; source up to 200 KiB; verdict CLEAN | WARN | FAIL."
}
]
"apis":[1 item
0:"pine-script-lint-v1-api"
]
"specs":[1 item
0:{4 items
"kind":"openapi"
"api":"pine-script-lint-v1-api"
"url":"https://pine.pokt-agent.com/openapi.json"
"notes":"Served by the same backend."
}
]
"docs":"https://pine.pokt-agent.com/"
"access":"public"
"results":"deterministic"
"serving":{5 items
"backend":"Pure-Python static analyser; no upstream calls, no state, no keys."
"implementations":[1 item
0:"pine-script-lint-v1 >= 0.1.0"
]
"min_disk_gb":1
"min_ram_gb":1
"healthcheck":[4 items
0:{4 items
"rpc_type":"REST"
"request":{2 items
"path":"/v1/version"
"method":"GET"
}
"expect":{2 items
"json_path":"$.service"
"matches":"^pine-script-lint-v1$"
}
"notes":"Identity probe: pins the backend to this service id."
}
1:{4 items
"rpc_type":"REST"
"request":{2 items
"path":"/v1/health"
"method":"GET"
}
"expect":{2 items
"json_path":"$.status"
"matches":"^ok$"
}
"notes":"Readiness probe."
}
2:{4 items
"rpc_type":"REST"
"request":{4 items
"path":"/v1/lint"
"method":"POST"
"headers":{1 item
"content-type":"application/json"
}
"body":{1 item
"source":"//@version=6 indicator("probe", overlay=true) plot(close) "
}
}
"expect":{2 items
"json_path":"$.verdict"
"matches":"^CLEAN$"
}
"notes":"Functional probe: a minimal valid v6 indicator lints CLEAN."
}
3:{4 items
"rpc_type":"REST"
"request":{4 items
"path":"/v1/integrity"
"method":"POST"
"headers":{1 item
"content-type":"application/json"
}
"body":{1 item
"source":"//@version=6 indicator("y") d = request.security(syminfo.tickerid, "D", close, lookahead=barmerge.lookahead_on) plot(d) "
}
}
"expect":{2 items
"json_path":"$.verdict"
"matches":"^FAIL$"
}
"notes":"Functional probe: lookahead_on without an offset is future data and must FAIL integrity."
}
]
}
}