# Set up Blockfrost Ice Breakers

UPDATED: 2/27/25

This guide will walk you how to setup Blockfrost Ice Breakers for Ice Breaker pools who have the Ice Breaker NFT. We will use standard paths and setup used by coincashew users.

{% hint style="info" %}
Credits to <img src="https://earncoinpool.com/images/coin_v3.png" alt="" data-size="line"> [Earn Coin Pool](https://earncoinpool.com/) for documenting the procedure.
{% endhint %}

{% hint style="success" %}
This guide is based off the original documentation by Blockfrost here:\
<https://platform.blockfrost.io/get-started> Credit to Blockfrost.
{% endhint %}

***

## Step 1 - Install From Source

Install packages by running:

```
apt install git rustup libssl-dev pkg-config
```

{% hint style="warning" %}
If you get the following error "No apt package "rustup"...   Use the following command instead;\
`rustup install stable`
{% endhint %}

<div align="left"><figure><img src="/files/ivQY0Lafo4SkL1InsAJe" alt="" width="470"><figcaption></figcaption></figure></div>

Then switch to latest stable Rust by running:

```
rustup default stable
```

Clone repo to your `$NODE_HOME` by running:

```
cd $NODE_HOME
git clone https://github.com/blockfrost/blockfrost-platform
```

Switch folders by running:

```
cd blockfrost-platform
```

Checkout main branch by running:

```
git checkout main
```

Build by running:

```
cargo build --release
```

Check build version by running:

```
./target/release/blockfrost-platform --version
```

✅Should return:

```
blockfrost-platform 0.0.1
```

***

## Step 2 - Configure

We can use the `--init` flag to generate your configuration file by running:

```
./target/release/blockfrost-platform --init
```

Select the options below and replace your socket path, also replace your receive address that you provided to Blockfrost and the icebreakers secret that was emailed to you.

{% hint style="warning" %}
Make sure port 3000 is not already being used, if so, select an unused port number.
{% endhint %}

```
> Run in solitary mode? No
> Enable metrics? Yes
> Which network are you connecting to? Mainnet
> Mode? Compact
> What should be the log level? Debug
> Enter the server IP address: 0.0.0.0
> Enter the port number: 3000
> Enter path to Cardano node socket: /home/<user>/cardano-my-node/db/socket
> Enter the reward address: addr1....
> Enter the icebreakers secret: 123456789...
```

✅Config has been written to:

```
/home/<user>/.config/blockfrost-platform/config.toml
```

***

## Step 3 - Open Firewall

Make sure the firewall is open on the port you selected above by running:

```
sudo ufw allow 3000/tcp
```

Check firewall by running:

```
sudo ufw status numbered
```

***

## Step 4 - Move Blockfrost Platform

```
cd $NODE_HOME/blockfrost-platform/target/release
sudo mv -f blockfrost-platform /usr/local/bin/blockfrost-platform
```

Run the binary by running:

```
blockfrost-platform
```

***

## Step 5 - Create Start Up Script&#x20;

Start by create a blank file by running:

```
cd $NODE_HOME
sudo nano start-blockfrost-platform.sh
```

Replace `secret` with your ice breakers secret. Replace `reward_addr` with your receive address and replace `node_socket_path` with your path below and then paste in the file and save.

```
#!/bin/bash
# You can modify these variables for your specific setup
# NETWORK=mainnet
SECRET=123456789...
REWARD_ADDR=addr1...
NODE_SOCKET_PATH=/home/<user>/cardano-my-node/db/socket
 
/usr/local/bin/blockfrost-platform --network ${NETWORK:=mainnet} \
                                   --node-socket-path $NODE_SOCKET_PATH \
                                   --secret $SECRET \
                                   --reward-address $REWARD_ADDR
```

Set execute permissions by running:

```
sudo chmod +x $NODE_HOME/start-blockfrost-platform.sh
```

***

## Step 6 - Create as a Service

Start by create a blank file by running:

```
cd $NODE_HOME
sudo nano blockfrost-platform.service
```

Replace the `<user>` below with your username and double checks the paths for `WorkingDirectory` and `ExecStart`

Then paste into file and save.

```
[Unit]
Description       = Blockfrost Platform
Wants             = network-online.target
After             = network-online.target
 
[Service]
User              = <user>
Type              = simple
WorkingDirectory  = /home/<user>/cardano-my-node/
ExecStart         = /bin/bash -c '/home/<user>/cardano-my-node/start-blockfrost-platform.sh'
ExecReload        = pkill -HUP blockfrost-platform
KillSignal        = SIGINT
RestartKillSignal = SIGINT
TimeoutStopSec    = 300
LimitNOFILE       = 32768
Restart           = always
RestartSec        = 5
SyslogIdentifier  = blockfrost-platform
 
[Install]
WantedBy          = multi-user.target
```

Move to system folder and set permissions by running:

```
cd $NODE_HOME
sudo mv blockfrost-platform.service /etc/systemd/system/
```

```
sudo chmod 644 /etc/systemd/system/blockfrost-platform.service
```

Enable the service by running:

```
sudo systemctl daemon-reload
```

```
sudo systemctl enable blockfrost-platform.service
```

Testing by restarting the service to see if it is working by running:

```
sudo systemctl restart blockfrost-platform.service
```

```
journalctl -f -u blockfrost-platform
```

***

## Step 7 - Clean up

If the status is good, go ahead and clean up the files.

```
cd $NODE_HOME
rm -rf blockfrost-platform
```

***

### Congratulations you did it!

***

## Contributors&#x20;

Thanks to the following pools for helping to put together these guides. Please consider delegating to their pools to support them.  Are you a pool? Consider buying them a coffee

![](https://img.cexplorer.io/7/e/1/9/f/pool16cdtqyk0fvxzfkhjg3esjcuty4tnlpds5lj0lkmqmwdjyzaj7p8.png)  [Earn Coin Pool - Ticker: ECP](https://cexplorer.io/pool/pool16cdtqyk0fvxzfkhjg3esjcuty4tnlpds5lj0lkmqmwdjyzaj7p8)

![](https://img.cexplorer.io/9/0/1/d/4/pool1zn4wnk52kmfjy9mw4z85p6wn9kzrn94l9h5gys8r2k2w57mdnhh.png) [Envy Stake Pool - Ticker ENVY](https://cexplorer.io/pool/pool1zn4wnk52kmfjy9mw4z85p6wn9kzrn94l9h5gys8r2k2w57mdnhh)

![xSPO Alliance Logo](/files/6U364TnLAtmyWJIEdO8v) [xSPO Alliance](http://xspo-alliance.org/discord)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ecp.gitbook.io/how-to-guides-for-coincashew-method-cardano-spos/maintenance-and-daily-operations/how-to-guides-for-spos-using-coincashew-method/set-up-blockfrost-ice-breakers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
