<commit_before>+++
type = "post"
title = "Decentralized trust graph for online value exchange without a blockchain"
description = "Introductory post about Settle, how it enables value exchange online without a blockchain, and why it may be useful."
date = "2017-01-14T10:31:00-07:00"
+++

# Settle

I'm happy to release Settle, a personal research project I've been working on
over the past 8 months.

Settle's goal is to explore a new financial trust primitive on the Internet,
and doing so, construct a decentralized trust graph enabling (totally) free
exchange of value without relying on a blockchain.

Settle lets you:

- `mint` (activate) assets (IOUs really) on your account:
```
settle mint EUR.2    # activates <EMAIL>[EUR.2] (EUR in cents)
```

- `trust` others's assets, that is, express your willingnes to issue your own
  asset (**<EMAIL>[EUR.2]**) in exchange for an another user's asset
(here **<EMAIL>[USD.2]**) for up to a specified amount **10000**
at the specified price (**106/100**):
```
settle trust <EMAIL> USD.2 10000 with EUR.2 at 106/100
```

- `pay` arbitrary users in their own assets. Settle will discover a trust path
(if it exists) between your assets (the ones you've minted and can issue, or
the ones you hold a balance in) and the destination asset
**<EMAIL>[EUR.2]**, without requiring to have a pre-existing direct trust
relationship with **<EMAIL>**:
```
settle pay <EMAIL> EUR.2 100
```

If you'd like to play with the `settle` command-line as you read this post, you
can install it locally (under `~/.settle`) with the following command:
```<commit_msg>Explicit code definition in blog post<commit_after>+++
type = "post"
title = "Decentralized trust graph for online value exchange without a blockchain"
description = "Introductory post about Settle, how it enables value exchange online without a blockchain, and why it may be useful."
date = "2017-01-14T10:31:00-07:00"
+++

# Settle

I'm happy to release Settle, a personal research project I've been working on
over the past 8 months.

Settle's goal is to explore a new financial trust primitive on the Internet,
and doing so, construct a decentralized trust graph enabling (totally) free
exchange of value without relying on a blockchain.

Settle lets you:

- `mint` (activate) assets (IOUs really) on your account.
```
settle mint EUR.2    # activates <EMAIL>[EUR.2] (EUR in cents)
```
(Assets are expressed as `{CODE}.{SCALE}` where the scale, or decimal length, is
an integer representing the factor by which the asset native amount is scaled
down when represented as a signed integer).

- `trust` others's assets, that is, express your willingnes to issue your own
  asset (**<EMAIL>[EUR.2]**) in exchange for an another user's asset
(here **<EMAIL>[USD.2]**) for up to a specified amount **10000**
at the specified price (**106/100**):
```
settle trust <EMAIL> USD.2 10000 with EUR.2 at 106/100
```

- `pay` arbitrary users in their own assets. Settle will discover a trust path
(if it exists) between your assets (the ones you've minted and can issue, or
the ones you hold a balance in) and the destination asset
**<EMAIL>[EUR.2]**, without requiring to have a pre-existing direct trust
relationship with **<EMAIL>**:
```
settle pay <EMAIL> EUR.2 100
```

If you'd like to play with the `settle` command-line as you read this post, you
can install it locally (under `~/.settle`) with the following command:
```
{'fraction_non_alphanumeric': 0.1031955438287892, 'fraction_numerical': 0.03048959249486954, 'mean_word_length': 4.621087314662273, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 17, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '239743', 'n_tokens_mistral': 1117, 'n_tokens_neox': 980, 'n_words': 497}