DocumentationTypeScriptRustWork In ProgressPlannedCommand lineExperimental

View documentation for Fadroma Contracts

Get started with Fadroma

Fadroma is a framework for building decentralized applications with Rust and TypeScript. From a single token to a hundred-contract DEX and beyond, Fadroma makes it easy to write CosmWasm smart contracts, deploy them, and integrate them into your Web app.

Licensing

Fadroma is free software, available to the public under the AGPLv3 license. This license protects user freedoms and encourages responsibility towards the digital commons. If this license doesn't work for your business case, email us at [hello at hack dot bg] to arrange for custom licensing options.

Supported platforms

Fadroma 1.0.0 supports Secret Network. During HackWasm Berlin 2023, work began on generic support for other CosmWasm chains, and OKP4 in particular.

Fadroma DSL

Use attribute macros to abstract away the boilerplate. Compose smart contracts out of encapsulated components.

Build reproducibly

Perform production builds of your contracts in a Docker container.

Export a rich API

Extend the @fadroma/agent library to define the structure of your project, export a client library for third-party integrations, and add support for new chains.

Deploy and operate

Manage hundreds of heterogeneous contracts using a declarative API.

Efficient storage

Highly performant keyed, namepaced, and iterable data storage primitives. Conversion between human-readable Addr and storage-friendly CanonicalAddr on the struct level.

Math primitives

Fadroma implements 256-bit math for EVM/Cosmos interop, hashing, and randomness for contracts.

Authorization

Fadroma implements several common access control patterns and primitives.

Local devnets

Spawn local blockchain nodes for development and testing.

Integration testing

Test the interoperation of multiple smart contracts. Quickly execute smart contracts in a simulated local environment, without waiting for block validation. Test smart contracts for edge cases using auto-generated input data.

Docker integration

Fadroma runs builds and devnets in containers using Docker or Podman

Scripting

Fadroma scripts are structured as ES/TS modules that export one or more commands.

Configuration

You can configure the TypeScript subsystems of Fadroma using env vars and/or a .env file.

Literate programming

Fadroma is tested using the Ensuite documentation and testing harness for Markdown and TypeScript.