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
07:11 MIN
Improving the developer experience on modern blockchains
Blockchain Beyond Crypto: Technology Unlocking Opportunities across Various Industries
39:18 MIN
Q&A on fungible tokens and advanced script interactions
Run on Bitcoin
46:27 MIN
A practical demonstration of scripting a live demo
WeAreDevelopers LIVE - Demo Time, Live Coding, End-to-End Testing and more
00:18 MIN
Introduction to OP_PUSH_TX and its applications
OP_PUSH_TX and its applications in Bitcoin smart contracts
1:41:40 MIN
Key benefits of building with the Lisk SDK
Develop a Blockchain Application in JavaScript with Lisk SDK
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
OP_PUSH_TX and its applications in Bitcoin smart contracts
Xiaohui Liu
Bitcoin SV: The Massively Scaled Blockchain to Meet Developer Needs
Jimmy Nguyen & Steve Shadders
Making Sense of Programming Languages
Aleksandra Sikora
Connect API for Bitcoin SV applications
Rafa Jiménez
Wasm Deep Dive - A Glance Behind the Scenes
Rainer Stropek
Related Articles
View all articles



From learning to earning
Jobs that call for the skills explored in this talk.




Senior Software Engineer (Java, AWS ECS, DynamoDB, Lambda, Terraform, Docker)
ScriptRunner
Senior
DevOps
Docker
Terraform
Microservices
Amazon DynamoDB
+1

Senior Software Engineer (Java, AWS ECS, DynamoDB, Lambda, Terraform, Docker)
ScriptRunner
Senior
DevOps
Docker
Terraform
Microservices
Amazon DynamoDB
+1

Senior Software Engineer (Java, AWS ECS, DynamoDB, Lambda, Terraform, Docker)
ScriptRunner
Senior
DevOps
Docker
Terraform
Microservices
Amazon DynamoDB
+1

Senior Software Engineer (Java, AWS ECS, DynamoDB, Lambda, Terraform, Docker)
ScriptRunner
Senior
DevOps
Docker
Terraform
Microservices
Amazon DynamoDB
+1