kotobase
Menu

Developers

Technical details, legal documents and some account steps still dey for English.

Start with language and graph protocol wey your application don dey use before.

Make you get token

No need card

Create session with Passkey or EIP-4361 SIWE wallet. Kotobase go issue short-lived Biscuit wey dey limited to one tenant, graph, holder, expiry, and permission set.

Wetin KOTOBASE_TOKEN be

The main API credential na short-lived Biscuit wey dem go issue only after Passkey or SIWE authentication. Make you request am for exact graph and permissions wey you need:

POST https://auth.kotobase.net/v1/biscuit/token

{"tenantId":"...","graph":"...","permissions":["data:write"]}

Use the full authorization value wey endpoint return:

Authorization: Biscuit <token>

CACAO and opaque Bearer credentials na only for migration compatibility.

How to use am

Pass the authorization value wey dem return directly to TypeScript, Python, or PHP SDK:

export KOTOBASE_TOKEN="Biscuit ..." && kotobase account-status

If Biscuit reject, e no go try again as CACAO or Bearer.

Build paths

Command line

Install CLI with one command:

curl -fsSL https://kotobase.net/install.sh | sh

E need babashka and e dey write only for your own ~/.local.

SDKs

TypeScript, Python, and PHP clients dey share one transport and authentication contract.

Query protocols

Datomic Client API, SPARQL (including RDF4J HTTP path compatibility), Cypher, Gremlin, and GraphQL dey tracked through explicit capability discovery and conformance tests.

AI and agents

Use the MCP endpoint for

https://kotobase.net/mcp

for the same tenant graph, or make

kotobase mcp

to send out the client configuration.

Local-first knowledge

Import or sync Obsidian vault both ways, keep Markdown, frontmatter, and [[wikilinks]] safe.

Query plane architecture

Ayatori

Ayatori na di query-plane composition wey turn provider discovery and immutable IPLD blocks into persistent, queryable projection.

Read di Ayatori source and API

Di way wey e dey read connection

IPNI discovery → provider block fetch → CID verification → required Arrangement ranges → persistent cursor → Datalog

Discovery na only provider hint. Ayatori no dey treat am as proof of retrieval, CID validity, or query execution.

Current deployment status

As of 30 August 2026, di shared kotobase.net production query request path dey composed on ayatori.query, and di production component lock names ayatori.

That na change of which repository dey serve production, no be wetin e dey compute: ayatori.query na alias namespace over di same bridge. IPNI provider discovery and verified remote block reads still no dey perform for di request path.

Library border dem and wetin e depend on

Library Responsibility Direct relationship Status
ayatori E dey coordinate discovery, verified remote reads, persistent cursors, plus query materialization. E dey use io-ipni-specs, io-ipld, arrangement, plus kotobase. On di production request path; its discovery and remote-read planes no dey
io-ipni-specs E dey parse IPNI adverts and delegated-routing provider results. Returns provider candidates; e no dey fetch or verify blocks. Ayatori dependency
io-ipld E dey encode and decode IPLD links and e dey verify blocks against requested CIDs. Ayatori and the persistent index stack na dem dey use am. Production component dependency
arrangement E dey persist four covering indexes as CID-addressed snapshots and e dey expose cursor reads. E dey use prolly-tree, datom-source, and datalog. Production component dependency
prolly-tree E dey store ordered index nodes as content-addressed DAG-CBOR blocks. E dey provide lookup, prefix scan, and range scan to arrangement. Production component dependency
datom-source E dey define the storage-neutral pattern cursor contract wey query paths dey use. E dey separate query evaluation from any particular storage implementation. Production component dependency
datalog E dey evaluate Datalog over four covering indexes; e no get storage or network I/O. E dey consume datom sources and indexes wey caller supply. Production component dependency
kotobase-query Na compatibility bridge from the flat Kotobase store go Datalog materialization. E get two namespaces wey ayatori carry, so callers wey still dey name dem go still dey resolve am. E don old; the same namespaces now dey ship from ayatori

Status labels dey describe the shared production query components wey dem inspect on 30 August 2026. One source pin or passing benchmark no mean say library dey serve production requests.

Start to build