rwa-kyc-hook
Token-2022 Transfer Hook program for RWA primary issuance on x402. v2 is multi-issuer SaaS: one program deployment serves many issuers via UUID issuer_id in PDA seeds.
Workspace
| Crate | Role |
|---|---|
api |
Account layouts, PDAs, SDK, errors/events |
program |
Platform + issuer ops + hook Execute |
cli |
Operator CLI (--program-id, --issuer-id, ops/payer keypairs) |
Build
Publish CLI to crates.io (v2)
Crates.io currently has rwa-kyc-hook-api 0.0.1 (v1, single-tenant). The workspace is 0.2.0 (v2 multi-issuer). Publish in order:
The on-chain program crate is publish = false (SBF artifact only).
Quick start (v2)
# optional
# register issuer via CLI (see DEPLOYMENT_GUIDE)
See docs/TECHNICAL_SPEC.md, docs/DEPLOYMENT_GUIDE.md, docs/SYNC_RUNBOOK.md.
Cluster-agnostic design
- PDAs use runtime
program_idfrom the entrypoint. declare_id!inapiis a Steel placeholder only.
Integration
- Portal: rwa-issuer-portal — KYC system of record
- Ops sync: rwa-kyc-sync — portal feed → CLI → on-chain
- Seller: x402-buy-rwa-token — catalog
issuer_id,transfer_hook_program - Oracle: oracle-rwa-transfer — hook program pin
- Binding: Postgres
issuers.id→ on-chainissuer_id; sync worker →Update*KycVerified