1
Get your API key
Provision (or generate) an admin API key for your tenant. Idem API keys have the format
sk_live_{uuid} and are shown exactly once. Set it as an environment variable:See Authentication for details on creating additional scoped keys for different integrations.
2
Create two accounts
Every transaction needs accounts to post to. Create an ASSET account (representing a wallet you hold) and a LIABILITY account (representing what you owe to customers):Each response returns an
id UUID. Save both:3
Post a balanced transaction
Post a two-line transaction: DEBIT the asset account (value coming in) and CREDIT the liability account (obligation created). The A successful
Idempotency-Key header prevents duplicate posts on retries.201 response returns the committed transaction ID:If you retry with the same
Idempotency-Key after a success, you get the original result back — no duplicate is posted.4
Verify the balance
Confirm the transaction posted by checking the asset account balance:Expected response:Check the liability account balance too — it should show
100.00 as well, confirming the double-entry invariant holds.Next steps
Double-Entry Concepts
Understand the full journal line model, fiat vs. on-chain entries, and the balance invariant.
Settlements
Register settlement expectations to watch for incoming on-chain transfers.
Reconciliation
Re-run matching for transactions that weren’t reconciled on initial commit.
Authentication
Create scoped API keys for different integrations using least-privilege access.
Code Examples
Kotlin reference implementations covering most Idem features, including the MCP client.