A modern tool for exploring the ancient wisdom of the I Ching
The I Ching, or the Book of Changes, is an ancient Chinese manual of divination.
The original method of consulting the I Ching is unknown, but the earliest known practice involved an elaborate manipulation of 50 Yarrow Stalks. This was later exchanged for a much simpler process of throwing three coins six times.
In both cases, the result is a set of six numbers (either 6, 7, 8, or 9), each of which represent one line in the visual Gua or Hexagram from a set of 64 possibilities.
Each line of a Hexagram can be Broken (- -) or Unbroken (---). Broken lines represent the principle of Yin (Earth, Feminine, the dark principle), while Unbroken lines represent Yang (Heaven, Masculine, the light principle). Neither Yin nor Yang are more valuable than the other - although their proper relations carry a hierarchical connotation - and it's their synthesis in a dynamic, contradictory world that the I Ching attempts to catalog.
When conducting a reading of the Yarrow Stalks, or the coins, in addition to Yin and Yang, each line can also be calculated to be 'static' or 'moving.' In the final reading, after all the lines have been accumulated from the bottom up to form a single Hexagram, any lines marked as moving are changed over to their opposite (Yin for Yang, as well as vice versa), and a second Hexagram may be formed. This won't always be the case, as all lines may come back 'static,' so a final reading may be a single Hexagram, or a 'present' Hexagram (the original) and a 'future' Hexagram (the one formed by exchanging moving lines for their opposite).
Once the reading is complete, the Hexagram[s] achieved will be looked up in the I Ching and interpreted by the diviner. Each Hexagram has its own associations to be considered, as well as a 'Judgement' stanza, an 'Image' stanza, and a stanza associated with each moving line thrown. These are read and reflected on in relation to the question asked, and as with any form of divination, their interpretation carries an artistic quality, rather than being subject to an objective standard.
Enter your question in the text field at the top of the Explorer page, then choose your method and style.
Throwing method:
Throwing style:
Press Cast Reading to begin. Free accounts can cast 1 reading per day; premium accounts get 10.
After casting, a detail view opens showing your present Hexagram with its Judgement, Image, and any moving line texts. Click on any section heading to expand the full interpretation.
If your reading has moving lines, a second "future" Hexagram is shown — formed by flipping each moving line to its opposite.
Click hexagram symbols within a reading to explore those Hexagrams in detail.
Every reading you cast is saved automatically and appears in the Reading History grid below the casting area. Click any card to reopen its full detail view. History is paginated and can be collapsed out of view by clicking on the "Reading History" header.
The Hexagram grid shows all 64 Hexagrams with their number, symbol, and name. Below it, the Trigram grid shows all 8 Trigrams. Click any cell to open a detail view with the name, structure, Judgement, Image, and line texts.
From a Hexagram detail view you can click its upper or lower trigram to navigate deeper, and use the back button to return.
The source selector (in your Profile settings) lets you switch between different I Ching translations. System sources like Wilhelm are built-in and available to everyone.
You can also create your own source via + Add New Source, then edit translations directly from any Hexagram or Trigram detail view. Your custom sources are private to your account.
After registering, verify your email to unlock casting. Your Profile page (accessible from the Explorer header) has three tabs:
Premium subscribers can generate API keys to interact with I Ching Explorer programmatically. Keys are managed from the Security tab on your Profile page.
Creating a key:
Authentication: include your key in the Authorization header:
Authorization: Bearer ich_live_your_key_here
Endpoints:
POST /api/readings/cast — cast a reading server-side. Send question, method (yarrow or coin), and optionally intentions.POST /api/readings — submit a manually thrown reading with your own lineValues, presentHexagram, and futureHexagram.GET /api/readings — list your readings. Supports filters: since, before, method, style, hexagram, futureHexagram, question, limit, offset.GET /api/readings/quota — check your remaining daily readings.GET /api/hexagram/:number — get a hexagram translation. Add ?source=name to choose a translation source.GET /api/hexagram/bulk/:numbers — get multiple hexagram translations in one call. Pass comma-separated numbers (e.g. /bulk/1,2,42).GET /api/trigram/:number — get a trigram translation (1–8). Add ?source=name to choose a source.GET /api/trigram/bulk/:numbers — get multiple trigram translations (e.g. /bulk/1,5).Response objects:
Reading endpoints (POST /cast, POST /, GET /:id) return a single reading object. GET /api/readings returns an array of the same, sorted newest first.
{
"id": "string — unique reading ID",
"question": "string",
"intentions": "string",
"method": "yarrow | coin | manual",
"style": "user | daily | weekly | monthly | annual",
"presentHexagram": 1–64,
"futureHexagram": 1–64,
"movingLines": [1–6, ...] — line positions that are moving (empty if none),
"lineValues": [6|7|8|9, ...] — one value per line, bottom (index 0) to top,
"owner": "uuid | null",
"timestamp": "ISO 8601 string"
}
GET /api/readings/quota returns:
{
"allowed": true | false,
"remaining": 0–N,
"limit": 1 | 10,
"used": 0–N,
"tier": "free | basic"
}
Hexagram and trigram endpoints return a translation object. GET /bulk returns an object keyed by number.
{
"hexagramNumber": 1–64,
"name_raw": "original text",
"name_translation": "translated name",
"name_interpretation": "interpretive note",
"judgment_raw": "original text",
"judgment_translation": "...",
"judgment_interpretation": "...",
"image_raw": "original text",
"image_translation": "...",
"image_interpretation": "...",
"line1_raw" … "line6_raw": "line text for each moving line",
"line1_translation" … "line6_translation": "...",
"line1_interpretation" … "line6_interpretation": "..."
}
Trigram translations follow the same shape with trigramNumber (1–8) and no line fields.
Limits:
Have questions or feedback? We'd love to hear from you.
Email: bobby@21kworlds.earth