Generate an Ethereum wallet keypair for both your app and the end user; Sila uses blockchain-based message signing (secp256k1) for authentication rather than traditional API keys alone
Register a user handle: POST /0.2/register with header.auth_handle (your app handle), message: 'header_msg', and the user's personally identifiable information (name, address, SSN last 4 or full, date of birth, email, phone) plus their Ethereum address; sign the request header with your app private key
Request KYC: POST /0.2/request_kyc with the user handle and app auth; poll POST /0.2/check_kyc until kyc_status is PASSED
Link a bank account: POST /0.2/link_account with the user handle, Plaid public_token (via Plaid Link) or direct account/routing numbers; both the app and user private keys must sign the request
Issue an ACH debit: POST /0.2/issue_sila with the user handle, amount (in Sila token units where 1 Sila = $0.01 USD), and account_name; this initiates an ACH pull and mints equivalent Sila tokens into the user's wallet
Known gotchas
Every Sila API request requires dual signatures: the app's private key signs the header and the user's private key signs the message — missing either signature returns an auth error
Sila tokens represent USD at a 1:1 fixed rate where 1 Sila = $0.01 (i.e. 100 Sila = $1.00); ensure your amount conversion logic accounts for this denomination to avoid 100x errors
KYC must reach PASSED status before any banking transactions (issue, redeem, transfer) are permitted; do not attempt to skip the KYC check step in production flows
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp