Skip to content

Commit 5b423e4

Browse files
committed
redo homepage
I wasn't happy with the landing page. I've redone the text and layout. Happy to have better script examples.
1 parent e14d0d3 commit 5b423e4

File tree

3 files changed

+27
-34
lines changed

3 files changed

+27
-34
lines changed
File renamed without changes.

docs/index.md

Lines changed: 23 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,46 @@
11
---
2+
title: A typed, combinator-based, functional smart contract language without loops or recursion, designed for Bitcoin-like blockchains.
23
hide:
3-
- navigation
44
- toc
5-
- title
65
---
76

8-
## Key Features
7+
<div class="grid cards" markdown>
98

10-
### Expressive Smart Contracts
9+
- ### :material-code-braces: Expressive Smart Contracts
10+
Simplicity lets you define precise smart contracts with more structure than Bitcoin Script while remaining statically analyzable. Encode multi-step financial flows, conditional transfers, and asset logic in a form that can be reviewed and reasoned about.
1111

12-
Simplicity allows developers to write contracts that go beyond the limitations of Bitcoin Script. Complex financial workflows, conditional payments, and tokenized assets can all be encoded efficiently and safely.
12+
- ### :material-gauge: Predictable Resource Usage
13+
Each program has a statically bounded cost. You know the upper execution bounds before funding a transaction, avoiding unpredictable fee dynamics.
1314

14-
### Predictable Resource Usage
15+
- ### :material-microscope: Formally Specified
16+
The semantics are formally defined and suitable for machine-checked proofs. You can prove safety properties (e.g. no unauthorized spend path) and have high assurance the implementation matches the specification.
1517

16-
Every Simplicity contract has clearly bounded computational costs. This ensures contracts run reliably on-chain without unexpected fees or execution failures.
18+
- ### :material-shield-check: Enhanced Security
19+
No loops or unbounded recursion, deterministic evaluation, and explicit control flow eliminate broad classes of runtime failure. Behavior matches the committed program; no hidden side effects.
1720

18-
### Formally Specified
21+
- ### :material-link-variant: Seamless Bitcoin and Liquid Integration
22+
Designed for the Bitcoin-style networks. On Liquid you can bind assets and amounts while still benefiting from confidentiality at the transaction layer.
1923

20-
Simplicity smart contracts can be formally specified using mathematical proof assistants, enabling rigorous verification of their behavior. This ensures that contracts behave exactly as intended, significantly reducing the risk of critical bugs and security vulnerabilities.
24+
- ### :material-source-branch: Support for Conditional Logic
25+
You can encode conditional payments, options, staged settlement, and automated triggers directly on-chain without relying on off-chain escrow logic or custodians.
2126

22-
### Enhanced Security
27+
- ### :material-package-variant-closed: Compact and Efficient Design
28+
A small combinator core and Merkle-structured programs keep on-chain footprints low. Verification costs remain predictable and amenable to static analysis.
2329

24-
Contracts are designed to behave exactly as written, reducing the risk of bugs or unintended outcomes. Users and institutions can trust that their rules and conditions will be enforced correctly.
30+
- ### :material-account-group: Compatibility with Multi-Party Workflows
31+
Multi-party spending policies, staged cooperation, and recovery paths are expressed as explicit branches. Participants retain sole control of their keys throughout.
2532

26-
### Seamless Bitcoin and Liquid Integration
33+
</div>
2734

28-
Simplicity is built for Bitcoin-style blockchains and Liquid, making it easy to integrate with existing blockchain infrastructure. Tokenized assets, settlements, and decentralized finance workflows can leverage its native compatibility.
29-
30-
### Support for Conditional Logic
31-
32-
Developers can encode conditional payments, options, and automated triggers directly into contracts. This enables more sophisticated financial products without relying on external intermediaries.
33-
34-
### Compact and Efficient Design
35-
36-
Contracts are optimized for on-chain execution, keeping size and operational overhead minimal. This allows for faster transaction processing and reduced blockchain load.
37-
38-
### Compatibility with Multi-Party Workflows
39-
40-
Simplicity can handle multi-party agreements, such as escrow-free marketplaces or collaborative finance operations. Parties can interact securely without giving up control to a central authority.
41-
42-
## Example
43-
44-
A basic pay-to-pubkey SimplicityHL program looks like this:
45-
46-
```rust
35+
``` rust title="pay to pubkey"
4736
fn main(pubkey: Pubkey, funds: Funds) -> Funds {
4837
let (witness = _, funds) = commit(
4938
Witness = ValidSignature(pubkey, funds),
5039
funds,
5140
);
5241
funds
53-
}
42+
}// (1)!
5443
```
5544

56-
This compiles to Simplicity combinators that can be formally verified and executed on-chain.
45+
1. This compiles to Simplicity ready for on-chain execution. More involved scripts can execute [reverse Dutch auctions](https://delvingbitcoin.org/t/writing-simplicity-programs-with-simplicityhl/1900).
46+

mkdocs.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ theme:
5656
icon: material/brightness-4
5757
name: Switch to system preference
5858
markdown_extensions:
59+
- attr_list:
60+
- md_in_html:
5961
- attr_list:
6062
- pymdownx.emoji:
6163
emoji_index: !!python/name:material.extensions.emoji.twemoji
@@ -123,7 +125,8 @@ edit_uri: edit/main/docs/
123125

124126
nav:
125127
- Getting started:
126-
- getting-started/index.md
128+
- index.md
129+
- Projects: getting-started/projects.md
127130
- SimplicityHL: getting-started/simplicityhl.md
128131
- Rust: getting-started/rust.md
129132
- Haskell: getting-started/haskell.md

0 commit comments

Comments
 (0)