# WafrChain > A permissioned blockchain for Shariah-compliant financial instruments. Each kind of instrument, such as a sukuk, is a WebAssembly contract type published on chain. Each link points to the Markdown version of a documentation page. `llms-full.txt` contains every page in one file. ## Get started - [WafrChain](https://docs.wafrchain.com/md/index.md): A permissioned blockchain for Shariah-compliant financial instruments. Each kind of instrument, such as a sukuk, is a WebAssembly contract type published on chain. - [Architecture](https://docs.wafrchain.com/md/architecture.md): The parts of a WafrChain network (organisations, member nodes, validators, the registry, the synchronized clock and the scheduler) and how a transaction flows through them. - [Status and roadmap](https://docs.wafrchain.com/md/status.md): What is implemented today, and what is designed and coming next. ## Concepts - [Organisations and nodes](https://docs.wafrchain.com/md/concepts/network.md): Who takes part in a WafrChain network, which nodes each organisation runs, and how identities, membership and validators are governed. - [Roles and parties](https://docs.wafrchain.com/md/concepts/roles.md): The operator, the capacities an organisation can hold, the parties each instrument names, and how investors take part through wallets. - [Instruments](https://docs.wafrchain.com/md/concepts/instruments.md): What an instrument type is, how an instrument is created from it, how a type declares the parties involved and who must approve changes, and how types are versioned. - [Privacy and private records](https://docs.wafrchain.com/md/concepts/privacy.md): Who can see which data on WafrChain, how private records work, and a worked example of one purchase. - [Scheduling](https://docs.wafrchain.com/md/concepts/scheduling.md): Instruments schedule their own wake-ups; nodes fire them automatically, exactly once, never early, and catch up after downtime. - [Time](https://docs.wafrchain.com/md/concepts/time.md): Every node takes its time from authenticated time servers named on chain, rejects implausible timestamps and refuses to act on unverified time. ## Registry guides - [Calling the registry](https://docs.wafrchain.com/md/registry/overview.md): How organisations call the registry with protobuf requests through their member node, with the typed Go client, and how errors, validation, instrument messages and events work. - [Setting up the market](https://docs.wafrchain.com/md/registry/setup.md): Bootstrap the registry once with the operator's identity, then register organisations with their capacities and manage their status. - [Currencies and terms](https://docs.wafrchain.com/md/registry/currencies.md): Keep the on-chain currency list, and issue instruments with standard terms denominated in a listed currency. - [Publishing instrument types](https://docs.wafrchain.com/md/registry/instrument-types.md): Publish a version of an instrument type with its manifest, WebAssembly code and protobuf descriptors, then deprecate or revoke it. - [Working with instruments](https://docs.wafrchain.com/md/registry/instruments.md): Issue instruments with their parameters and parties, call their contract functions, and approve and perform forward-only upgrades. - [Wallets](https://docs.wafrchain.com/md/registry/wallets.md): Create custodial and self-custodial wallets, sign intents, change controllers, recover lost keys, freeze and close wallets, and authorize contract calls. - [Running timers](https://docs.wafrchain.com/md/registry/scheduling.md): Run due wake-ups, read an instrument's schedule and list what is due, for monitoring and manual triggering. - [Setting the time policy](https://docs.wafrchain.com/md/registry/time.md): Set and read the network time policy that nodes use for their clocks, timestamp checks and wake-up grace. ## API reference - [Registry service](https://docs.wafrchain.com/md/api/registry-service.md): Every function of the WafrChain registry, with its request and response messages. Generated from the protobuf definitions. - [Records](https://docs.wafrchain.com/md/api/records.md): The records the registry keeps on the ledger and returns: organisations, currencies, instrument types, instruments, schedules, time policy and wallets. Generated from the protobuf definitions. - [Events and errors](https://docs.wafrchain.com/md/api/events.md): Events the registry emits and the error codes of failed calls. Generated from the protobuf definitions. - [Instrument ABI messages](https://docs.wafrchain.com/md/api/abi-messages.md): Messages exchanged between an instrument's code and the registry host. Generated from the protobuf definitions. - [Network configuration](https://docs.wafrchain.com/md/api/network-config.md): Values WafrChain adds to the network configuration, enforced by the validators. Generated from the protobuf definitions. ## Instrument development - [Instrument ABI](https://docs.wafrchain.com/md/develop/abi.md): The WebAssembly interface between an instrument type's code and the registry host, the sandbox rules and the execution limits. - [Rust SDK](https://docs.wafrchain.com/md/develop/rust-sdk.md): The wafr-sdk crate wraps the host functions and the WafrChain protobuf messages for contracts written in Rust and compiled to wasm32-unknown-unknown. - [Manifest reference](https://docs.wafrchain.com/md/develop/manifest.md): What an instrument type's manifest declares, the rules between its fields, and how the type's own protobuf messages define its parameters and functions. - [Worked example](https://docs.wafrchain.com/md/develop/example.md): A small instrument type that pays each bank on a schedule, in batches, then matures, from its protobuf messages and Rust source to a running instrument. ## Operations - [Installing the registry](https://docs.wafrchain.com/md/operations/deploy.md): Build the registry, install it on the network, and bring a new network from empty to its first instrument type. - [Node configuration](https://docs.wafrchain.com/md/operations/peer-config.md): Configure a member node's synchronized clock, timestamp check and scheduler. - [Metrics and logs](https://docs.wafrchain.com/md/operations/metrics.md): What a WafrChain node reports about its clock and scheduler, and which log lines to alert on. - [Testing](https://docs.wafrchain.com/md/operations/testing.md): How to run the unit tests, rebuild the test contracts and run the end-to-end suite on a local multi-organisation network. ## Reference - [Ledger keys](https://docs.wafrchain.com/md/reference/ledger-keys.md): Every record the registry keeps on the ledger, and the endorsement rules attached to them. - [Limits and formats](https://docs.wafrchain.com/md/reference/limits.md): Size limits, identifier formats, durations and timestamps used across the registry and contracts. - [Glossary](https://docs.wafrchain.com/md/reference/glossary.md): Terms used across the WafrChain documentation.