Plutus Development Setup on macOS

  • Plutus
  • Cardano
  • Nix
  • macOS


  • macOS (11.2 Big Sur)
  • Terminal

Install Nix

Download and Install

1sh <(curl -L --no-daemon

This will install Nix into the /nix folder.

Check it is properly installed by running

1nix --version


In order to allow Nix to download binary packages for Plutus, provided by IOHK (IOG), you'll need to add the servers from which they can be downloaded to the /etc/nix/nix.conf config file.

Open /etc/nix/nix.conf using an editor of your choice, e.g.

1vim /etc/nix/nix.conf

and add the two lines below

1substituters =
2trusted-public-keys =

Note: Do not configure the sandbox feature here, it tends to break the setup.

You may need to restart your computer at this point.

Download Plutus Code

Download the Plutus code from GitHub and build Plutus Core.

1git clone
2cd plutus/
3nix build -f default.nix plutus.haskell.packages.plutus-core.components.library


This should work. However, some people experienced errors complaining about a missing /usr/lib/libSystem.B.dylib. In such a case, first make sure you do not have the sandbox enabled in /etc/nix/nix.conf. If that's already the case, try to upgrade nixpkgs to a newer (albeit unstable) version by running

1sudo nix-channel --add unstable

Build Plutus Playground

1nix-build -A plutus-playground.client
2nix-build -A plutus-playground.server
3nix-build -A plutus-playground.generate-purescript
4nix-build -A plutus-playground.start-backend
5nix-build -A plutus-pab

Build and run playground server

2cd plutus-pab/
5cd ../plutus-playground-server

In a new terminal start the playground client

1cd plutus/
3cd plutus-playground-client
4npm run start

Development Workflow

Now, whenever you want to work on Plutus projects, you need to head into the plutus/ folder and enter the nix-shell

1cd plutus/

For the Plutus Pioneer Program, you'd then

1cd ../plutus-pioneer-program/
2cabal build


1️⃣ Plutus on GitHub

2️⃣ Plutus Pioneer Program on GitHub

3️⃣ Plutus Community Docs

4️⃣ Plutus Pioneer Programm - Lecture #1

5️⃣ Plutus Setup Instructions by lsmor