Skip to content

feat: support configurable Shulam facilitator URL for compliance screening #9

@shulam-pay

Description

@shulam-pay

Summary

Add support for a configurable Shulam facilitator URL so that Bankr users can point compliance screening and trust scoring at custom deployments (e.g., bankr.shulam.xyz for operator-attributed requests).

Motivation

Currently the Shulam API URL is hardcoded to https://api.shulam.xyz. For Bankr's white-label integration, requests should route through https://bankr.shulam.xyz to enable:

  • Operator attribution — all screenings and transactions are tracked under Bankr's operator account
  • Custom compliance thresholds — Bankr-specific hold/block thresholds (0.50/0.95)
  • Metering — usage tracking per operator for billing
  • Event routingbankr.operator.* events emitted for Bankr-specific monitoring

Proposed Changes

  1. Environment variable: Add SHULAM_FACILITATOR_URL (default: https://api.shulam.xyz)
  2. Config surface: Allow setting via .env, CLI flag, or runtime config
  3. Affected endpoints:
    • POST /v1/compliance/screen — compliance screening
    • GET /v1/trust/score/:address — trust scoring
    • POST /verify — EIP-3009 payment verification
    • POST /settle — on-chain settlement

Example

# .env
SHULAM_FACILITATOR_URL=https://bankr.shulam.xyz
SHULAM_API_KEY=sk_live_bankr_...
import { screenWallet } from '@shulam/compliance-screening';

const result = await screenWallet('0x...', {
  apiUrl: process.env.SHULAM_FACILITATOR_URL,
  apiKey: process.env.SHULAM_API_KEY,
});

Acceptance Criteria

  • SHULAM_FACILITATOR_URL env var accepted, defaults to https://api.shulam.xyz
  • All Shulam API calls use the configured URL
  • README documents the configuration option
  • Tests verify custom URL routing

Related

  • Shulam PL-9: Bankr Code Integration (E-BCI-06)
  • bankr-skills/compliance-screening/ — uses SHULAM_API_URL config
  • bankr-skills/trust-scoring/ — uses SHULAM_API_URL config

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions