api.strale.io
https://api.strale.io/x402/dockerfile-generateShares a payout wallet with 268 other endpoints — its adoption is attributed from that shared wallet's traffic, not earned exclusively.
Generate optimized, production-ready Dockerfiles. Multi-stage builds, Alpine base, non-root user, layer caching. Supports Node, Python, Go, Rust, Java.
Reliability & health
Uptime and response time from our own unpaid probes, plus the reliability score built from them.
Uptime
100.0% avgResponse time
p50 27ms · p95 40msData table
| Bucket | Uptime | Probes | Response time |
|---|---|---|---|
| 8/13/2026, 1:00:00 PM | 100% | 1 | 27ms |
| 8/13/2026, 2:00:00 PM | 100% | 1 | 27ms |
| 8/13/2026, 3:00:00 PM | 100% | 1 | 25ms |
| 8/13/2026, 4:00:00 PM | 100% | 1 | 27ms |
| 8/13/2026, 5:00:00 PM | 100% | 1 | 31ms |
| 8/13/2026, 7:00:00 PM | 100% | 1 | 27ms |
| 8/13/2026, 8:00:00 PM | 100% | 1 | 27ms |
| 8/13/2026, 9:00:00 PM | 100% | 1 | 26ms |
| 8/13/2026, 10:00:00 PM | 100% | 1 | 27ms |
| 8/13/2026, 11:00:00 PM | 100% | 1 | 27ms |
| 8/14/2026, 12:00:00 AM | 100% | 1 | 25ms |
| 8/14/2026, 2:00:00 AM | 100% | 1 | 25ms |
| 8/14/2026, 3:00:00 AM | 100% | 1 | 28ms |
| 8/14/2026, 4:00:00 AM | 100% | 1 | 26ms |
| 8/14/2026, 5:00:00 AM | 100% | 1 | 41ms |
| 8/14/2026, 6:00:00 AM | 100% | 1 | 47ms |
| 8/14/2026, 7:00:00 AM | 100% | 1 | 27ms |
| 8/14/2026, 9:00:00 AM | 100% | 1 | 28ms |
| 8/14/2026, 10:00:00 AM | 100% | 1 | 27ms |
| 8/14/2026, 11:00:00 AM | 100% | 1 | 25ms |
| 8/14/2026, 12:00:00 PM | 100% | 1 | 25ms |
| 8/14/2026, 1:00:00 PM | 100% | 1 | 28ms |
| 8/14/2026, 3:00:00 PM | 100% | 1 | 29ms |
| 8/14/2026, 4:00:00 PM | 100% | 1 | 27ms |
| 8/14/2026, 5:00:00 PM | 100% | 1 | 29ms |
| 8/14/2026, 6:00:00 PM | 100% | 1 | 25ms |
| 8/14/2026, 7:00:00 PM | 100% | 1 | 26ms |
| 8/14/2026, 9:00:00 PM | 100% | 1 | 29ms |
| 8/14/2026, 10:00:00 PM | 100% | 1 | 25ms |
| 8/14/2026, 11:00:00 PM | 100% | 1 | 26ms |
| 8/15/2026, 12:00:00 AM | 100% | 1 | 25ms |
| 8/15/2026, 1:00:00 AM | 100% | 1 | 30ms |
| 8/15/2026, 2:00:00 AM | 100% | 1 | 26ms |
| 8/15/2026, 3:00:00 AM | 100% | 1 | 27ms |
| 8/15/2026, 5:00:00 AM | 100% | 1 | 25ms |
| 8/15/2026, 6:00:00 AM | 100% | 1 | 25ms |
| 8/15/2026, 7:00:00 AM | 100% | 1 | 25ms |
| 8/15/2026, 8:00:00 AM | 100% | 1 | 26ms |
| 8/15/2026, 9:00:00 AM | 100% | 1 | 47ms |
| 8/15/2026, 10:00:00 AM | 100% | 1 | 28ms |
| 8/15/2026, 11:00:00 AM | 100% | 1 | 28ms |
| 8/15/2026, 1:00:00 PM | 100% | 1 | 25ms |
| 8/15/2026, 2:00:00 PM | 100% | 1 | 27ms |
| 8/15/2026, 3:00:00 PM | 100% | 1 | 37ms |
| 8/15/2026, 4:00:00 PM | 100% | 1 | 25ms |
| 8/15/2026, 5:00:00 PM | 100% | 1 | 27ms |
| 8/15/2026, 6:00:00 PM | 100% | 1 | 28ms |
| 8/15/2026, 8:00:00 PM | 100% | 1 | 25ms |
| 8/15/2026, 9:00:00 PM | 100% | 1 | 26ms |
| 8/15/2026, 10:00:00 PM | 100% | 1 | 25ms |
| 8/15/2026, 11:00:00 PM | 100% | 1 | 26ms |
| 8/16/2026, 12:00:00 AM | 100% | 1 | 27ms |
| 8/16/2026, 1:00:00 AM | 100% | 1 | 26ms |
| 8/16/2026, 3:00:00 AM | 100% | 1 | 24ms |
| 8/16/2026, 4:00:00 AM | 100% | 1 | 27ms |
| 8/16/2026, 5:00:00 AM | 100% | 1 | 26ms |
| 8/16/2026, 6:00:00 AM | 100% | 1 | 25ms |
| 8/16/2026, 7:00:00 AM | 100% | 1 | 25ms |
| 8/16/2026, 8:00:00 AM | 100% | 1 | 25ms |
| 8/16/2026, 10:00:00 AM | 100% | 1 | 30ms |
| 8/16/2026, 11:00:00 AM | 100% | 1 | 45ms |
| 8/16/2026, 12:00:00 PM | 100% | 1 | 49ms |
| 8/16/2026, 1:00:00 PM | 100% | 1 | 29ms |
| 8/16/2026, 2:00:00 PM | 100% | 1 | 28ms |
| 8/16/2026, 3:00:00 PM | 100% | 1 | 28ms |
| 8/16/2026, 5:00:00 PM | 100% | 1 | 27ms |
| 8/16/2026, 6:00:00 PM | 100% | 1 | 29ms |
| 8/16/2026, 7:00:00 PM | 100% | 1 | 30ms |
| 8/16/2026, 8:00:00 PM | 100% | 1 | 31ms |
| 8/16/2026, 9:00:00 PM | 100% | 1 | 25ms |
| 8/16/2026, 10:00:00 PM | 100% | 1 | 29ms |
| 8/17/2026, 12:00:00 AM | 100% | 1 | 27ms |
| 8/17/2026, 1:00:00 AM | 100% | 1 | 26ms |
| 8/17/2026, 2:00:00 AM | 100% | 1 | 26ms |
| 8/17/2026, 3:00:00 AM | 100% | 1 | 26ms |
| 8/17/2026, 4:00:00 AM | 100% | 1 | 26ms |
| 8/17/2026, 5:00:00 AM | 100% | 1 | 30ms |
| 8/17/2026, 7:00:00 AM | 100% | 1 | 28ms |
| 8/17/2026, 8:00:00 AM | 100% | 1 | 34ms |
| 8/17/2026, 9:00:00 AM | 100% | 1 | 29ms |
| 8/17/2026, 10:00:00 AM | 100% | 1 | 39ms |
| 8/17/2026, 11:00:00 AM | 100% | 1 | 29ms |
| 8/17/2026, 12:00:00 PM | 100% | 1 | 26ms |
| 8/17/2026, 2:00:00 PM | 100% | 1 | 36ms |
| 8/17/2026, 3:00:00 PM | 100% | 1 | 26ms |
| 8/17/2026, 4:00:00 PM | 100% | 1 | 28ms |
| 8/17/2026, 5:00:00 PM | 100% | 1 | 27ms |
| 8/17/2026, 6:00:00 PM | 100% | 1 | 29ms |
| 8/17/2026, 7:00:00 PM | 100% | 1 | 27ms |
| 8/17/2026, 8:00:00 PM | 100% | 1 | 28ms |
| 8/17/2026, 10:00:00 PM | 100% | 1 | 28ms |
| 8/17/2026, 11:00:00 PM | 100% | 1 | 29ms |
| 8/18/2026, 12:00:00 AM | 100% | 1 | 56ms |
| 8/18/2026, 1:00:00 AM | 100% | 1 | 27ms |
| 8/18/2026, 2:00:00 AM | 100% | 1 | 25ms |
| 8/18/2026, 3:00:00 AM | 100% | 1 | 27ms |
| 8/18/2026, 5:00:00 AM | 100% | 1 | 24ms |
| 8/18/2026, 6:00:00 AM | 100% | 1 | 27ms |
| 8/18/2026, 7:00:00 AM | 100% | 1 | 27ms |
| 8/18/2026, 8:00:00 AM | 100% | 1 | 33ms |
| 8/18/2026, 9:00:00 AM | 100% | 1 | 26ms |
| 8/18/2026, 10:00:00 AM | 100% | 1 | 26ms |
| 8/18/2026, 12:00:00 PM | 100% | 1 | 24ms |
| 8/18/2026, 1:00:00 PM | 100% | 1 | 37ms |
| 8/18/2026, 2:00:00 PM | 100% | 1 | 27ms |
| 8/18/2026, 3:00:00 PM | 100% | 1 | 27ms |
| 8/18/2026, 4:00:00 PM | 100% | 1 | 26ms |
| 8/18/2026, 5:00:00 PM | 100% | 1 | 31ms |
| 8/18/2026, 7:00:00 PM | 100% | 1 | 40ms |
| 8/18/2026, 8:00:00 PM | 100% | 1 | 31ms |
| 8/18/2026, 9:00:00 PM | 100% | 1 | 30ms |
| 8/18/2026, 10:00:00 PM | 100% | 1 | 30ms |
| 8/18/2026, 11:00:00 PM | 100% | 1 | 29ms |
| 8/19/2026, 12:00:00 AM | 100% | 1 | 28ms |
| 8/19/2026, 2:00:00 AM | 100% | 1 | 28ms |
| 8/19/2026, 3:00:00 AM | 100% | 1 | 28ms |
| 8/19/2026, 4:00:00 AM | 100% | 1 | 25ms |
| 8/19/2026, 5:00:00 AM | 100% | 1 | 27ms |
| 8/19/2026, 6:00:00 AM | 100% | 1 | 26ms |
| 8/19/2026, 7:00:00 AM | 100% | 1 | 29ms |
| 8/19/2026, 9:00:00 AM | 100% | 1 | 27ms |
| 8/19/2026, 10:00:00 AM | 100% | 1 | 30ms |
| 8/19/2026, 11:00:00 AM | 100% | 1 | 27ms |
| 8/19/2026, 12:00:00 PM | 100% | 1 | 27ms |
| 8/19/2026, 1:00:00 PM | 100% | 1 | 26ms |
| 8/19/2026, 2:00:00 PM | 100% | 1 | 30ms |
| 8/19/2026, 4:00:00 PM | 100% | 1 | 27ms |
| 8/19/2026, 5:00:00 PM | 100% | 1 | 27ms |
| 8/19/2026, 6:00:00 PM | 100% | 1 | 28ms |
| 8/19/2026, 7:00:00 PM | 100% | 1 | 27ms |
| 8/19/2026, 8:00:00 PM | 100% | 1 | 27ms |
| 8/19/2026, 9:00:00 PM | 100% | 1 | 28ms |
| 8/19/2026, 11:00:00 PM | 100% | 1 | 30ms |
| 8/20/2026, 12:00:00 AM | 100% | 1 | 30ms |
| 8/20/2026, 1:00:00 AM | 100% | 1 | 28ms |
| 8/20/2026, 2:00:00 AM | 100% | 1 | 58ms |
| 8/20/2026, 3:00:00 AM | 100% | 1 | 28ms |
| 8/20/2026, 4:00:00 AM | 100% | 1 | 26ms |
| 8/20/2026, 6:00:00 AM | 100% | 1 | 29ms |
| 8/20/2026, 7:00:00 AM | 100% | 1 | 25ms |
| 8/20/2026, 8:00:00 AM | 100% | 1 | 29ms |
| 8/20/2026, 9:00:00 AM | 100% | 1 | 34ms |
| 8/20/2026, 10:00:00 AM | 100% | 1 | 29ms |
| 8/20/2026, 11:00:00 AM | 100% | 1 | 29ms |
- Availability
- 100
- Latency
- 100
- Security
- 100
- Transparency
- 61
- Activity
- 1
How often it was reachable when we probed it (weight 35%).
How quickly it answers when it is up — fast scores high (weight 20%).
Whether it serves over working TLS / https (weight 15%).
Whether the operator disclosed what it does — description, schema, identity (weight 15%).
Observed on-chain payments to this endpoint's wallet — transactions, volume, and distinct paying wallets over the last month (weight 15%; not yet measured when we have not seen its wallet settle).
Confidence 100% — how much probe evidence backs this score. A thin history is flagged, not hidden.
See the scoring methodology for exactly how each number is computed.
Payment
- Currencies
- USDC
- Networks
- base
- Facilitator
- unknown
- SDK
- unknown
Operator
- Company
- inferred — unknown
- Jurisdiction
- —
- Registrar
- —
- Domain registered
- —
- Hosting network
- RLWY-HIKARI-01
- Hosting country
- —
Operator context is derived from public RDAP/TLS records and unverified. Company and country are only available for endpoints that publish them (an OV/EV TLS certificate or a non-redacted domain record); most endpoints are CDN-fronted and disclose neither.
On-chain activity (base)
Payments per day
last payment 8/20/2026Data table
| Day | Payments | Volume (USD) | Paying wallets |
|---|---|---|---|
| 7/22/2026 | 139 | 11.67 | 5 |
| 7/23/2026 | 76 | 6.23 | 3 |
| 7/24/2026 | 195 | 13.53 | 1 |
| 8/1/2026 | 151 | 9.32 | 3 |
| 8/2/2026 | 35 | 1.91 | 1 |
| 8/4/2026 | 5 | 0.43 | 3 |
| 8/5/2026 | 3 | 0.43 | 3 |
| 8/6/2026 | 73 | 4.3 | 1 |
| 8/7/2026 | 162 | 7.35 | 2 |
| 8/8/2026 | 40 | 3.01 | 1 |
| 8/9/2026 | 146 | 13.32 | 1 |
| 8/10/2026 | 131 | 13.05 | 1 |
| 8/11/2026 | 62 | 5.21 | 1 |
| 8/12/2026 | 106 | 8 | 2 |
| 8/13/2026 | 97 | 4.86 | 2 |
| 8/14/2026 | 40 | 2.14 | 2 |
| 8/15/2026 | 124 | 6 | 1 |
| 8/16/2026 | 56 | 3.12 | 1 |
| 8/17/2026 | 186 | 17.59 | 1 |
| 8/18/2026 | 190 | 11.85 | 2 |
| 8/19/2026 | 195 | 9.42 | 1 |
| 8/20/2026 | 63 | 3.57 | 1 |
This payout wallet is shared: figures cover all 269 endpoints paid at it, since payments cannot be attributed to one of them. Only payments settled on chains and facilitators we index.
Linked by wallet — likely same operator
On-chain agent identity and the x402 endpoint that shares its settlement wallet.
Response schema
{
"example": {
"build_args": [],
"dockerfile": "# Stage 1: Dependencies\nFROM node:18-alpine AS dependencies\nWORKDIR /app\nCOPY package*.json ./\nRUN npm ci --only=production && npm cache clean --force\n\n# Stage 2: Builder\nFROM node:18-alpine AS builder\nWORKDIR /app\nCOPY package*.json ./\nRUN npm ci\nCOPY . .\nRUN npm run build --if-present\n\n# Stage 3: Runtime\nFROM node:18-alpine AS runtime\nWORKDIR /app\n\n# Install dumb-init for proper signal handling\nRUN apk add --no-cache dumb-init\n\n# Create non-root user\nRUN addgroup -g 1001 -S nodejs && adduser -S nodejs -u 1001\n\n# Copy production dependencies from dependencies stage\nCOPY --from=dependencies --chown=nodejs:nodejs /app/node_modules ./node_modules\n\n# Copy application code from builder stage\nCOPY --from=builder --chown=nodejs:nodejs /app/package*.json ./\nCOPY --from=builder --chown=nodejs:nodejs /app/dist ./dist\nCOPY --from=builder --chown=nodejs:nodejs /app/public ./public\n\n# Switch to non-root user\nUSER nodejs\n\n# Expose port\nEXPOSE 3000\n\n# Healthcheck\nHEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \\\n CMD node -e \"require('http').get('http://localhost:3000/health', (r) => {if (r.statusCode !== 200) throw new Error(r.statusCode)})\"\n\n# Use dumb-init to handle signals properly\nENTRYPOINT [\"dumb-init\", \"--\"]\n\n# Start application\nCMD [\"node\", \"dist/index.js\"]",
"dockerignore_recommended": [
"node_modules",
"npm-debug.log",
".git",
".gitignore",
".env",
".env.local",
".DS_Store",
"dist",
"build",
".next",
"coverage",
".nyc_output",
"*.log",
".vscode",
".idea",
"*.swp",
"*.swo",
"*~",
".eslintcache",
"yarn-error.log",
".npm",
".eslintignore",
"README.md",
"LICENSE",
".editorconfig",
"docker-compose*.yml",
"Dockerfile*",
".dockerignore",
".github",
".gitlab-ci.yml",
".circleci",
"test",
"tests",
"jest.config.js",
"vitest.config.js",
".mocharc.json"
],
"estimated_image_size": "120-150MB",
"framework": "express",
"language": "en",
"multi_stage": true,
"security_notes": [
"Non-root user (nodejs:1001) runs the application",
"Multi-stage build reduces final image size by excluding dev dependencies",
"Alpine Linux base image minimizes attack surface",
"dumb-init handles PID 1 and signal forwarding correctly",
"Only production dependencies copied to final stage",
"Read-only filesystem recommended in production via security context",
"No package manager or build tools in final image",
"HEALTHCHECK validates application responsiveness"
],
"stages": [
"dependencies",
"builder",
"runtime"
]
},
"properties": {
"dockerfile": {
"type": "string"
},
"estimated_image_size": {
"type": "string"
},
"security_notes": {
"type": "array"
},
"stages": {
"type": "array"
}
},
"type": "object"
}