Steve Shadders
Intermediate Bitcoin Script
#1about 3 minutes
Understanding Bitcoin Script as a Forth-like language
Bitcoin Script is a compact and efficient stack-based language similar to Forth, making it ideal for the resource-constrained environment of blockchain transactions.
#2about 8 minutes
Improving Bitcoin Script readability with aliases and formatting
A custom Script Definition Language (SDL) improves the developer experience by removing OP_ prefixes, using aliases for operators, and enabling standard code formatting.
#3about 4 minutes
A better way to debug Bitcoin Script
Overcome the poor native debugging experience by using a tool that provides precise error locations and a stack dumping operator to inspect state during execution.
#4about 13 minutes
The stack and reverse polish notation explained
Stack-based languages operate using reverse polish notation (subject-object-verb), which is a more natural structure for machine execution than standard infix notation.
#5about 4 minutes
Compile-time versus runtime script execution
Understand the distinction between compile-time, where code is generated with known inputs, and runtime, where it executes with new inputs provided later.
#6about 12 minutes
Using variables and words in a script definition language
The Script Definition Language introduces features like comments, variables, and reusable code blocks called 'words' to structure and simplify complex scripts.
#7about 3 minutes
How to implement loops through compile-time unrolling
Since Bitcoin Script lacks native loop opcodes, loops can be implemented at compile time by unrolling the code, which repeats the script body a specified number of times.
#8about 2 minutes
Dynamic script generation with compile-time functions
The 'funk' keyword executes a function at compile time, enabling dynamic script generation based on the values of known inputs before runtime.
#9about 6 minutes
Building a dynamic byte reversal function
A practical example demonstrates creating a byte reversal script that dynamically adapts its loop count based on the input's length, calculated at compile time.
#10about 10 minutes
Q&A on script optimization, tooling, and advanced concepts
The session concludes with answers to audience questions on hardware acceleration, data limits, OP_CODESEPARATOR, and the future of the demonstrated scripting tool.
Related jobs
Jobs that call for the skills explored in this talk.
Matching moments
39:46 MIN
Modern smart contract development with Bitcoin Script
Bitcoin SV: The Massively Scaled Blockchain to Meet Developer Needs
07:06 MIN
How Bitcoin Script enables programmable money
A Technical Introduction to Bitcoin's 2nd Layer- The Lightning Network
06:10 MIN
Introducing sCrypt as a high-level language for Bitcoin
Introduction to sCrypt - a smart contract language for Bitcoin SV
39:18 MIN
Q&A on fungible tokens and advanced script interactions
Run on Bitcoin
01:12 MIN
Introducing Run, a platform for interactive tokens on Bitcoin
Run on Bitcoin
00:56 MIN
Introduction to the Lisk blockchain platform
Build Your Blockchain Application in JavaScript
05:44 MIN
Key advantages of building with the Lisk SDK
Build Your Blockchain Application in JavaScript
05:21 MIN
Why a stable protocol matters for developers
Bitcoin SV: The Massively Scaled Blockchain to Meet Developer Needs
Featured Partners
Related Videos
Introduction to sCrypt - a smart contract language for Bitcoin SV
Liu Xiaohui
Bitcoin transactions- embedding and using data for applications built on Bitcoin SV
Jack Davies & Alessio Pagani
Run on Bitcoin
Brenton Gunning
Bitcoin SV: The Massively Scaled Blockchain to Meet Developer Needs
Jimmy Nguyen & Steve Shadders
Connect API for Bitcoin SV applications
Rafa Jiménez
Build Your Blockchain Application in JavaScript
Nazar Hussain
Wasm Deep Dive - A Glance Behind the Scenes
Rainer Stropek
Smart Contract fundamentals - My first DApp
Tim Weingärtner
From learning to earning
Jobs that call for the skills explored in this talk.

![Senior Software Engineer [TypeScript] (Prisma Postgres)](https://wearedevelopers.imgix.net/company/283ba9dbbab3649de02b9b49e6284fd9/cover/oKWz2s90Z218LE8pFthP.png?w=400&ar=3.55&fit=crop&crop=entropy&auto=compress,format)
Senior Software Engineer [TypeScript] (Prisma Postgres)
Prisma
Remote
Senior
Node.js
TypeScript
PostgreSQL

Remote Part-Time - Experienced Haskell Developer
Stack Builders
Remote
€97-118K
Intermediate
Scrum
React
jQuery
+3





