Stableyard REST API

The Stableyard API provides programmatic access to Money Account infrastructure, enabling you to build payment flows, manage vaults, and process settlements. Base URL: https://api.stableyard.fi
Partner AccessEvery partner receives a partnerId, STABLEYARD_APP_ID, and STABLEYARD_APP_SECRET from us. With these credentials, you can create and manage as many Money Accounts as needed for yourself or your users.Contact us: mitesh@stableyard.fi or @miteshmetha

API Categories

Authentication

All API requests require the Authorization header with Basic auth (credentials obtained from the Stableyard SDK). Account and Vault APIs require both STABLEYARD_APP_ID and STABLEYARD_APP_SECRET. All other APIs require only STABLEYARD_APP_ID:
# Account & Vault APIs
curl -X GET https://api.stableyard.fi/sdk/v1/get-user?userId=user_123 \
  -H "Authorization: Basic $(echo -n $STABLEYARD_APP_ID:$STABLEYARD_APP_SECRET | base64)"
# Other APIs (Payment, Deposit, Verification, Public)
curl -X POST https://api.stableyard.fi/sdk/v1/quote \
  -H "Authorization: Basic $(echo -n $STABLEYARD_APP_ID | base64)"

Response Format

All responses follow a consistent structure:
{
  "success": true,
  "data": { ... },
  "requestId": "uuid-request-id"
}
Error responses:
{
  "success": false,
  "error": "Error message",
  "requestId": "uuid-request-id"
}

Endpoints Summary

Public Endpoints

No authentication required for these endpoints.
EndpointMethodDescription
/sdk/v1/resolveGETLookup Account — Find Money Account by payment address
/sdk/v1/get-balancesGETGet Portfolio — View balances across all chains
/sdk/v1/supported-chainsGETSupported Networks — List all chains and tokens

Account Endpoints

EndpointMethodDescription
/sdk/v1/registerPOSTCreate Account — Register new Money Account
/sdk/v1/update-usernamePOSTSet Username — One-time username assignment
/sdk/v1/get-userGETGet Account — Retrieve account by ID or username
/sdk/v1/get-user-byaddressGETLookup by Wallet — Find account by wallet address
/sdk/v1/check-usernameGETUsername Availability — Check if username is taken
/sdk/v1/update-preferencesPOSTSettlement Settings — Configure preferred chain/token
/sdk/v1/add-addressPOSTLink Wallet — Connect additional wallet
/sdk/v1/remove-addressPOSTUnlink Wallet — Disconnect a wallet
/sdk/v1/get-transactionsGETTransaction History — Paginated transaction list
/sdk/v1/get-transactionGETTransaction Receipt — Single transaction details

Vault Endpoints

EndpointMethodDescription
/sdk/v1/create-vaultPOSTCreate Vault — Deploy non-custodial Smart Account
/sdk/v1/deploy-role-modulePOSTEnable Permissions — Deploy permissions module
/sdk/v1/get-balancePOSTVault Balance — Check balance on specific chain

Deposit Endpoints (Static)

Static deposit addresses are bound to a Money Account and can be reused for unlimited deposits.
EndpointMethodDescription
/sdk/v1/generatePOSTGet Deposit Address — Static address for receiving funds
/sdk/v1/verify-transferPOSTVerify Transfer — Poll for deposit completion

Payment Endpoints

EndpointMethodDescription
/sdk/v1/quotePOSTCreate Quote — Get deposit address and payment details
/sdk/v1/verify-transferPOSTVerify Transfer — Poll for payment/deposit completion
Payment Flow:
1. Create Quote → Get depositAddress + quoteId
2. User sends tokens to depositAddress on-chain
3. Poll verify-transfer with quoteId until complete

Verification Endpoints

EndpointMethodDescription
/sdk/v1/is-kyc-doneGETVerification Status — Check if identity verified
/sdk/v1/get-kyc-linkGETStart Verification — Generate verification link

Rate Limits

TierRequests/Minute
Standard60
Business300
EnterpriseCustom

Supported Chains

ChainChain IDStatus
Ethereum1Active
Base8453Active
Arbitrum42161Active
Polygon137Active
Optimism10Active

Quick Start

const APP_ID = 'YOUR_STABLEYARD_APP_ID';
const APP_SECRET = 'YOUR_STABLEYARD_APP_SECRET';
const credentials = btoa(`${APP_ID}:${APP_SECRET}`);
const BASE_URL = 'https://api.stableyard.fi';

// Create a Money Account
const accountRes = await fetch(`${BASE_URL}/sdk/v1/register`, {
  method: 'POST',
  headers: { 'Authorization': `Basic ${credentials}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({
    username: 'alice',
    addresses: [{ address: '0x...', chainType: 'evm' }]
  })
});
const account = await accountRes.json();

// Create vault for the Money Account
const vaultRes = await fetch(`${BASE_URL}/sdk/v1/create-vault`, {
  method: 'POST',
  headers: { 'Authorization': `Basic ${credentials}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({ userId: account.data.userId })
});
const vault = await vaultRes.json();

// Create payment quote
const quoteRes = await fetch(`${BASE_URL}/sdk/v1/quote`, {
  method: 'POST',
  headers: { 'Authorization': `Basic ${credentials}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({
    userId: account.data.userId,
    amount: '100.00',
    destinationPaymentAddress: 'merchant@stableyard'
  })
});
const quote = await quoteRes.json();
Next: Learn about Authentication — Basic auth and security.