> For the complete documentation index, see [llms.txt](https://furnis.gitbook.io/furnis/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://furnis.gitbook.io/furnis/readme.md).

# Introduction

## What is [Furnis](https://www.furnis.io/)?

* Furnis is an on-chain interaction command station designed for smart contract developers and blockchain teams.
* Furnis enables users to orchestrate, organize, and manage their blockchain transactions, including smart contract deployments and interactions.
* Furnis serves as a centralized platform for conducting on-chain activities in a consistent and managed environment.

## Why Furnis?

* Traditional methods of managing protocol interactions are cumbersome and prone to errors:
  * Developers often run scripts from local machines using personal wallet private keys.
  * This approach lacks transparency: it's unclear which branch or commit was used for deployment.
  * Local changes may not be committed, leading to inconsistencies.
  * Sharing deployed contract ABIs and addresses among team members is inefficient and error-prone.

<figure><img src="/files/G5ShYDS3vaS247zZ6lOW" alt="" width="563"><figcaption></figcaption></figure>

* Furnis addresses these issues by providing a secure, structured, team-oriented approach to on-chain interactions:
  * creates a consistent, managed environment for teams to conduct their on-chain activities.
  * enhances collaboration by centralizing deployment information and artifacts.
  * provides transparency into which version of code was used for each deployment or interaction.
  * standardizes the deployment and interaction process, reducing errors and improving reproducibility.

## Core Features

### Project Management

* Projects are the highest-level organizational unit in Furnis.
* Each project is linked to a GitHub repository (1:1 relationship).
* Projects contain global configurations including environment variables, allowed signers, networks, and [forge](https://book.getfoundry.sh/reference/cli/forge) settings.
* Templates are created within projects and are linked to specific [forge scripts](https://book.getfoundry.sh/reference/cli/forge/script) in the project's repository. They allow for more granular configuration and reusability of common interaction patterns.

### Secure Execution Environment

* Executions are triggered from templates and run in private Docker containers.
* Real-time console output displays execution logs to users.
* Transactions are signed using AWS KMS-managed key pairs, ensuring that private keys are never exposed and are encrypted at rest.

### Logging and Artifact Management

* All interactions and ABIs generated from deployed contracts during script execution are processed and saved.
* Users can view historical executions, including metadata such as gas cost and usage.
* Easy download of ABIs for future reference or sharing with team members.
