SFLC documentation
SFLC is the tokenized equity management system and ledger for private companies. This documentation covers the API, smart contracts, compliance architecture, and SDKs you'll use to integrate with the platform.
SFLC is in private beta with select issuers and is SOC 2 Type II certified. Request access via your account team or sales@sflc.xyz.
Quickstart
The SFLC API is REST-based and uses JSON for request and response bodies. Every request is authenticated with an API key passed via a bearer token.
Set your API key:
# sandbox export SFLC_API_KEY="sk_sandbox_4b71...8f3c" # production export SFLC_API_KEY="sk_live_4b71...8f3c"
Hit your first endpoint to verify connectivity:
curl https://api.sflc.xyz/v1/organization \ -H "Authorization: Bearer $SFLC_API_KEY"
Authentication
API keys are scoped to an organization and a permission set. The platform supports two key types:
| Type | Prefix | Use |
|---|---|---|
| Sandbox | sk_sandbox_ | Testing, no real settlement |
| Live | sk_live_ | Production · billable transfers |
| Read-only | rk_live_ | Reporting · cannot mutate state |
| Webhook signing | whsec_ | Verify webhook signatures |
Never expose live keys in client code. Rotate keys quarterly and immediately if compromised. Multi-sig admin actions are required for grants, issuances, and rule changes.
Transfers API
Initiate, monitor, and settle programmatic equity transfers between holders.
Create a transfer
import { SFLC } from "@sflc/sdk"; const sflc = new SFLC({ apiKey: process.env.SFLC_API_KEY }); const transfer = await sflc.transfers.create({ from: "a.chen.eth", to: "paradigm-fund.eth", asset: "HLN-CMN-A", shares: 2500, exemption: "144A", }});
Parameters:
| Field | Type | Description |
|---|---|---|
| from | address | Source wallet or ENS |
| to | address | Destination wallet · must be on whitelist |
| asset | string | Token class symbol (e.g. HLN-CMN-A) |
| shares | number | Number of tokens to transfer |
| exemption | enum | One of 144A, 4(a)(7), 506(c), Reg-S |
| settlement | object | Settlement asset + chain (defaults to USDC/ethereum) |
Lifecycle webhooks
Subscribe to lifecycle events to keep your systems in sync with on-chain state. Events fire at every state transition:
transfer.created— request acceptedtransfer.preclear_pending— compliance runningtransfer.precleared— checks passed, awaiting matchtransfer.matched— counterparty or pool filltransfer.settled— atomic swap completetransfer.blocked— rule violation, with reason code
Sandbox environment
The sandbox mirrors production but uses synthetic stablecoin and a parallel ledger. Sandbox keys never trigger real settlement and never bill.
- Sandbox base URL:
https://api-sandbox.sflc.xyz - Sandbox UI:
https://app-sandbox.sflc.xyz - Test wallets pre-funded with synthetic USDC
- Pre-seeded organization with sample cap table
Move to the Core concepts → Token classes section to learn how SFLC models equity instruments as programmable smart contracts.