diff --git a/examples/tutorial/.dockerignore b/examples/tutorial/.dockerignore
deleted file mode 100644
index de4d1f007d..0000000000
--- a/examples/tutorial/.dockerignore
+++ /dev/null
@@ -1,2 +0,0 @@
-dist
-node_modules
diff --git a/examples/tutorial/.gitignore b/examples/tutorial/.gitignore
deleted file mode 100644
index de4d1f007d..0000000000
--- a/examples/tutorial/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-dist
-node_modules
diff --git a/examples/tutorial/Dockerfile b/examples/tutorial/Dockerfile
deleted file mode 100644
index 90ec319aad..0000000000
--- a/examples/tutorial/Dockerfile
+++ /dev/null
@@ -1,18 +0,0 @@
-# We'll use the official nodejs
-# image as our base, but you should be able
-# to use any image.
-FROM node
-
-# Copy the deku-node and it's required system libraries
-# into your image.
-COPY --from=ghcr.io/marigold-dev/deku:latest /nix /nix/
-COPY --from=ghcr.io/marigold-dev/deku:latest /bin/deku-node /bin
-
-WORKDIR /app
-
-# Build your Deku VM
-COPY package.json /app
-RUN npm install
-COPY ./vm.js .
-COPY ./start.sh .
-CMD /app/start.sh
diff --git a/examples/tutorial/README.md b/examples/tutorial/README.md
deleted file mode 100644
index 1004ce264d..0000000000
--- a/examples/tutorial/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Deku-P Example Project
-
-See the tutorial at https://deku.marigold.dev/docs/Deku-P/dekup_quickstart
-
-## tl;dr
-
-```
-docker build . -t my-sidechain
-docker compose up -d --force-recreate
-```
diff --git a/examples/tutorial/docker-compose.yml b/examples/tutorial/docker-compose.yml
deleted file mode 100644
index 5233c9c305..0000000000
--- a/examples/tutorial/docker-compose.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-version: "3.6"
-services:
- # We run a full Tezos sandbox network using Flextesa (https://tezos.gitlab.io/flextesa/).
- # The deku-flextesa image has already been pre-populated with a Deku bridge contract
- # configured for these nodes.
- flextesa:
- container_name: deku_flextesa
- # FIXME: publish this image somewhere
- image: ghcr.io/marigold-dev/deku-fextesa:latest
- command: kathmandubox start
- environment:
- - block_time=4
- - flextesa_node_cors_origin=*
- ports:
- - 127.0.0.1:20000:20000
- deku-node-0:
- container_name: deku-node-0
- image: my-sidechain
- environment:
- # A b58-encoded Ed25519 secret used to sign blocks
- - DEKU_SECRET=edsk4UWkJqpZrAm26qvJE8uY9ZFGFqQiFuBcDyEPASXeHxuD68WvvF
- - DEKU_PORT=4440
- # We'll enable the API for a single node on port 8080
- - DEKU_API_ENABLED=true
- - DEKU_API_PORT=8080
- network_mode: "host"
- deku-node-1:
- container_name: deku-node-1
- image: my-sidechain
- environment:
- - DEKU_SECRET=edsk2mbL2Z7bAmRnuYbmsRe8Yu9rgAq1h993SDxoZncmqyMHDECyBa
- - DEKU_PORT=4441
- network_mode: "host"
- deku-node-2:
- container_name: deku-node-2
- image: my-sidechain
- environment:
- - DEKU_SECRET=edsk3dx8ZfcaBXsuLsk8fawS1qxjHbZtEoEdpAwxhsjmYTQhoEUxFk
- - DEKU_PORT=4442
- network_mode: "host"
- deku-node-3:
- container_name: deku-node-3
- image: my-sidechain
- environment:
- - DEKU_SECRET=edsk3MwFfcGp5FsZgrX8FGiBiDutX2kfAuPzU6VdZpKYLyDRVPb879
- - DEKU_PORT=4443
- network_mode: "host"
diff --git a/examples/tutorial/package.json b/examples/tutorial/package.json
deleted file mode 100644
index cab824d208..0000000000
--- a/examples/tutorial/package.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "my-app",
- "version": "0.1.0",
- "private": true,
- "dependencies": {
- "@marigold-dev/deku-p-sdk": "0.1.3",
- "@airgap/beacon-sdk": "^3.1.3",
- "@marigold-dev/deku-toolkit": "0.1.11",
- "@taquito/beacon-wallet": "^13.0.1",
- "@taquito/signer": "^13.0.1",
- "@taquito/taquito": "^13.0.1",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
- "react-scripts": "^2.1.3",
- "web-vitals": "^2.1.4"
- },
- "devDependencies": {
- "@tsconfig/node16": "^1.0.3",
- "@types/express": "^4.17.14",
- "@types/node": "^16.11.49",
- "@types/react": "^18.0.17",
- "@types/react-dom": "^18.0.6"
- },
- "scripts": {
- "start": "set port=9090 && react-scripts start"
- },
- "browserslist": {
- "development": [
- "last 1 chrome version",
- "last 1 firefox version",
- "last 1 safari version"
- ]
- }
-}
diff --git a/examples/tutorial/public/index.html b/examples/tutorial/public/index.html
deleted file mode 100644
index b2d2a3e7fc..0000000000
--- a/examples/tutorial/public/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
- Deku-P App
-
-
-
-
-
-
-
diff --git a/examples/tutorial/src/index.jsx b/examples/tutorial/src/index.jsx
deleted file mode 100644
index 65ab80c4bf..0000000000
--- a/examples/tutorial/src/index.jsx
+++ /dev/null
@@ -1,44 +0,0 @@
-import React, { useState, useEffect } from "react";
-import ReactDOM from "react-dom";
-
-import { DekuToolkit } from "@marigold-dev/deku-toolkit";
-import { InMemorySigner } from "@taquito/signer";
-
-// The DekuClient uses Taquito for signing operations.
-// Taquito supports a variety of hardware- and browser-based
-// wallets, but for this demo we'll simply use a hard-coded private key
-// and the InMemory signer.
-const signer = new InMemorySigner(
- "edsk3ym86W81aL2gfZ25WuWQrisJM5Vu8cEayCR6BGsRNgfRWos8mR"
-);
-
-const deku = new DekuToolkit({
- signer,
- dekuRPC: "http://localhost:8080",
- tezosRPC: "http://localhost:20000",
-});
-
-const MyFirstDApp = () => {
- const [counter, setCounter] = useState(null);
- const [delta, setDelta] = useState(1);
- const handleInputChange = (event) => setDelta(event.target.value);
- const handleIncrement = () => deku.tx(JSON.stringify(["Increment", delta]));
- const handleDecrement = () => deku.tx(JSON.stringify(["Decrement", delta]));
- useEffect(() => {
- deku.subscribeToKey("counter", (counterState) =>
- setCounter(JSON.parse(counterState))
- );
- });
- return (
-
-
- Current Counter State: {counter}
-
-
-
-
-
- );
-};
-
-ReactDOM.render(, document.getElementById("root"));
diff --git a/examples/tutorial/start.sh b/examples/tutorial/start.sh
deleted file mode 100755
index 471a8ff90b..0000000000
--- a/examples/tutorial/start.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env bash
-
-# A list of of the tz1 public key hashes for each validator in this network
-# (derived from their secret keys)
-export DEKU_VALIDATORS=tz1fpf9DffkGAnzT6UKMDoS4hZjNmoEKhGsK,tz1PYdVbnLwiqKo3fLFXTKxw6K7BhpddQPh8,tz1Pv4viWq7ye4R6cr9SKR3tXiZGvpK34SKi,tz1cXKCCxLwYCHDSrx9hfD5Qmbs4W8w2UKDw
-export DEKU_VALIDATOR_URIS=localhost:4440,localhost:4441,localhost:4442,localhost:4443
-
-export DEKU_TEZOS_RPC_NODE=http://flextesa:20000
-
-# The secret key of a Tezos with which to post updates to Tezos. In Flextesa networks
-# this wallet is pre-seeded with funds.
-export DEKU_TEZOS_SECRET=edsk3QoqBuvdamxouPhin7swCvkQNgq4jP5KZPbwWNnwdZpSpJiEbq
-
-# The address of the bridge contract deployed to the deku-flextesa Tezos network.
-export DEKU_TEZOS_CONSENSUS_ADDRESS=KT1LHcxdRTgyFp1TdrgodVekLFkQwzFnTJcY
-
-# During local development, it is sometimes useful to use smaller block sizes
-# and to artificially throttle the block rate so as to not consume all the CPU's resources.
-export DEKU_DEFAULT_BLOCK_SIZE=5000
-
-# Enable Debug logging for the NodeJS SDK
-export DEKU_VM_DEBUG_LOGGING=true
-# Set the verbosity of the Deku node
-export DEKU_LOG_VERBOSITY=info
-
-# Wait for Flextesa to start
-sleep 5
-
-# Start the deku-node in the background with the path
-# to the pipe for communicating with the VM
-deku-node --named-pipe-path /run/deku/pipe &
-
-node ./vm.js /run/deku/pipe
diff --git a/examples/tutorial/vm.js b/examples/tutorial/vm.js
deleted file mode 100644
index 6db1d558bf..0000000000
--- a/examples/tutorial/vm.js
+++ /dev/null
@@ -1,34 +0,0 @@
-const { main, get, set } = require("@marigold-dev/deku-p-sdk");
-
-const transition = (tx) => {
- // Parse the operation data
- const operation = JSON.parse(tx.operation);
- console.log("Parsed operation:", operation);
- const [operationKind, value] = operation;
-
- // Retrieve the current state of the 'counter' key.
- // This is an in-memory lookup - no IO required.
- const counter = JSON.parse(get("counter"));
- console.log("Current state:", counter);
-
- switch (operation[0]) {
- case "Increment":
- set("counter", JSON.stringify(counter + value));
- break;
- case "Decrement":
- set("counter", JSON.stringify(counter - value));
- default:
- const error = `Unrecognized operation kind: ${operationKind}`;
- console.error(error);
- // Signal an error to the user by returning a string
- return error;
- }
-};
-
-// Here we define the initial state of blockchain's key-value
-// store on the genesis block.
-const initialState = {
- counter: JSON.stringify(42),
-};
-
-main(initialState, transition);
diff --git a/examples/tutorial/wallet.json b/examples/tutorial/wallet.json
deleted file mode 100644
index eea050cee1..0000000000
--- a/examples/tutorial/wallet.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "address": "tz1YCm2e83y4fWJG2Enf1EZVf3mSQykQJYMD",
- "priv_key": "edsk39MdNey5uvHeoHTJaBdHg23jrDpeAaraje9gKTTEtQeFwevB9t"
-}
diff --git a/package.json b/package.json
index 011c517f24..dc32b78625 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,6 @@
"deku-p/deku-toolkit/examples/nodejs",
"deku-p/deku-toolkit/examples/react",
"deku-p/sdks/typescript-sdk",
- "examples/tutorial",
"deku-c/deku-c-toolkit",
"deku-c/deku-cli",
"website"