openapi: 3.2.0 info: title: MoltGuard Sybil Detection API version: 1.5.0 description: 'Trust & Integrity Service for the x402 Agent Economy. Sub-API of MolTrust Trust Registry (api.moltrust.ch). See also: https://api.moltrust.ch/openapi.json (parent service).' contact: name: CryptoKRI GmbH url: https://moltrust.ch license: name: Apache-2.0 url: https://www.apache.org/licenses/LICENSE-2.0 servers: - url: https://api.moltrust.ch/guard description: Production security: [] tags: - name: sybil-detection description: On-chain sybil-cluster detection paths: /api/sybil/scan/{address}: get: tags: - sybil-detection summary: On-chain sybil-cluster detection (paid) description: 'Heuristic clustering: wallet age, counterparty graph, funding-source convergence. Returns cluster detection verdict + confidence + evidence.' operationId: getSybilScan security: - x402: [] x-moltrust-pricing: amount: '0.10' currency: USDC chain: eip155:8453 parameters: - name: address in: path required: true schema: type: string pattern: ^0x[a-fA-F0-9]{40}$ description: EVM 0x address responses: '200': description: Sybil scan result content: application/json: schema: $ref: '#/components/schemas/SybilScanResponse' '400': description: Invalid 0x address content: application/json: schema: $ref: '#/components/schemas/InvalidAddressError' '402': description: x402 payment required content: application/json: schema: $ref: '#/components/schemas/PaymentRequired' components: schemas: SybilScanResponse: type: object description: On-chain sybil-cluster detection result. properties: wallet: type: string sybilCluster: type: object properties: detected: type: boolean clusterId: type: - string - 'null' clusterSize: type: integer confidence: type: number minimum: 0 maximum: 1 evidence: type: array items: type: string walletAge: type: integer description: Seconds since first tx counterparties: type: integer fundingSource: type: - string - 'null' _meta: $ref: '#/components/schemas/ScoreMeta' InvalidAddressError: type: object properties: error: type: string enum: - invalid_address message: type: string required: - error - message PaymentRequired: type: object description: x402 v2 challenge body. Returned with HTTP 402 when X-PAYMENT header is missing or invalid. properties: x402: type: object properties: version: type: integer example: 2 accepts: type: array items: type: object properties: scheme: type: string example: exact network: type: string example: base maxAmountRequired: type: object properties: asset: type: string example: USDC amount: type: string description: USDC base units (6 decimals) payTo: type: string ScoreMeta: type: object properties: service: type: string enum: - moltguard version: type: string chain: type: string example: base- dataSource: type: string example: blockscout+rpc+moltrust timestamp: type: string format: date-time pricingTier: type: string enum: - paid - free-limited - sample note: type: string securitySchemes: x402: type: apiKey in: header name: X-PAYMENT description: 'x402 v2 payment receipt header. Format: "x402 ". See https://x402.org/writing/x402-v2-launch.'