Abuse Hardening & Security Controls

Enterprise-grade protections against DoS, abuse, and noisy tenants. Multi-tenant fairness with per-IP and per-tenant rate limiting.

Rate Limiting

Route ClassLimit TypeRateBurst
Public VerifyPer-IP50 r/s20
MintingPer-Tenant20 r/s10
GovernancePer-Tenant10 r/s5
General APIPer-IP100 r/s50

Request Size Limits

EndpointMax Body Size
Global Default1 MB
/v1/attestations512 KB

Error Responses

HTTPCodeDescription
413PAYLOAD_TOO_LARGERequest body exceeds size limit
429RATE_LIMIT_EXCEEDEDToo many requests
503SERVICE_UNAVAILABLEUpstream temporarily unavailable
{
  "code": "RATE_LIMIT_EXCEEDED",
  "message": "Too many requests. Please retry after the specified interval.",
  "http_status": 429,
  "retry_after_ms": 1000
}

Algorithm Enforcement

Ed25519 Only: The platform currently supports only Ed25519 for signing operations. Requests with unsupported algorithms (P-256, P-384, RS256) will be rejected with a 400 error.

Compliance Mapping

B2C

  • • Per-IP limits protect consumer endpoints
  • • Privacy-first: only hashes logged
  • • Rate limits explained as consumer protection

B2B

  • • Per-tenant quotas for SLA isolation
  • • Audit retention for enterprise audits
  • • Correlation IDs for SOC2/ISO27001

B2G

  • • Stricter governance route limits
  • • Retention supports regulatory recordkeeping
  • • Error taxonomy for legal defensibility

B2B2C

  • • Dual-layer limits (IP + tenant)
  • • Offline bundle verification
  • • Cross-org portability

Configuration

# Gateway (nginx.conf)
client_max_body_size 1m;
limit_req_zone $binary_remote_addr zone=per_ip_verify:10m rate=50r/s;
limit_req_zone $tenant_key zone=per_tenant_mint:10m rate=20r/s;

# Audit Service
AUDIT_RETENTION_DAYS=90

# Transparency Log
LOG_CHECKPOINT_INTERVAL=5m
LOG_PRUNE_KEEP_LEAVES=1000