What is SDP?
One API for tokenization, custody, payments, and compliance on Solana.
SDP gives organizations project-scoped access to tokenization, custody, payments, and compliance through one stable API in front of interchangeable providers. Integrate against the API once; swap or add providers without changing your integration code.
| Module | What it does |
|---|---|
| Issuance | Deploy, mint, burn, freeze, pause, and seize tokens built on Token-2022 |
| Custody | Provision and operate Solana wallets through interchangeable custody providers |
| Payments | Move funds onchain — transfers, batches, recurring payments, payment requests, and ramps |
| Compliance | Screen wallets and transactions against your regulatory program |
Background
Institutional capital is moving onchain: $35 billion in tokenized real-world assets across public blockchains, $3.2 billion of it on Solana, and tokenized stocks — where Solana settles most trading volume — as the fastest-growing slice.
Assets at this scale need regulated custody, enforceable compliance, and auditable controls. SDP provides them as one API, so bringing an asset onchain does not require a team of Solana developers.
Core Features
Unified Programming Interface
SDP puts one stable API in front of the Solana ecosystem's providers, so you integrate once and swap or add providers without changing your code. The same onramp call works for every ramp provider. The provider field is the only thing that changes.
const response = await fetch(
"https://api.solana.com/v1/payments/ramps/onramp/quote",
{
method: "POST",
headers: {
Authorization: "Bearer sk_test_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
provider: "moonpay",
counterpartyId: "cp_...",
destinationWallet: "wal_...",
cryptoToken: "USDC",
fiatCurrency: "USD",
fiatAmount: "100.00",
}),
},
);
const quote = await response.json();Wallet Custody
Provision signing wallets through integrated custody providers, so your team never handles private keys. Hosted keys never leave the provider's MPC or TEE infrastructure and SDP only handles the signed transaction. Local development keys are encrypted at rest with AES-256-GCM using per-organization derived keys, and every signing request passes policy and permission checks before it executes.
-
Built on
@solana/keychainThe unified Solana signing interface. Every custody backend is a keychain adapter behind the same signing API, which is what makes providers interchangeable.
-
Constrain how a wallet can move funds. Destination controls, amount limits, operation permissions, approval requirements, and audit visibility, enforced before any operation executes.
-
Scoped custody configuration
Custody settings resolve per project, then organization, then environment, so different teams can run different providers side by side.
Issuance and Compliance with Token-2022
Create tokens from pre-built templates (stablecoin, tokenized security) or configure your own using Token-2022 extensions. Deploy, mint, burn, and manage supply through the dashboard or API.
Those same extensions are what make compliance enforceable onchain. Freeze individual accounts, pause token activity, seize tokens, and manage each token's Token Access Control list for regulated issuance flows. Selected compliance actions accept reason or memo fields for audit trails. Every enforcement action is one POST on the same token surface.
const response = await fetch(
"https://api.solana.com/v1/issuance/tokens/tok_abc123/freeze",
{
method: "POST",
headers: {
Authorization: "Bearer sk_test_...",
"Content-Type": "application/json",
},
body: JSON.stringify(operationParams),
},
);
const result = await response.json();Ramps and Onchain Transfers
SDP exposes unified endpoints for onchain transfers and ramps across providers, built on official Solana program implementations like Subscriptions and Solana Pay. These power Recurring Payments, Payment Requests, and Batch Transfers within SDP.
curl -X POST https://api.solana.com/v1/payments/recurring-payments \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{
"sourceCustodyWalletId": "cwlt_123",
"counterpartyId": "cp_...",
"counterpartyAccountId": "cpa_...",
"token": "USDC",
"amount": "25.00",
"periodHours": 720
}'The same API extends to on/offramps: rate estimates, quotes, and settlement work identically across every provider and corridor, so money can enter as fiat, live onchain as a token you issued, and exit back to fiat: a complete lifecycle from issuance through circulation to redemption, without stitching together provider-specific integrations. See Payments for transfers and Ramps for supported providers, currencies, and corridors.
Audit Trails
Every sensitive operation is recorded automatically. Each entry captures the acting user or API key, the resource touched, success or failure, client IP, user agent, request id, and secret-redacted metadata, and is queryable per organization.
| Area | Recorded events |
|---|---|
| API keys | Create, revoke, and rotate, for both organization and project-scoped keys |
| Token issuance | Deploy, mint, burn, force-burn, supply changes, and authority updates |
| Compliance actions | Freeze, unfreeze, pause, unpause, seize, and Token Access Control changes |
| Custody | Provider configuration, wallet provisioning, and credential lifecycle changes |
| Transactions & signing | Signing requests, submissions, and failed submissions |
| Organization & access | Members, invitations, projects, project membership, and login sessions |
| Counterparties & assets | Counterparty and Counterparty Account changes, asset profile changes |