Use attribute macros to abstract away the boilerplate. Compose smart contracts out of encapsulated components.
Perform production builds of your contracts in a Docker container.
Export a rich API
@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.
Highly performant keyed, namepaced, and iterable data storage primitives. Conversion between human-readable Addr and storage-friendly CanonicalAddr on the struct level.
Fadroma implements 256-bit math for EVM/Cosmos interop, hashing, and randomness for contracts.
Interact with fungible and non-fungible distributed tokens.
Fadroma implements several common access control patterns and primitives.
Spawn local blockchain nodes for development and 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.
Fadroma runs builds and devnets in containers using Docker or Podman
Fadroma scripts are structured as ES/TS modules that export one or more commands.
You can configure the TypeScript subsystems of Fadroma using env vars and/or a .env file.
Fadroma is tested using the Ensuite documentation and testing harness for Markdown and TypeScript.