diff --git a/app-meetup.html b/app-meetup.html index ed44546..dfe1d45 100644 --- a/app-meetup.html +++ b/app-meetup.html @@ -84,7 +84,7 @@ diff --git a/app-register.html b/app-register.html index 8a0e4bd..7bb6f5a 100644 --- a/app-register.html +++ b/app-register.html @@ -84,7 +84,7 @@ diff --git a/app-select-community.html b/app-select-community.html index 56abb16..e3cae09 100644 --- a/app-select-community.html +++ b/app-select-community.html @@ -84,7 +84,7 @@ diff --git a/app.html b/app.html index 808857d..29d7d5b 100644 --- a/app.html +++ b/app.html @@ -84,7 +84,7 @@ diff --git a/bazaar.html b/bazaar.html index 57ef508..7e47174 100644 --- a/bazaar.html +++ b/bazaar.html @@ -84,7 +84,7 @@ diff --git a/decentralization-governance.html b/decentralization-governance.html index 10a19b8..fee2752 100644 --- a/decentralization-governance.html +++ b/decentralization-governance.html @@ -84,7 +84,7 @@ diff --git a/decentralization.html b/decentralization.html index 216ad5f..f24da71 100644 --- a/decentralization.html +++ b/decentralization.html @@ -84,7 +84,7 @@ diff --git a/deployments.html b/deployments.html index 565d3b1..908c501 100644 --- a/deployments.html +++ b/deployments.html @@ -84,7 +84,7 @@ diff --git a/developers-bot-communities.html b/developers-bot-communities.html index 459c011..3d0b6ca 100644 --- a/developers-bot-communities.html +++ b/developers-bot-communities.html @@ -84,7 +84,7 @@ diff --git a/developers-notee-local-setup.html b/developers-notee-local-setup.html index 5358c31..e615a5e 100644 --- a/developers-notee-local-setup.html +++ b/developers-notee-local-setup.html @@ -84,7 +84,7 @@ diff --git a/developers-notee-multi-community-growth-benchmark.html b/developers-notee-multi-community-growth-benchmark.html index 3c2e504..d884435 100644 --- a/developers-notee-multi-community-growth-benchmark.html +++ b/developers-notee-multi-community-growth-benchmark.html @@ -84,7 +84,7 @@ diff --git a/developers-teeproxy-local.html b/developers-teeproxy-local.html index cab5a67..a0c7946 100644 --- a/developers-teeproxy-local.html +++ b/developers-teeproxy-local.html @@ -84,7 +84,7 @@ diff --git a/developers.html b/developers.html index 203745c..57bf5cc 100644 --- a/developers.html +++ b/developers.html @@ -84,7 +84,7 @@ diff --git a/economics-cantillon.html b/economics-cantillon.html index fd22a89..b841852 100644 --- a/economics-cantillon.html +++ b/economics-cantillon.html @@ -84,7 +84,7 @@ diff --git a/economics-demurrage.html b/economics-demurrage.html index 644e9d3..bdc7a39 100644 --- a/economics-demurrage.html +++ b/economics-demurrage.html @@ -84,7 +84,7 @@ diff --git a/economics-interest.html b/economics-interest.html index 170a21a..6fdb695 100644 --- a/economics-interest.html +++ b/economics-interest.html @@ -84,7 +84,7 @@ diff --git a/economics-local-currencies.html b/economics-local-currencies.html index e469d88..d882351 100644 --- a/economics-local-currencies.html +++ b/economics-local-currencies.html @@ -84,7 +84,7 @@ diff --git a/economics-ubi.html b/economics-ubi.html index 175999b..a11e065 100644 --- a/economics-ubi.html +++ b/economics-ubi.html @@ -84,7 +84,7 @@ diff --git a/economics.html b/economics.html index 07764b5..e5c0ce1 100644 --- a/economics.html +++ b/economics.html @@ -84,7 +84,7 @@ diff --git a/explorer.html b/explorer.html index ce20c07..f2ebebd 100644 --- a/explorer.html +++ b/explorer.html @@ -84,7 +84,7 @@ diff --git a/index.html b/index.html index edb65b4..5f6b1db 100644 --- a/index.html +++ b/index.html @@ -84,7 +84,7 @@ diff --git a/introduction.html b/introduction.html index 5a5e5bc..ef63e3c 100644 --- a/introduction.html +++ b/introduction.html @@ -84,7 +84,7 @@ diff --git a/parachain-kusama.html b/parachain-kusama.html index dbab709..067c763 100644 --- a/parachain-kusama.html +++ b/parachain-kusama.html @@ -84,7 +84,7 @@ diff --git a/print.html b/print.html index 5c9992a..422525d 100644 --- a/print.html +++ b/print.html @@ -86,7 +86,7 @@ @@ -1126,6 +1126,61 @@

nctr-dev list-communities

Congratulations! You are ready to select your community in the Encointer Wallet app perform your first Ceremony with your bootstrappers.

+

Perform a Testnet Cycle

+

This tutorial takes you through the process of performing a cycle using the CLI (without mobile app) on our testnet Gesell. If you'd like to test the same using the app, please see Perform a cycle meetup (with app). This tutorial can be performed as a a single person, as we will use bot accounts. The tutorial will take an entire cycle, ~30min on Gesell.

+

We assume you already have

+ +

Throughout this tutorial, we will use the Adriana community with cid srcq45PYNyD. Among its bootstrappers, we will work with 3 accounts: 5F77sGnUhpjdFnzruhurGZgqPFtvdECXTGgX4Bgy2zGavbEw, 5FyWbcwN1TGPdyzRzoEeem3MUcc7jXRs7ZoftZkAQLV47nS7, 5CMVLJCC4Jn7QmLsFRkLWkm2w4LJswpZo1V2nd1tp64iVnCR

+

Your cid and bootstrapper accounts will differ.

+

Import Test Accounts

+

In order to give the CLI access to your test bootstrapper accounts, please import them into the local keystore (unencrypted! don't use in production). +If this is the first cycle for your community, you can only use bootstrapper accounts.

+
nctr-gsl new-account "<mnemonic 12 words>”
+nctr-gsl list-accounts
+
+

Register Participants

+

Registering participants can only happen during Registering phase. You may have to wait max 20 min for the next Registering phase on Gesell.

+
nctr-gsl get-phase
+
+nctr-gsl register-participant 5F77sGnUhpjdFnzruhurGZgqPFtvdECXTGgX4Bgy2zGavbEw --cid srcq45PYNyD
+nctr-gsl register-participant 5FyWbcwN1TGPdyzRzoEeem3MUcc7jXRs7ZoftZkAQLV47nS7 --cid srcq45PYNyD
+nctr-gsl register-participant 5CMVLJCC4Jn7QmLsFRkLWkm2w4LJswpZo1V2nd1tp64iVnCR --cid srcq45PYNyD
+nctr-gsl list-participants --cid srcq45PYNyD
+
+

The last command should confirm your 3 accounts have been registered. As the testnet is public and participation is unpermissioned, it could happen that someone else has registered as well.

+

Check Assignments

+

As soon as the phase changed to Assigning, you can verify that your accounts have been assigned:

+
nctr-gsl list-meetups --cid srcq45PYNyD
+
+

Perform Cycle Gathering

+

As soon as the phase changed to Attesting, we can move on. This is the moment where we pretend to be 3 different people who gather at the right time in the right location as assigned by the protocol and attest each others' personhood.

+
nctr-gsl attest-attendees 5F77sGnUhpjdFnzruhurGZgqPFtvdECXTGgX4Bgy2zGavbEw 5FyWbcwN1TGPdyzRzoEeem3MUcc7jXRs7ZoftZkAQLV47nS7 5CMVLJCC4Jn7QmLsFRkLWkm2w4LJswpZo1V2nd1tp64iVnCR --cid srcq45PYNyD
+nctr-gsl attest-attendees 5FyWbcwN1TGPdyzRzoEeem3MUcc7jXRs7ZoftZkAQLV47nS7 5CMVLJCC4Jn7QmLsFRkLWkm2w4LJswpZo1V2nd1tp64iVnCR 5F77sGnUhpjdFnzruhurGZgqPFtvdECXTGgX4Bgy2zGavbEw --cid srcq45PYNyD
+nctr-gsl attest-attendees 5CMVLJCC4Jn7QmLsFRkLWkm2w4LJswpZo1V2nd1tp64iVnCR 5F77sGnUhpjdFnzruhurGZgqPFtvdECXTGgX4Bgy2zGavbEw 5FyWbcwN1TGPdyzRzoEeem3MUcc7jXRs7ZoftZkAQLV47nS7 --cid srcq45PYNyD
+# verify attestations after next block
+nctr-gsl list-attestees --cid srcq45PYNyD
+
+

Claim Rewards

+

If the majority of assigned participants submitted attestations, you can already claim during Attesting phase, right after the gathering happened. Should only a minority have attended, you need to wait for the next Registering phase before you can claim.

+

Any participant assigned to the same gathering can trigger reqrd issuance for all attestees

+
nctr-gsl claim-reward --signer 5F77sGnUhpjdFnzruhurGZgqPFtvdECXTGgX4Bgy2zGavbEw --cid srcq45PYNyD
+
+

Has the community income been issued?

+
nctr-gsl balance 5F77sGnUhpjdFnzruhurGZgqPFtvdECXTGgX4Bgy2zGavbEw  --cid srcq45PYNyD
+
+

Verify reputation

+
nctr-gsl reputation 5F77sGnUhpjdFnzruhurGZgqPFtvdECXTGgX4Bgy2zGavbEw
+
+

This command will list one row per cycle attendance with a few details which are out of scope here.

+

Next Steps

+

Beyond getting income, reputation can now be used to

+

Register new meetup locations

Once your community starts to grow, you'll have to make sure there are enough meetup locations. Otherwise less people will be assigned to ceremonies and your community will stall.

@@ -1470,122 +1525,93 @@

Drip Faucet

Refill

Simply send KSM to the faucet's address.

-

Democracy Tutorial

-

In this tutorial, we show a basic flow for two proposals in the democracy module using the CLI. On proposal will be approved and the other one will be rejected.

-

Go to the encointer-node repo and open 2 terminals:

-

Terminal 1:

-
git clone https://github.com/encointer/encointer-node.git
-cd encointer-node && git fetch && git checkout origin/personhood-democracy-1-delivery
-cd ..
-git clone https://github.com/encointer/pallets.git
-mv pallets/ encointer-pallets
-cd encointer-pallets && git fetch && git checkout origin/polkadot-v1.0.0-pallets-v1.3.0-democracy
-cd ../encointer-node
+

Democracy Tutorial

+

Encointer is about distribution of power - both economically and in terms of governance. Therefore, communities can govern their own protocol parameters with an approximation of universal suffrance. This tutorial takes you through the process of proposing a change and voting on proposals.

+

We assume you already have

+ +

What can you vote on?

+

Please read our democracy documentation to learn the details. In this tutorial, we will focus on local community governance, like changinging the community income amount issued per cycle.

+

Who can vote

+

Every reputable can vote on matters in the community where they have repuation. The current implementation grants reputables one vote per cycle attendance. This is a sybil-resilient approximation of universal suffrance and it gives those more voting power who engage more in cycles.

+

In the following, we will assume that one person only maintains one account. The protocol is sybil-resilient even if that's not the case, but the tutorial will be easier to follow with this assumption.

+

Quorum

+

Let's find out how many votes can maximally be cast for our community

+

First, how many different accounts have reputation?

+
nctr-gsl list-reputables
 
-cargo build --release
-./target/release/encointer-node-notee --dev --enable-offchain-indexing true -lencointer=debug,parity_ws=warn
-
-

Terminal 2:

-
cd client
-python -m venv env
-source env/bin.activate
-pip install requirements.txt
-python bootstrap_demo_community.py
-
-

Continuing in Terminal 2, we first move to the start of the next cycle, in order for the reputations of the last cycle to become eligible for voting:

-
../target/release/encointer-client-notee next-phase
-../target/release/encointer-client-notee next-phase
-../target/release/encointer-client-notee next-phase
-../target/release/encointer-client-notee listen -b 1
-
-

After that, we submit two porposals for voting:

-
# Submitting proposal id 1, SetInactivityTimeout(8)
-../target/release/encointer-client-notee submit-set-inactivity-timeout-proposal //Alice 8
-../target/release/encointer-client-notee listen -b 1
-# Submitting proposal id 2, UpdateNominalIncome(cid, 44)
-../target/release/encointer-client-notee --cid sqm1v79dF6b submit-update-nominal-income-proposal //Alice 44
-
-

We wait for the extrinsics to be in a block and list the proposals:

-
../target/release/encointer-client-notee listen -b 1
-../target/release/encointer-client-notee list-proposals
-
-

We expect to see the following output:

-
id: 1
-state: ProposalState::Ongoing
-action: ProposalAction::SetInactivityTimeout(8)
-start time: 1704685908002
-start cindex: 3
-electorate size: 3
-turnout: 0
-ayes: 0
-id: 2
+Listing the number of attested attendees for each community and ceremony for cycles [4607:4943]
+...
+Community ID: srcq45PYNyD
+...
+Cycle ID 4942: Total attested attendees: 3 (noshows: 0)
+Cycle ID 4943: Total attested attendees: 3 (noshows: 1)
+Reputables in srcq45PYNyD (unique accounts with at least one attendance) 4
+
+

Our test community has 4 reputable members who are eligible to vote. The quorum of votes will be the sum of attested attendances, in this case 6. Two accounts will have a voting power of 2, because they attended both cycles 4942 and 4943. Another two accounts have a voting power of 1

+

Reputation becomes eligible for voting with 1 cycle delay. If you came here straight after the previous tutorial, you may need to wait for one cycle (30min on Gesell) for your fresh reputation to become eligible.

+

Reputation loses its voting power after ReputationLifetime

+

For later reference, we list the 4 reputables here with their eligible votes:

+ +

Submit Proposals

+

Anyone can submit a proposal anytime. See the docs to learn about conflict resolution among proposals.

+
nctr-gsl submit-update-nominal-income-proposal 5FH44YdjmxbXJCAn9DuwpXuz5h2S8zLn752Vn5CyDa3quwEs 3.14 --cid srcq45PYNyD
+nctr-gsl list-proposals
+
+

Let's inspect the details of our proposal

+
id: 3
+action: ProposalAction::UpdateNominalIncome(srcq45PYNyD, 3.14000000000000012434)
+started at: 2024-03-24 15:58:48 UTC
+ends after: 2024-03-24 16:18:48 UTC
+start cindex: 4954
 state: ProposalState::Ongoing
-action: ProposalAction::UpdateNominalIncome(sqm1v79dF6b, 44)
-start time: 1704685920000
-start cindex: 3
-electorate size: 3
-turnout: 0
-ayes: 0
-
-

As an exmaple we show that Alice has 1 reputation and therefore a voting power of 1:

-
../target/release/encointer-client-notee reputation //Alice
-
-

which will yield:

-
1, sqm1v79dF6b, Reputation::VerifiedUnlinked
-
-

The same will hold for Bob and Charlie.

-

Then, we let the users vote for the porposals:

-
# Alice votes aye for proposal 1
-../target/release/encointer-client-notee vote //Alice 1 aye sqm1v79dF6b_1
-# Alice votes again aye for proposal 1, this vote will not count as she has already voted
-../target/release/encointer-client-notee vote //Alice 1 aye sqm1v79dF6b_1
-# Bob votes aye for proposal 1
-../target/release/encointer-client-notee vote //Bob 1 aye sqm1v79dF6b_1
-# Charlie votes aye for proposal 1
-../target/release/encointer-client-notee vote //Charlie 1 aye sqm1v79dF6b_1
-# Alice votes nay for proposal 2
-../target/release/encointer-client-notee vote //Alice 2 nay sqm1v79dF6b_1
-# Bob votes nay for proposal 2
-../target/release/encointer-client-notee vote //Bob 2 nay sqm1v79dF6b_1
-# Charlie votes aye for proposal 2
-../target/release/encointer-client-notee vote //Charlie 2 aye sqm1v79dF6b_1
-
-

Now, we wait for 5 blocks, as out confirmation period is 10 blocks and we already waited 6 blocks during voting:

-
../target/release/encointer-client-notee listen -b 5
-
-

Now, we need to update the proposal state and check again the proposals and the enactment queue:

-
# Alice updates proposal state of proposal 1
-../target/release/encointer-client-notee update-proposal-state //Alice 1
-../target/release/encointer-client-notee list-proposals
-../target/release/encointer-client-notee list-enactment-queue
-
-

For the proposals, we expect proposal 1 to be Approved:

-
id: 1
+
+

So now we have at most 30min time to vote.

+

Vote

+

Let's check our voting power:

+
nctr-gsl reputation 5FH44YdjmxbXJCAn9DuwpXuz5h2S8zLn752Vn5CyDa3quwEs
+4943, srcq45PYNyD, Reputation::VerifiedUnlinked
+
+

We have one vote in community srcq45PYNyD with our reputation from cindex 4943. We need this information to cast our vote:

+
nctr-gsl vote 5FH44YdjmxbXJCAn9DuwpXuz5h2S8zLn752Vn5CyDa3quwEs 3 aye srcq45PYNyD_4943
+nctr-gsl list-proposals
+
+

The proposal will immediately enter the confirming phase which lasts 5min

+
id: 3
+action: ProposalAction::UpdateNominalIncome(srcq45PYNyD, 3.14000000000000012434)
+started at: 2024-03-24 15:58:48 UTC
+ends after: 2024-03-24 16:18:48 UTC
+start cindex: 4954
+state: ProposalState::Confirming { since: 1711296000000 }
+confirming since: 2024-03-24 16:00:00 UTC until 2024-03-24 16:00:00 UTC
+
+

If no one else votes, it will be approved because in this case our vote is already more than 5% of the electorate. Please check our docs on adaptive quorum biasing

+

Proposals are lazily evaluated. after the end of the confirming phase you can call

+
nctr-gsl update-proposal-state 5FH44YdjmxbXJCAn9DuwpXuz5h2S8zLn752Vn5CyDa3quwEs 3
+nctr-gsl list-proposals
+
+
id: 3
+action: ProposalAction::UpdateNominalIncome(srcq45PYNyD, 3.14000000000000012434)
+started at: 2024-03-24 15:58:48 UTC
+ends after: 2024-03-24 16:18:48 UTC
+start cindex: 4954
 state: ProposalState::Approved
-action: ProposalAction::SetInactivityTimeout(8)
-start time: 1704685908002
-start cindex: 3
-electorate size: 3
-turnout: 3
-ayes: 3
-id: 2
-state: ProposalState::Ongoing
-action: ProposalAction::UpdateNominalIncome(sqm1v79dF6b, 44)
-start time: 1704685920000
-start cindex: 3
-electorate size: 3
-turnout: 3
-ayes: 1
-
-

And proposal 1 should be in the enactment queue, which means that it is scheduled for enactment at the start of the next cycle:

-
1
-
-

We wait for another 10 blocks, such that the proposal lifetime of 20 blocks for proposal 2 elapses and we expect proposal 2 to be cancelled:

-
# Waiting 10 blocks...
-../target/release/encointer-client-notee listen -b 10
-# Alice updates proposal state of proposal 2
-../target/release/encointer-client-notee update-proposal-state //Alice 2
-../target/release/encointer-client-notee list-proposals
+
+

All approved proposals will be enacted automatically at the start of the next Registering phase. Let's check the enactment queue:

+
nctr-gsl list-enactment-queue
+3
+
+

This returns all proposal id's which will be enacted. Please be aware that even approved proposals can be cancelled before enactment if another proposal for the same action passes before enactment.

+

After the start of the next Registering phase, let's verify the enactment:

+

 

Developers

This chapter includes information for developers who want to test the tech locally on their machines

diff --git a/protocol-ceremony-cycle.html b/protocol-ceremony-cycle.html index 86c81d6..dc3ef8b 100644 --- a/protocol-ceremony-cycle.html +++ b/protocol-ceremony-cycle.html @@ -84,7 +84,7 @@ diff --git a/protocol-cid.html b/protocol-cid.html index fdb130c..7e7c3d7 100644 --- a/protocol-cid.html +++ b/protocol-cid.html @@ -84,7 +84,7 @@ diff --git a/protocol-democracy.html b/protocol-democracy.html index 85df251..736254a 100644 --- a/protocol-democracy.html +++ b/protocol-democracy.html @@ -84,7 +84,7 @@ diff --git a/protocol-reputation.html b/protocol-reputation.html index fc0cd7f..fd8f133 100644 --- a/protocol-reputation.html +++ b/protocol-reputation.html @@ -84,7 +84,7 @@ diff --git a/protocol-threat-model.html b/protocol-threat-model.html index b1e0e66..fe5421e 100644 --- a/protocol-threat-model.html +++ b/protocol-threat-model.html @@ -84,7 +84,7 @@ diff --git a/protocol.html b/protocol.html index 2f76268..b806f8d 100644 --- a/protocol.html +++ b/protocol.html @@ -84,7 +84,7 @@ diff --git a/searchindex.js b/searchindex.js index 63a8151..01031dc 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Object.assign(window.search, {"doc_urls":["introduction.html#introduction","economics.html#economics","economics-cantillon.html#the-cantillon-effect","economics-ubi.html#universal-basic-income","economics-ubi.html#universal","economics-ubi.html#basic","economics-ubi.html#income","economics-ubi.html#literature","economics-demurrage.html#demurrage","economics-demurrage.html#comparison","economics-local-currencies.html#local-currencies","economics-local-currencies.html#classification","economics-local-currencies.html#mutual-credit","economics-local-currencies.html#local-fiat-currencies","economics-local-currencies.html#time-banks","economics-local-currencies.html#examples","economics-local-currencies.html#ab-schein-wörgl","economics-local-currencies.html#chiemgauer","economics-local-currencies.html#wir","economics-local-currencies.html#blaengarw-time-centre","economics-local-currencies.html#references","economics-interest.html#on-saving-loans-and-interest","economics-interest.html#alternatives","economics-interest.html#saving-is-no-virtue","economics-interest.html#encointers-approach","economics-interest.html#references","ssi.html#self-sovereign-identity-and-digital-personhood","ssi.html#digital-personhood","ssi.html#privacy-considerations","ssi.html#sybil-defense-for-social-media","ssi.html#community-web-of-trust","ssi.html#polkadot-parachain-personhood-service","protocol.html#encointer-protocol","protocol-ceremony-cycle.html#the-encointer-ceremony-cycle","protocol-ceremony-cycle.html#ceremony-phases","protocol-ceremony-cycle.html#registering","protocol-ceremony-cycle.html#assigning","protocol-ceremony-cycle.html#attesting","protocol-ceremony-cycle.html#timing","protocol-reputation.html#encointer-personhood-reputation","protocol-reputation.html#reputation-lifetime","protocol-reputation.html#reputation-ratio","protocol-reputation.html#user-journey","protocol-reputation.html#newbie","protocol-reputation.html#reputable","protocol-reputation.html#bootstrappers","protocol-cid.html#community-identifiers","protocol-cid.html#js-api","protocol-democracy.html#democracy","protocol-democracy.html#scope-of-democracy","protocol-democracy.html#protocol-changes","protocol-democracy.html#global-actions","protocol-democracy.html#community-actions","protocol-democracy.html#proposals","protocol-democracy.html#proposal-lifetime","protocol-democracy.html#voting","protocol-democracy.html#eligible-reputations","protocol-democracy.html#adaptive-quorum-biasing-aqb-and-minimum-approval","protocol-democracy.html#tutorial","protocol-threat-model.html#threat-model","protocol-threat-model.html#actor-profiles","protocol-threat-model.html#honest","protocol-threat-model.html#greedy","protocol-threat-model.html#saboteur","protocol-threat-model.html#more-roles","protocol-threat-model.html#sybil","protocol-threat-model.html#manipulable","protocol-threat-model.html#collusion-organizations","protocol-threat-model.html#evilcorp","protocol-threat-model.html#assumptions","protocol-threat-model.html#rule-design","protocol-threat-model.html#rules","protocol-threat-model.html#meetup-assignment","protocol-threat-model.html#meetup-validation","protocol-threat-model.html#ubireward-issuance","protocol-threat-model.html#remote-attacks","protocol-threat-model.html#flooding-attack","protocol-threat-model.html#non-protocol-threats","protocol-threat-model.html#aggression-detention","protocol-threat-model.html#abduction","protocol-threat-model.html#behavioural-meetup-scenario-analysis","protocol-threat-model.html#3-registered-participants","protocol-threat-model.html#happy-flow","protocol-threat-model.html#attacks","protocol-threat-model.html#4-registered-participants","protocol-threat-model.html#oversigning","protocol-threat-model.html#oversigning-light","protocol-threat-model.html#location-spoofing","protocol-threat-model.html#5-registered-participants","protocol-threat-model.html#conclusion","decentralization.html#decentralization","decentralization.html#blockchain","decentralization.html#consensus-and-security","decentralization.html#governance","decentralization.html#privacy","decentralization.html#philosophy","decentralization-governance.html#governance","decentralization-governance.html#subsidiarity","decentralization-governance.html#global-protocol-scope","decentralization-governance.html#global-operative-scope","decentralization-governance.html#local-community-scope","decentralization-governance.html#council","decentralization-governance.html#powers-of-council","deployments.html#testnets","deployments.html#gesell","deployments.html#cantillon","deployments.html#outlook-on-mainnet","deployments.html#time-warping-for-testnets","testnet-gesell.html#testnet-gesell","testnet-gesell.html#design","testnet-gesell.html#scheduler","testnet-gesell.html#currencies","testnet-gesell.html#balances","testnet-gesell.html#ceremonies","testnet-cantillon.html#testnet-cantillon","testnet-cantillon.html#design","parachain-kusama.html#encointer-kusama-parachain","bazaar.html#bazaar","bazaar.html#vouchers","app.html#encointer-wallet-app","app.html#install","app.html#android","app.html#ios","app.html#feature-phones-kaios","app.html#dumb-phones-ussd","app.html#usage","app.html#acknowledgements","app-select-community.html#select-community","app-select-community.html#select-network","app-select-community.html#select-community","app-register.html#register-for-a-ceremony","app-meetup.html#perfrom-a-ceremony-meetup","app-meetup.html#voting","app-meetup.html#attesting-personhood","app-meetup.html#procedure","app-meetup.html#reward-issuance","app-meetup.html#immediate-claim","app-meetup.html#late-claim","app-meetup.html#social-contract","explorer.html#explorer","tutorials-cli.html#basic-cli-usage","tutorials-cli.html#setup","tutorials-cli.html#get-ceremony-phase","tutorials-cli.html#list-communities","tutorials-cli.html#manage-account-keystore","tutorials-cli.html#query-account-balances","tutorials-cli.html#faucet","tutorials-register-community.html#how-to-register-an-encointer-community-manually","tutorials-register-community.html#set-up-bootstrappers","tutorials-register-community.html#define-ceremony-meetup-locations","tutorials-register-community.html#specfile","tutorials-register-community.html#use-your-own-community-icon","tutorials-register-community.html#register-your-new-community","tutorials-register-locations.html#register-new-meetup-locations","tutorials-register-locations.html#selecting-locations","tutorials-register-locations.html#accessibility","tutorials-register-locations.html#easy-discoverability","tutorials-register-locations.html#enough-space","tutorials-register-locations.html#medium-crowdedness","tutorials-register-locations.html#shelter","tutorials-register-locations.html#identity-shaping","tutorials-register-locations.html#close-to-acceptance-points","tutorials-register-locations.html#specify-locations","tutorials-register-locations.html#register-locations","tutorials-register-locations.html#how-to-add-locations-on-mainnet","tutorials-vouchers.html#create-vouchers","tutorials-vouchers.html#setup","tutorials-vouchers.html#generate","tutorials-vouchers.html#funding","tutorials-vouchers.html#design","tutorials-vouchers.html#auto-config","tutorials-acceptance-point.html#acceptance-point-setup","tutorials-acceptance-point.html#security","tutorials-acceptance-point.html#collect-only-setup","tutorials-acceptance-point.html#qr-code-for-self-service-checkout","tutorials-bazaar.html#bazaar","tutorials-bazaar.html#setup-ipfs-uploads","tutorials-bazaar.html#create-a-pure-proxy-business-account","tutorials-bazaar.html#create-a-business-entry-for-bazaar","tutorials-bazaar.html#register-an-offering","tutorials-bazaar.html#why-ipfs","tutorials-bazaar.html#bazaar-web","tutorials-faucets.html#faucets","tutorials-faucets.html#testnet-usage","tutorials-faucets.html#drip","tutorials-faucets.html#replenish-a-faucet","tutorials-faucets.html#create-a-new-faucet","tutorials-faucets.html#mainnet-faucets","tutorials-faucets.html#create-faucet","tutorials-faucets.html#drip-faucet","tutorials-faucets.html#refill","tutorials-democracy.html#democracy-tutorial","developers.html#developers","developers-notee-local-setup.html#gesell-local-setup","developers-notee-local-setup.html#build-node","developers-notee-local-setup.html#launch-gesell-node","developers-notee-local-setup.html#cli-client","developers-bot-communities.html#bot-communities","developers-bot-communities.html#setup","developers-bot-communities.html#local-testing","developers-bot-communities.html#testnet-gesell-bot-communities","developers-bot-communities.html#explanations","developers-bot-communities.html#see-activity-in-explorer","developers-bot-communities.html#browse-bazaar-businesses-and-offernings","developers-notee-multi-community-growth-benchmark.html#gesell-local-dockerized-benchmark","developers-notee-multi-community-growth-benchmark.html#launch-local-docker-environment-with-gesell-node-and-comminities","developers-notee-multi-community-growth-benchmark.html#watch-communities-grow-on-explorer","developers-notee-multi-community-growth-benchmark.html#watch-performance-metrics-prometheusgrafana","developers-teeproxy-local.html#local-teeproxy-setup","developers-teeproxy-local.html#build-client-and-worker","developers-teeproxy-local.html#build-node","developers-teeproxy-local.html#docker-demo","developers-teeproxy-local.html#building","developers-teeproxy-local.html#run-a-bot-community"],"index":{"documentStore":{"docInfo":{"0":{"body":13,"breadcrumbs":1,"title":1},"1":{"body":9,"breadcrumbs":1,"title":1},"10":{"body":64,"breadcrumbs":3,"title":2},"100":{"body":17,"breadcrumbs":4,"title":3},"101":{"body":41,"breadcrumbs":2,"title":1},"102":{"body":229,"breadcrumbs":3,"title":2},"103":{"body":10,"breadcrumbs":1,"title":1},"104":{"body":30,"breadcrumbs":1,"title":1},"105":{"body":25,"breadcrumbs":1,"title":1},"106":{"body":14,"breadcrumbs":2,"title":2},"107":{"body":18,"breadcrumbs":3,"title":3},"108":{"body":44,"breadcrumbs":3,"title":2},"109":{"body":8,"breadcrumbs":2,"title":1},"11":{"body":12,"breadcrumbs":2,"title":1},"110":{"body":9,"breadcrumbs":2,"title":1},"111":{"body":6,"breadcrumbs":2,"title":1},"112":{"body":6,"breadcrumbs":2,"title":1},"113":{"body":10,"breadcrumbs":2,"title":1},"114":{"body":24,"breadcrumbs":3,"title":2},"115":{"body":30,"breadcrumbs":2,"title":1},"116":{"body":12,"breadcrumbs":4,"title":3},"117":{"body":42,"breadcrumbs":1,"title":1},"118":{"body":30,"breadcrumbs":1,"title":1},"119":{"body":13,"breadcrumbs":3,"title":3},"12":{"body":118,"breadcrumbs":3,"title":2},"120":{"body":0,"breadcrumbs":1,"title":1},"121":{"body":0,"breadcrumbs":1,"title":1},"122":{"body":0,"breadcrumbs":1,"title":1},"123":{"body":5,"breadcrumbs":3,"title":3},"124":{"body":9,"breadcrumbs":3,"title":3},"125":{"body":15,"breadcrumbs":1,"title":1},"126":{"body":6,"breadcrumbs":1,"title":1},"127":{"body":6,"breadcrumbs":3,"title":2},"128":{"body":81,"breadcrumbs":3,"title":2},"129":{"body":36,"breadcrumbs":3,"title":2},"13":{"body":136,"breadcrumbs":4,"title":3},"130":{"body":61,"breadcrumbs":3,"title":2},"131":{"body":23,"breadcrumbs":4,"title":3},"132":{"body":35,"breadcrumbs":2,"title":1},"133":{"body":14,"breadcrumbs":3,"title":2},"134":{"body":97,"breadcrumbs":2,"title":1},"135":{"body":26,"breadcrumbs":3,"title":2},"136":{"body":14,"breadcrumbs":3,"title":2},"137":{"body":10,"breadcrumbs":3,"title":2},"138":{"body":74,"breadcrumbs":3,"title":2},"139":{"body":67,"breadcrumbs":1,"title":1},"14":{"body":78,"breadcrumbs":3,"title":2},"140":{"body":13,"breadcrumbs":4,"title":3},"141":{"body":96,"breadcrumbs":2,"title":1},"142":{"body":18,"breadcrumbs":3,"title":2},"143":{"body":56,"breadcrumbs":3,"title":2},"144":{"body":36,"breadcrumbs":4,"title":3},"145":{"body":27,"breadcrumbs":4,"title":3},"146":{"body":12,"breadcrumbs":2,"title":1},"147":{"body":23,"breadcrumbs":5,"title":4},"148":{"body":125,"breadcrumbs":4,"title":3},"149":{"body":68,"breadcrumbs":5,"title":4},"15":{"body":0,"breadcrumbs":2,"title":1},"150":{"body":143,"breadcrumbs":2,"title":1},"151":{"body":96,"breadcrumbs":4,"title":3},"152":{"body":60,"breadcrumbs":4,"title":3},"153":{"body":25,"breadcrumbs":5,"title":4},"154":{"body":7,"breadcrumbs":3,"title":2},"155":{"body":14,"breadcrumbs":2,"title":1},"156":{"body":10,"breadcrumbs":3,"title":2},"157":{"body":13,"breadcrumbs":3,"title":2},"158":{"body":25,"breadcrumbs":3,"title":2},"159":{"body":21,"breadcrumbs":2,"title":1},"16":{"body":65,"breadcrumbs":4,"title":3},"160":{"body":6,"breadcrumbs":3,"title":2},"161":{"body":11,"breadcrumbs":4,"title":3},"162":{"body":67,"breadcrumbs":3,"title":2},"163":{"body":40,"breadcrumbs":3,"title":2},"164":{"body":41,"breadcrumbs":4,"title":3},"165":{"body":36,"breadcrumbs":3,"title":2},"166":{"body":13,"breadcrumbs":2,"title":1},"167":{"body":102,"breadcrumbs":2,"title":1},"168":{"body":25,"breadcrumbs":2,"title":1},"169":{"body":8,"breadcrumbs":2,"title":1},"17":{"body":34,"breadcrumbs":2,"title":1},"170":{"body":19,"breadcrumbs":3,"title":2},"171":{"body":20,"breadcrumbs":4,"title":3},"172":{"body":4,"breadcrumbs":2,"title":1},"173":{"body":76,"breadcrumbs":3,"title":2},"174":{"body":115,"breadcrumbs":6,"title":5},"175":{"body":4,"breadcrumbs":2,"title":1},"176":{"body":20,"breadcrumbs":4,"title":3},"177":{"body":16,"breadcrumbs":6,"title":5},"178":{"body":77,"breadcrumbs":5,"title":4},"179":{"body":61,"breadcrumbs":3,"title":2},"18":{"body":41,"breadcrumbs":2,"title":1},"180":{"body":25,"breadcrumbs":2,"title":1},"181":{"body":7,"breadcrumbs":3,"title":2},"182":{"body":50,"breadcrumbs":2,"title":1},"183":{"body":0,"breadcrumbs":3,"title":2},"184":{"body":154,"breadcrumbs":2,"title":1},"185":{"body":17,"breadcrumbs":3,"title":2},"186":{"body":121,"breadcrumbs":4,"title":3},"187":{"body":13,"breadcrumbs":3,"title":2},"188":{"body":40,"breadcrumbs":3,"title":2},"189":{"body":64,"breadcrumbs":3,"title":2},"19":{"body":22,"breadcrumbs":4,"title":3},"190":{"body":5,"breadcrumbs":2,"title":1},"191":{"body":502,"breadcrumbs":3,"title":2},"192":{"body":9,"breadcrumbs":1,"title":1},"193":{"body":13,"breadcrumbs":4,"title":3},"194":{"body":23,"breadcrumbs":3,"title":2},"195":{"body":69,"breadcrumbs":4,"title":3},"196":{"body":43,"breadcrumbs":3,"title":2},"197":{"body":35,"breadcrumbs":3,"title":2},"198":{"body":19,"breadcrumbs":2,"title":1},"199":{"body":231,"breadcrumbs":3,"title":2},"2":{"body":167,"breadcrumbs":3,"title":2},"20":{"body":17,"breadcrumbs":2,"title":1},"200":{"body":65,"breadcrumbs":5,"title":4},"201":{"body":424,"breadcrumbs":2,"title":1},"202":{"body":11,"breadcrumbs":4,"title":3},"203":{"body":14,"breadcrumbs":5,"title":4},"204":{"body":9,"breadcrumbs":5,"title":4},"205":{"body":35,"breadcrumbs":8,"title":7},"206":{"body":18,"breadcrumbs":5,"title":4},"207":{"body":14,"breadcrumbs":5,"title":4},"208":{"body":34,"breadcrumbs":4,"title":3},"209":{"body":92,"breadcrumbs":4,"title":3},"21":{"body":96,"breadcrumbs":4,"title":3},"210":{"body":62,"breadcrumbs":3,"title":2},"211":{"body":87,"breadcrumbs":3,"title":2},"212":{"body":80,"breadcrumbs":2,"title":1},"213":{"body":52,"breadcrumbs":4,"title":3},"22":{"body":88,"breadcrumbs":2,"title":1},"23":{"body":54,"breadcrumbs":3,"title":2},"24":{"body":151,"breadcrumbs":3,"title":2},"25":{"body":44,"breadcrumbs":2,"title":1},"26":{"body":80,"breadcrumbs":5,"title":5},"27":{"body":41,"breadcrumbs":2,"title":2},"28":{"body":22,"breadcrumbs":2,"title":2},"29":{"body":210,"breadcrumbs":4,"title":4},"3":{"body":81,"breadcrumbs":4,"title":3},"30":{"body":82,"breadcrumbs":3,"title":3},"31":{"body":56,"breadcrumbs":4,"title":4},"32":{"body":53,"breadcrumbs":2,"title":2},"33":{"body":10,"breadcrumbs":5,"title":3},"34":{"body":9,"breadcrumbs":4,"title":2},"35":{"body":31,"breadcrumbs":3,"title":1},"36":{"body":42,"breadcrumbs":3,"title":1},"37":{"body":41,"breadcrumbs":3,"title":1},"38":{"body":29,"breadcrumbs":3,"title":1},"39":{"body":13,"breadcrumbs":5,"title":3},"4":{"body":62,"breadcrumbs":2,"title":1},"40":{"body":32,"breadcrumbs":4,"title":2},"41":{"body":22,"breadcrumbs":4,"title":2},"42":{"body":0,"breadcrumbs":4,"title":2},"43":{"body":50,"breadcrumbs":3,"title":1},"44":{"body":57,"breadcrumbs":3,"title":1},"45":{"body":67,"breadcrumbs":3,"title":1},"46":{"body":22,"breadcrumbs":4,"title":2},"47":{"body":27,"breadcrumbs":4,"title":2},"48":{"body":73,"breadcrumbs":3,"title":1},"49":{"body":9,"breadcrumbs":4,"title":2},"5":{"body":231,"breadcrumbs":2,"title":1},"50":{"body":26,"breadcrumbs":4,"title":2},"51":{"body":112,"breadcrumbs":4,"title":2},"52":{"body":51,"breadcrumbs":4,"title":2},"53":{"body":92,"breadcrumbs":3,"title":1},"54":{"body":57,"breadcrumbs":4,"title":2},"55":{"body":0,"breadcrumbs":3,"title":1},"56":{"body":49,"breadcrumbs":4,"title":2},"57":{"body":13,"breadcrumbs":8,"title":6},"58":{"body":7,"breadcrumbs":3,"title":1},"59":{"body":0,"breadcrumbs":4,"title":2},"6":{"body":50,"breadcrumbs":2,"title":1},"60":{"body":8,"breadcrumbs":4,"title":2},"61":{"body":2,"breadcrumbs":3,"title":1},"62":{"body":18,"breadcrumbs":3,"title":1},"63":{"body":16,"breadcrumbs":3,"title":1},"64":{"body":0,"breadcrumbs":4,"title":2},"65":{"body":12,"breadcrumbs":3,"title":1},"66":{"body":10,"breadcrumbs":3,"title":1},"67":{"body":0,"breadcrumbs":4,"title":2},"68":{"body":15,"breadcrumbs":3,"title":1},"69":{"body":22,"breadcrumbs":3,"title":1},"7":{"body":17,"breadcrumbs":2,"title":1},"70":{"body":28,"breadcrumbs":4,"title":2},"71":{"body":3,"breadcrumbs":3,"title":1},"72":{"body":26,"breadcrumbs":4,"title":2},"73":{"body":31,"breadcrumbs":4,"title":2},"74":{"body":27,"breadcrumbs":4,"title":2},"75":{"body":0,"breadcrumbs":4,"title":2},"76":{"body":19,"breadcrumbs":4,"title":2},"77":{"body":0,"breadcrumbs":5,"title":3},"78":{"body":24,"breadcrumbs":4,"title":2},"79":{"body":19,"breadcrumbs":3,"title":1},"8":{"body":86,"breadcrumbs":2,"title":1},"80":{"body":7,"breadcrumbs":6,"title":4},"81":{"body":0,"breadcrumbs":5,"title":3},"82":{"body":23,"breadcrumbs":4,"title":2},"83":{"body":100,"breadcrumbs":3,"title":1},"84":{"body":0,"breadcrumbs":5,"title":3},"85":{"body":61,"breadcrumbs":3,"title":1},"86":{"body":18,"breadcrumbs":4,"title":2},"87":{"body":90,"breadcrumbs":4,"title":2},"88":{"body":19,"breadcrumbs":5,"title":3},"89":{"body":53,"breadcrumbs":3,"title":1},"9":{"body":70,"breadcrumbs":2,"title":1},"90":{"body":82,"breadcrumbs":1,"title":1},"91":{"body":44,"breadcrumbs":1,"title":1},"92":{"body":127,"breadcrumbs":2,"title":2},"93":{"body":94,"breadcrumbs":1,"title":1},"94":{"body":39,"breadcrumbs":1,"title":1},"95":{"body":75,"breadcrumbs":1,"title":1},"96":{"body":0,"breadcrumbs":2,"title":1},"97":{"body":15,"breadcrumbs":2,"title":1},"98":{"body":32,"breadcrumbs":4,"title":3},"99":{"body":14,"breadcrumbs":4,"title":3}},"docs":{"0":{"body":"logo This is becoming the main documentation resource for Encointer. It is work in progress. For more detailed information refer to the whitepaper","breadcrumbs":"Introduction","id":"0","title":"Introduction"},"1":{"body":"This chapter shall be an opinionated interpretation of the status quo and what we expect to acheive with Encointer.","breadcrumbs":"Economics","id":"1","title":"Economics"},"10":{"body":"Cryptocurrencies are fundamentally global in nature. Their networks are decentralized and agnostic to national borders. But global currencies have a severe disadvantage: Their purchase value can evolve very differently in different regions. The Euro is such an example, which is the official currency in many european countries with distinct fiscal policies and economic development. While there are political reasons to favor such a unifying currency, many economists doubt the concept. States with less economic growth have no option of devaluing their national currency. They can only get into debt - and then get forced into austerity, further weakening their economy. Local currencies on the other hand are mainly affected by local economy.","breadcrumbs":"Economics » Local Currencies","id":"10","title":"Local Currencies"},"100":{"body":"Each community can decide on parameters that only concern itself. Such parameters are demurrage, nominal income per ceremony and community metadata like Logo, Name","breadcrumbs":"Decentralization » Local Community Scope","id":"100","title":"Local Community Scope"},"101":{"body":"Encointer aims at democratic governance based on one-person-one-vote . However, democracy requires a representative number of users and communities to be meaningful and legitimate. Therefore, governance is delegated to a council until the community deems to be ready for democracy. The council currently consists of 7 members of the Encointer Association. Each local community may elect a representative which shall join the council.","breadcrumbs":"Decentralization » Council","id":"101","title":"Council"},"102":{"body":"The council currently governs the Global Operative Scope and the Local Community Scope. Through propsals , it can execute the following actions: Adjust ceremony schedule next_phase : force progress to next ceremony phase push_by_one_day : postpone next phase change by one day push_by_one_day set_phase_duration : adjust ceremony schedule phase durations set_next_phase_timestamp : arbitrarily define the time for next phase change Manage communities new_community : Register new communities add_location : add meetup location for community remove_location : remove meetup location for community update_community_metadata : change name, currency, artwork IPFS cid for community update_demurrage : change how fast balances are demurraged per community update_nominal_income : the amount of basic income per ceremony per person per community set_min_solar_trip_time_s : security parameter to calculate minimal location distance set_max_speed_mps : security parameter defining the maximal speed over ground of an adversary purge_community : Remove a community by from the registry entirely, wiping all balances, reputation and locations Manage Ceremony Parameters and Memory set_inactivity_timeout : define how many ceremonies a community can be idle before getting purged set_endorsement_tickets_per_bootstrapper : define how many endorsement tickets bootstrappers should get to invite people they trust set_reputation_lifetime : define how long proof-of-personhood reputation is valid for and stored set_meetup_time_offset : finetune meetup time difference to high sun purge_community_ceremony : garbage collect outdated reputation if necessary due to parameter changes set_time_tolerance set how precisely the meetup time needs to be attested to be considered valid set_location_tolerance set how precisely the meetup location needs to be attested to be considered valid Manage Currency/Fee Parameters setFeeConversionFactor tune community currency extrinsic fees relative to KSM fees and community income Treasury accept / reject treasury spend proposals (the treasury receives KSM fees for extrinsics plus potential donations In the beginning, onboarding of new communites will be permissioned, subject to the council's approval. The team sees no other way to avoid bot communities squatting the earth's surface. Over time, a web-of-trust will build and new communities can be onboarded by endorsement of other communites.","breadcrumbs":"Decentralization » Powers of Council","id":"102","title":"Powers of Council"},"103":{"body":"Encointer maintains two testnets: Gesell and Cantillon. The networks differ in their goals and designs:","breadcrumbs":"Testnets","id":"103","title":"Testnets"},"104":{"body":"Aimed at automated testing of the protocol and our mobile phone app . Time-warping allows to script bot populations and hold ceremonies every 30min. Complete transparency of all registries and balances. Everything happens on-chain. experimenting with real ceremony meetups, physically meeting people.","breadcrumbs":"Gesell","id":"104","title":"Gesell"},"105":{"body":"The main purpose of Cantillon is privacy enhancement through Trusted Execution environments (with enclaves still in development mode, so privacy is not guaranteed before we move to production mode) Watch our demo video on bootstrapping a bot community","breadcrumbs":"Cantillon","id":"105","title":"Cantillon"},"106":{"body":"The mainnet is planned to become a parachain of Kusama , the canary network of Polkadot . The chain security will depend on Kusama relay chain.","breadcrumbs":"Outlook on Mainnet","id":"106","title":"Outlook on Mainnet"},"107":{"body":"In order to understand the different timing on our networks, we offer the following figure: Phase Timing Temporarily, we will apply 30min ceremony cycle to both Gesell and Cantillon*","breadcrumbs":"Time Warping for Testnets","id":"107","title":"Time Warping for Testnets"},"108":{"body":"Gesell is our first testnet. It allows you to bootstrap new local currencies and perform regular proof-of-personhood ceremonies that give participants a universal basic income. This network is meant for testing with bot populations in order to audit and stress-test the protocol. Gesell does not give you the privacy that later networks will provide. We do not expect real physical meetups to happen on this network except occasional demo meetups.","breadcrumbs":"Deployments » Testnet Gesell","id":"108","title":"Testnet Gesell"},"109":{"body":"Gesell is based on substrate and its nodes consist of four pallets Gesell","breadcrumbs":"Deployments » Design","id":"109","title":"Design"},"11":{"body":"Known examples of local currencies can be divided into mutual credit , local fiat currencies and time banks .","breadcrumbs":"Economics » Classification","id":"11","title":"Classification"},"110":{"body":"Keeps track of time and maintains the ceremony state-machine phase changes.","breadcrumbs":"Deployments » Scheduler","id":"110","title":"Scheduler"},"111":{"body":"Registry for all local currencies with their properties and meetup locations","breadcrumbs":"Deployments » Currencies","id":"111","title":"Currencies"},"112":{"body":"The individual's account balances in all currencies, featuring demurrage .","breadcrumbs":"Deployments » Balances","id":"112","title":"Balances"},"113":{"body":"Where participants register for ceremonies. Assignment of meetups and issuance of UBI upon proof-of-personhood.","breadcrumbs":"Deployments » Ceremonies","id":"113","title":"Ceremonies"},"114":{"body":"** DISCONTINUED ** Cantillon was the testnet to showcase the privacy features using trusted execution environments with Integritee technology It is still on our roadmap to include these features, but currently, the focus lies on running a common good parachain on Kusama","breadcrumbs":"Deployments » Testnet Cantillon","id":"114","title":"Testnet Cantillon"},"115":{"body":"Cantillon uses the same pallets as Gesell, but the privacy-sensitive ones will be executed off-chain, inside a trusted execution environment (TEE). SubstraTEE will be the framework that isolates sensitive information inside Intel SGX enclaves (Alternative TEE technologies are being evaluated) Cantillon","breadcrumbs":"Deployments » Design","id":"115","title":"Design"},"116":{"body":"Encointer's productive mainnet is planned run as a common good parachain on Kusama. More info coming...","breadcrumbs":"Deployments » Encointer Kusama Parachain","id":"116","title":"Encointer Kusama Parachain"},"117":{"body":"What is a local currency without the possibility to spend it on desired goods and services? How can you find businesses that accept the local Encointer currency? Encointer features a builtin classifieds system for advertizing businesses and offerings we call bazaar . Anyone can register businesses and offerings to be advertized within their local community. All metadata and images for classifieds are stored on ipfs . The ownership of classifieds is registered on the Encointer blockchain.","breadcrumbs":"Bazaar","id":"117","title":"Bazaar"},"118":{"body":"Every business may issue their own transferrable vouchers and can therefore issue their own loyalty money or acquire loans from the community . As businesses are owned by real people whose digital personhood has been attested at Encointer ceremonies, these vouchers come with a sybil-defense and the credit rating of businesses is immutably recorded.","breadcrumbs":"Vouchers","id":"118","title":"Vouchers"},"119":{"body":"The Encointer app is all that users need to participate in a local community. It serves as a wallet and lets you participate in Encointer ceremonies.","breadcrumbs":"Encointer Wallet App","id":"119","title":"Encointer Wallet App"},"12":{"body":"Mutual credit is a membership based, cashless currency created by clearing positive and negative balances between members when they trade. Usually, the accounts are denominated in national currency. If Alice provides a service worth 100$ to Bob, Alices balance will be +100$, Bob's will be -100$. Alice can later spend her 100$ balance in a trade with Charlie, who may be interested in a service Bob provides. Businesses are often allowed to have negative balances in the order of their usual turnover for a few months. These schemes rely on a local authority that performs due diligence when accepting new members and bans defaulters. Examples are barter networks like Talent or business exchange networks like WIR , RES . Mutual credit usually comes with high transaction costs. You might not always find the product you are looking for and it may be challenging to accept such currency for payment if you don't know where to spend it later. In an economic environment of deflation, when there is a shortage of money because banks are reluctant to issue credits, mutual credit has shown to be of great value [1]. But when there's an abundance of money, these networks are unattractive and they generally don't further Encointer's goal of reducing inequality.","breadcrumbs":"Economics » Mutual Credit","id":"12","title":"Mutual Credit"},"120":{"body":"","breadcrumbs":"Install","id":"120","title":"Install"},"121":{"body":"","breadcrumbs":"Android","id":"121","title":"Android"},"122":{"body":"","breadcrumbs":"iOS","id":"122","title":"iOS"},"123":{"body":"Feature phone support planned in the future","breadcrumbs":"Feature Phones: KaiOS","id":"123","title":"Feature Phones: KaiOS"},"124":{"body":"For the most simple category of phones we plan support in the future by using a USSD gateway","breadcrumbs":"Dumb Phones: USSD","id":"124","title":"Dumb Phones: USSD"},"125":{"body":"Our preliminary instructions: Onboarding Backup and restore your account Inviting and endorsing newcomers Ceremony Instructions: How to collect Community-Issued Income","breadcrumbs":"Usage","id":"125","title":"Usage"},"126":{"body":"Encointer Wallet is based on previous work by polkawallet.io","breadcrumbs":"Acknowledgements","id":"126","title":"Acknowledgements"},"127":{"body":"This section shows you how to select a community on a specific network.","breadcrumbs":"App » Select Community","id":"127","title":"Select Community"},"128":{"body":"By default, the Encointer Wallet App connects to mainnet on Kusama. This is fine for most users and you likely can skip this section. In order to test on our Testnets, you'll need to configure the app to use another network endpoint. Enable developer mode: Profile -> tick developer mode checkbox Tap \"Change Network: nctr-k\" In the left column, tap the desired network: NCTR-GSL: Testnet Gesell NCTR-R: Testnet Lietaer on Rococo NCTR-K: Mainnet on Kusama NCTR-GSL-DEV: Local solochain using ws://10.0.2.2:9944 for an emulator setup Tap on one of your account names (not the identicon) Wait until you see a green tick besides (current: nctr-gsl) on the profile page Disable developer mode","breadcrumbs":"App » Select Network","id":"128","title":"Select Network"},"129":{"body":"Once your app is connected to the right network where you registered your new community, you can now switch the app to your community: On the top of the home screen, tap the community symbol with your account identicon Switch Community -> (+) Add community On the world map, browse for your community and tap the pin tap again the popped-up name of your community","breadcrumbs":"App » Select Community","id":"129","title":"Select Community"},"13":{"body":"Currencies like Wörgl's AB Schein, Chiemgauer or Berkshares are denominated in national currency. Often they have circulating paper bills, sometimes featuring demurrage. What they all have in common: They are only circulating within a local community and are worthless elsewhere. Often, they are redeemable for national currency, sometimes subject to a small fee. Sometimes redemption is restricted to businesses. On the bottom line, such currencies can be understood as a loyalty programme promoting local spending, sometimes incentivized with discounts. They are successful in strenghtening the spirit of local community [1] and they can mitigate unemployment in an environment of deflation (Wörgl). However, due to globalization, local goods are often more expensive than imported ones. Therefore, these currencies are not attractive for poorer members of the community if they have to buy the local currency with national currency in the first place. Grassroots Economics' Sarafu Credit in Kenya is a very innovative approach that shows significant social impact by empowering poor neighbourhoods by issuing money to local businesses directly. However, their concept introduces complexity, as money supply and distribution so far relies on careful engineering by experts from outside the community, for each community specifically. Moreover, Sarafu Credit is backed by donation money. While this may resemble a cash-transfer scheme, it actually isn't: Foreign capital is used as a fractional reserve for the local currency by applying bonding curves .","breadcrumbs":"Economics » Local Fiat Currencies","id":"13","title":"Local Fiat Currencies"},"130":{"body":"Assuming you have previously installed the Encointer Wallet app selected you community you can now check when the next ceremony will take place. If you would like to attend the upcoming ceremony, you can tap the register button. You will need a tiny bit of inital funding to pay transaction fees. Either you get community currency from someone in your community, or you get KSM, the native token of the Encointer mainnet on Kusama. According to the ceremony cycle you will have to await the assigning phase until the app shows you if you have been assigned and when you have to be in which location. On the day of the meetup, be on time at the right location and perform a ceremony meetup with your fellow attendees you will hopefully encounter there.","breadcrumbs":"App » Register for a ceremony","id":"130","title":"Register for a ceremony"},"131":{"body":"Assuming you have previously installed the Encointer Wallet app selected you community Registered for the current ceremony You have been assigned to a meetup You are now physically on time in the right location together with a few fellow ceremony attendees","breadcrumbs":"App » Perfrom a Ceremony Meetup","id":"131","title":"Perfrom a Ceremony Meetup"},"132":{"body":"The meetup starts with tapping the button \"start meetup\" on the Encointer Wallet app home screen. As a first human confirmation, you'll have to vote on how many attendees are present, including yourself. Once everyone has voted, no further attendees can join. If the group decides to include a latecomer, the entire meetup has to be started from the beginning.","breadcrumbs":"App » Voting","id":"132","title":"Voting"},"133":{"body":"After voting on the number of attendees, your app shows a QR code which is your claim of attendance which has to be signed by everyone else to prove your personhood and attendance.","breadcrumbs":"App » Attesting Personhood","id":"133","title":"Attesting Personhood"},"134":{"body":"The following procedure is just a suggestion, but has shown to cause minimal duration and confusion. The group of attendees forms a C-shape and everyone holds the phone upright with the QR code screen facing to the center to minimize reflections from the sky or the sun The person at one end of the C shape starts scanning on after the other and when finished, waits at the other end of the C-shape showing her QR code. As soon as the scanning person has successfully scanned the first two attendees, the next outermost attendee can start scanning, but should not overtake the previous scanner as soon as everyone has scanned everyone (i.e. scanned 8/8 if the vote was 9 attendees), the meetup can be closed Closing the meetup should only be done after confirming that all attendees have scanned everyone. After closing the meetup, the app suggests to submit attestations. If you are online, you can directly submit the attestations and ensure you get notified of success. Should you not have internet connection at the time, you can still submit within the following 24h.","breadcrumbs":"App » Procedure","id":"134","title":"Procedure"},"135":{"body":"Ceremony rewards, (AKA community issued income, CII) can be claimed for each performed meetup. The amount of CII is defined per community. Your Encointer Wallet app will claim automatically as soon as possible, but you can trigger the process manually.","breadcrumbs":"App » Reward Issuance","id":"135","title":"Reward Issuance"},"136":{"body":"If all attendees are online and were able to submit their attestations, the rewards can be claimed immediately, under the condition that the majority of assignees has show up and has been attested.","breadcrumbs":"App » Immediate Claim","id":"136","title":"Immediate Claim"},"137":{"body":"Should the above not be the case, attendees have to await the beginning of the registering phase before claiming their CII.","breadcrumbs":"App » Late Claim","id":"137","title":"Late Claim"},"138":{"body":"It is up to every community to define what they understand as puntuality and as human . Each community is just as strong as their social contract compliance. If you allow latecomers, you may risk to allow them to attend two different meetups and claim a community issued income twice. Same if you allow an attendee to bring and use two or more phones because their friend alledgedly is sick or otherwise incapable of attending. We suggest to apply rather stric rules as this strengthens the trust in your community by its members - and also by members of other communities globally. The Encointer protocol has no notion of personhood itself. We expect communities to attribute personhood to all humans, irrespective of age, gender, race, citizenship, sexual identity and preferences, social status, criminal history or any other attributes of identity.","breadcrumbs":"App » Social Contract","id":"138","title":"Social Contract"},"139":{"body":"The explorer is a Web UI tool to visualize chain data such as the communities and bootstrappers, the phases and ceremonies around the world. A working example can be visited at explorer.encointer.org . Checkout the explorer repository . In the terminal, go to the the root directory of the repo and enter: git clone https://github.com/encointer/explorer\ncd explorer\nyarn install\nyarn start Then you should be able to view the explorer in your browser at http://localhost:8000/. At the bottom, the registered chain is displayed. You can click on it and change between the local and remote chain. You can also set the rpc address via the query paramter, for example: localhost:8000?rpc=ws://127.0.0.1:9945 will connect to the chain on localhost with port 9945. The registered community should be visible in the explorer.","breadcrumbs":"Explorer","id":"139","title":"Explorer"},"14":{"body":"A very egalitarian category of local currencies are time banks. They proclaim that one hour's worth of service by one human has equal value to one hour's work by any other. Mostly, they work like mutual credit currencies, with the difference that the denomination is hours instead of national currency. Examples are Blaengarw Time Centre, Dane County Time Bank While the concept of time banks has shown to increase social capital [1], in practise they feature high transaction cost and liquid matchmaking showed to be challenging. The main benefactors end up to be the same individuals that also perform well on a free market based on national money. If your service is in high demand, you will be able collect more hours than you'll be able to spend on services you desire.","breadcrumbs":"Economics » Time Banks","id":"14","title":"Time Banks"},"140":{"body":"The Encointer CLI is a low-level tool to interact with an Encointer chain. It allows to query state and to send extrinsics.","breadcrumbs":"Tutorials » Basic CLI usage","id":"140","title":"Basic CLI usage"},"141":{"body":"We suggest you run the following in an Ubuntu 22.04 environment Download the CLI for our latest release: wget https://github.com/encointer/encointer-node/releases/latest/download/encointer-client-notee\nchmod +x encointer-client-notee # Testnet Gesell node endpoint\nNURL=wss://gesell.encointer.org\nNPORT=443\nalias nctr-gsl=\"./encointer-client-notee -u $NURL -p $NPORT\" # Testnet Lietaer (on Rococo) node endpoint\nNURL=wss://rococo.api.encointer.org\nNPORT=443\nalias nctr-r=\"./encointer-client-notee -u $NURL -p $NPORT\" # Encointer Mainnet (on Kusama) endpoint\nNURL=wss://kusama.api.encointer.org\nNPORT=443\nalias nctr-k=\"./encointer-client-notee -u $NURL -p $NPORT\" # local dev node\nalias nctr-dev=\"./encointer-client-notee\" In the following, we will show usage with testnet Gesell, using our alias nctr-gsl. But You can use any of the aliases above to interact with the other chains in the same way (caveat: deployed versions of the CLI API can vary)","breadcrumbs":"Tutorials » Setup","id":"141","title":"Setup"},"142":{"body":"nctr-gsl get-phase This will return any of Registering: you can register participants, communities, locations Assigning: ceremony meetup assignments can be queried Attesting: ceremony meetups can be performed","breadcrumbs":"Tutorials » Get Ceremony Phase","id":"142","title":"Get Ceremony Phase"},"143":{"body":"nctr-gsl list-communities will yield something like number of communities: 5\ne5dvt5mjcem: bot-tugs locations: 9\nu0qj94fxxJ6: EdisonPaula locations: 3\nsrcq45PYNyD: Adriana locations: 5\nu33e0719fDB: Decoded Berlin locations: 3\n69y7j4ZEXmy: Decoded Buenos Aires locations: 8 Each community is shown with its community identifier (cid) which is a 11-character string its Name, given by community lead its number of ceremony meetup locations You can also explore communities for our different networks using our explorer","breadcrumbs":"Tutorials » List Communities","id":"143","title":"List Communities"},"144":{"body":"The CLI offers very basic wallet functionality, managing a keystore in a local subfolder my_keystore where account secrets are stored in plaintext. Do not use in production! Create a New Account nctr-gsl new-account The printed result will be your new account address List Accounts in Keystore nctr-gsl list-accounts","breadcrumbs":"Tutorials » Manage Account Keystore","id":"144","title":"Manage Account Keystore"},"145":{"body":"nctr-gsl balance 5CSLXnYZQeVDvNmanYEJn4YXXhgFLKYwp2f216NsDehR8mVU you can add a cid to query the balance for a specific community nctr-gsl balance 5ChwkE8kd2qagyiCikP2Ns2T6vWh7dbURx54gXcPKw8NotNp --cid srcq45PYNyD or get all balances (first, the native token balance, then all community balances) nctr-gsl balance 5ChwkE8kd2qagyiCikP2Ns2T6vWh7dbURx54gXcPKw8NotNp --all","breadcrumbs":"Tutorials » Query Account Balances","id":"145","title":"Query Account Balances"},"146":{"body":"Testnet Gesell features a faucet, so you can pre-fund your new account nctr-gsl faucet ","breadcrumbs":"Tutorials » Faucet","id":"146","title":"Faucet"},"147":{"body":"We assume you have set up the CLI client previously This tutorial will guide you through the process of setting up a new community on any of our networks If you haven't done so, please learn about the ceremony cycle of the Encointer Protocol","breadcrumbs":"Tutorials » How to Register an Encointer Community (manually)","id":"147","title":"How to Register an Encointer Community (manually)"},"148":{"body":"As Encointer is all about proof of personhood, you will need people to get started. We suggest to pick 10 diverse, dependable and trustworthy members of your community for a trusted setup. This first group of people performing the very first ceremony of a new community we call Bootstrappers . If you want to test all by yourself, we suggest you create 3 bootstrapper accounts using 3 phones and register your community on Testnet Gesell . In the following, we will assume you're just testing yourself, but the process is very similar if the accounts are for real bootstrappers. All the bootstrappers need to install the mobile app and set up a new account. You can then collect all the bootstrapper accounts by sharing them from within the app by going to profile -> tap account -> share account -> send link The bootstrapper accounts need initial funding. On our testnets, you can use the faucet, on Mainnet, you can supply KSM or any other existing community currency nctr-gsl faucet 5D5V3couq7o42FYkLG4vVhaqQPrfk4NT3kWzZJH66ZeHr3iG 5HB4kbo67Hgv846DNMRnt7i1xNMum66LLBFkqtghKsNwRknM 5GxWKwbrPL88uH3Zv7zAiz6ozdpSFHzSfK1aXhVxDcNQYU8t Note: the displayed account addresses will differ from yours when you follow the tutorial. They are just provided for readabiltiy. Use your account addresses instead of the ones used in the tutorial. To register a community, you need to create a specfile.json containing details about the community and an account with funds to the chain client.","breadcrumbs":"Tutorials » Set Up Bootstrappers","id":"148","title":"Set Up Bootstrappers"},"149":{"body":"We need to define in what region the community shall be issued. For this we use the geojson standard to define a set of meetup places and add some meta-information about the community. You can use geojson.io to select meetup places on a map (define a few \"Points\"). Make sure that you select places that are >100m apart. You also need to keep this minimal distance from other registered communities. If you want to be sure which location will be the bootstrapping location, please specify only a single location and register more locations after the bootstrapping ceremony. The number of locations that you should define depends on the size of the population N you'd like to bootstrap. As a rule of thumb, there should be at least N/12 locations but the more locations, the better.","breadcrumbs":"Tutorials » Define Ceremony Meetup Locations","id":"149","title":"Define Ceremony Meetup Locations"},"15":{"body":"","breadcrumbs":"Economics » Examples","id":"15","title":"Examples"},"150":{"body":"The specfile defines the set of bootstrappers , the initial set of ceremony locations as well as metadata like name, symbol and icons stored on IPFS . An example of the specfile.json is shown below with one meetup locations: { \"type\": \"FeatureCollection\", \"community\": { \"meta\": { \"name\": \"Mediterranea\", \"symbol\": \"MTA\", \"assets\": \"QmVmew4gZHyCK2Fv4UBgsvfLdf1Q6UiF9MD6wsfPCuNVQp\", \"url\": \"\", \"announcementSigner\": null, \"rules\": \"loCoFlex\" }, \"bootstrappers\": [ \"5D5V3couq7o42FYkLG4vVhaqQPrfk4NT3kWzZJH66ZeHr3iG\", \"5HB4kbo67Hgv846DNMRnt7i1xNMum66LLBFkqtghKsNwRknM\", \"5GxWKwbrPL88uH3Zv7zAiz6ozdpSFHzSfK1aXhVxDcNQYU8t\" ], \"demurrage_halving_blocks\": 2628000, \"ceremony_income\": 100 }, \"features\": [ { \"type\": \"Feature\", \"geometry\": { \"type\": \"Point\", \"coordinates\": [ -28.102619, 31.141935 ] }, \"properties\": {} } ]\n} replace the account addresses in \"bootstrappers\" with the ones you have created and add additional meetup locations. demurrage_halving_blocks of 2'628'000 corresponds to 1 year if block time is 12 seconds ceremony_income in this example is set to 100.00 MTA ADVANCED ceremony income and demurrage rate are stored as a fixpoint type (I64F64 - or 64 signed integer bits before the decimal point and 64 bit thereafter). That is why the raw numbers in js/apps can be confusing. An income of 100.00 MTA will be represented as >>> 100*2**64\n1844674407370955161600 demurrage halving blocks will first be translated to an exponential function coefficient: >>> int(-1*np.log(0.5)*2**64/2628000)\n4865414248555 Applying demmurage of one block then becomes: balance * exp(-demurrage_rate). In the case of a balance of 100.0 demurrage for one block would decrease the balance to >>> 100.0*np.exp(-1*4865414248555/2**64)\n99.99997362453999 explanatory code is provided in python syntax","breadcrumbs":"Tutorials » Specfile","id":"150","title":"Specfile"},"151":{"body":"The example specfile features a dummy icon. You may want to brand your community with its own icon. You'll need a circular icon in SVG format. Place your icon into its own folder, i.e. ./leu.rococo/community-icon.svg Make sure your SVG community icon doesn't include