Skip to main content
The Idem Ledger API uses double-entry bookkeeping — every transaction must have at least two journal lines where debits equal credits. This quickstart walks you through getting your API key, creating two accounts, posting a balanced transaction, and verifying the resulting balance.
Idem is open source (FSL-1.1-ALv2) and can be self-hosted, run against the managed cloud, or shipped as the enterprise distribution. The examples below use https://api.your-domain.com as a placeholder — swap it for your Idem base URL (for example, http://localhost:8080 if you’re running the docker-compose stack locally).
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:
Account currency and type are immutable after creation. Choose carefully.
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 Idempotency-Key header prevents duplicate posts on retries.
A successful 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.