Getting Started

Creating a Project

Upon signup, you will be prompted to install the Github App

Explanation of Required Permissions

Contents (Read-only)

Furnis requires read access to repository contents, commits, branches, downloads, releases, and merges to function effectively. This permission allows Furnis to:

  • Fetch smart contract code for deployment

  • Access specific branches or commits for versioned deployments

  • Read project structure to identify deployable contracts

  • Sync with your latest code changes automatically

Workflows (Read and write)

Furnis uses this permission to create powerful, automated deployment pipelines:

  • Set up GitHub Actions for automated testing and deployment

  • Create custom workflow files tailored to your project's needs

  • Update workflows as your deployment requirements evolve

  • Enable event-based triggers for Furnis actions

Members (Read-only)

This permission allows Furnis to implement advanced team-based features:

  • Set up team-based deployment approvals

  • Provide organization-wide deployment tracking and analytics

  • Align Furnis's access controls with your GitHub team structure

  • Offer role-based permissions within Furnis that mirror your org structure

Email addresses (Read-only)

Furnis uses this permission to enhance user experience and security:

  • Send critical notifications about deployments to verified email addresses

  • Provide accurate user identification for audit logs and activity tracking

  • Enable seamless account management between GitHub and Furnis

By granting these permissions, you're enabling Furnis to provide a comprehensive, secure, and deeply integrated smart contract deployment experience that aligns closely with your existing GitHub workflows and organizational structure.

Import a Github Repo

Upon installing the Github App, you'll be prompted to import one of your Github repositories

New Project Form

Complete the new project form, including any environment variables that you would like to exist across the entire project. You will also be able to input environment variables at the template level.

Creating a Template

Upon project creation, you will be prompted to create your first template.

Templates allow you to configure a Forge script with settings such as environment variables, a signer, and a default network to execute the script. This makes it easy and fast to execute a script multiple times, and helps you to easily organanize your on-chain interactions.

  • Once you select a branch, Furnis will search the repository for any Forge scripts, and render them in the Script dropdown

  • Once you select a script, Furnis will render the script's code in the window, and auto-populate the Contract Name

  • Give the template a name, and optionally, a description

  • Select the signer for the transaction and the network on which to execute the script's transactions

  • Provide any script-specific environment variables

Funding Your Default Signer

Upon registration, Furnis will create a default signer for your account. This is an asymmetric key pair that can be used across all EVM-compatible chains that are supported by Furnis. You can view the address of this signer in the Signers tab, as well as the signer's native token balance on all chains that Furnis supports.

  • Copy your signer's address

    • Navigate to the "Signers" tab

    • Find the "Default Signer" entry

    • Copy the associated Ethereum address

  • Fund your signer

    • Choose a supported network (we recommend starting with Sepolia testnet)

    • Transfer a small amount of native tokens to your signer's address

    • For Sepolia testnet tokens, we recommend you request funds from a faucet to an account that has some amount of mainnet ETH, then transferring the Sepolia ETH to your default signer. The reason for this is because faucets often require the receiving account has a mainnet ETH balance.

  • Verify funding

    • In Furnis, select "Sepolia" from the network dropdown

    • Check that the signer's balance reflects the transferred amount

The default signer's balance will be updated upon transfer

Transaction signing occurs within the AWS KMS hardware security modules (HSMs), meaning the private key is never exposed to Furnis servers or any other external system.

Running Your First Execution

Now that the signer is funded, you are ready to trigger an execution using the ERC20 Token template that Furnis provides to you upon registration..

Preparing Your First Execution

  • Navigate to the "Executions" page

  • Select the "ERC20 Token" template from the dropdown menu

  • Review and adjust configurations:

    • Network settings

    • Environment variables

    • Any other template-specific parameters

  • When ready, click "execute" and watch the real-time logs generated from the execution of your script from a private Docker container.

Reviewing Execution Results

  • Once execution is complete, review the rendered metadata:

    • List of transactions and their types

    • Gas usage and costs

    • Contract addresses of deployed contracts

  • Download generated ABIs

    • Locate and click the "Download ABIs" button

    • Save the file for future reference or sharing with team members

Exploring Historical Executions

  • Navigate to the "Overview" tab

  • Select a template to view its execution history

  • Click on any historical execution to view its details and metadata

Next Steps

  • Explore creating your own templates

  • Connect your GitHub repository to start managing your own smart contract projects

  • Invite team members and set up collaborative workflows (coming soon)

Last updated