# Online/Offline accounts and participation key

**URL:** https://forum.algorand.co/t/online-offline-accounts-and-participation-key/474
**Category:** General
**Created:** [April 29, 2019, 7:37am UTC](https://forum.algorand.co/t/online-offline-accounts-and-participation-key/474 "2019-04-29T07:37:09Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![Kasper](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.algorand.co/kasper/32/132_2.png) [@Kasper](https://forum.algorand.co/u/Kasper)
#### Post date: [April 29, 2019, 7:37am UTC](https://forum.algorand.co/t/online-offline-accounts-and-participation-key/474/1 "2019-04-29T07:37:09Z")

</div>

Hi,  
I have some questions about the online offline accounts and participation key hopefully you can (partially) help me with.

1. To bring an account online you have to generate a participation key for that. What is the idea behind that key being valid between specific rounds? (–roundFirstValid / --roundLastValid)
2. When the part key expires aka the round last valid passed, the account stays online. I would suspect otherwise? Does it still participate in the consensus protocol after the part key expires?
3. You can earn rewards if I’m correct by participating in the consensus protocol right? This means being online. But is see offline account who never been online earn (real) small rewards. How does this work?
4. Is it the part key the only key that needs to be available online when participating in the consensus protocol? What I mean is, can I remove the account being online from my wallet? The part key is still there and account keeps the status online but does it still by participating in the consensus protocol?

And a other question. Will there be a restpath available to see which members where in the verifier set for a specific round (SVr) ?

Thks.

---

<div class="post-metadata">

### Author: ![liz](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.algorand.co/liz/32/40_2.png) [@liz](https://forum.algorand.co/u/liz)
#### Post date: [April 29, 2019, 9:26pm UTC](https://forum.algorand.co/t/online-offline-accounts-and-participation-key/474/2 "2019-04-29T21:26:46Z")

</div>

Hi Kasper,

1. If a machine is compromised in the future we don’t want that to compromise participation keys used to sign votes in the past, so what we do is essentially generate a keypair per each round. So of course this means that the participation key will grow in size according to the number of rounds it is valid. Specifying a validity range will bound that. Another reason for this is to give you the flexibility to implement various secure participation protocols, renewing your participation keys and intervals in a way that makes the most sense for your context.
2. The account nominally stays online, but this is bad network behavior. You either want to sign a keyreg transaction that marks that key offline, or generate a new participation key for the next valid set of rounds and register that new one before the previous key expires. Note that only one key can be registered for an account at any given time.
3. More details to come here…
4. Yes. This allows you to implement a protocol where your private key never has to be online. So you can generate your participation keys on any node, create a keyreg transaction, and then bring that transaction to your air-gapped device to be signed by your private key for that account. Once signed you can broadcast that transaction to the network. Just ensure that your participation node is online with the participation key in the ledger directory (which it should be assuming you generated the partkey on that node using goal).

We currently do not have plans to implement a restpath for this, but would definitely be a cool feature to add! The information required to do this should be in the block certificate.

---

<div class="post-metadata">

### Author: ![Kasper](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.algorand.co/kasper/32/132_2.png) [@Kasper](https://forum.algorand.co/u/Kasper)
#### Post date: [April 30, 2019, 6:45am UTC](https://forum.algorand.co/t/online-offline-accounts-and-participation-key/474/3 "2019-04-30T06:45:32Z")

</div>

Thanks Liz for the extensive answer, very helpful.

One more question about the part key. (I’ve tried this with an expired key)  
I copied the part key to multiple nodes. On all the nodes the partkey is listed under _goal account listpartkeys_ How will the network respond with multiple online nodes having the same active partkey?

---

<div class="post-metadata">

### Author: ![liz](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.algorand.co/liz/32/40_2.png) [@liz](https://forum.algorand.co/u/liz)
#### Post date: [April 30, 2019, 8:44pm UTC](https://forum.algorand.co/t/online-offline-accounts-and-participation-key/474/4 "2019-04-30T20:44:15Z")

</div>

Hi Kasper,

Copying a partkey to multiple nodes is dangerous as it might cause your nodes to inadvertently equivocate votes. So you should always make sure your registered partkey only exists on a single node. And if you believe your partkey was compromised in some way, you should generate and register a new one.

---

<div class="post-metadata">

### Author: ![ChaseHunter](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.algorand.co/chasehunter/32/63_2.png) [@ChaseHunter](https://forum.algorand.co/u/ChaseHunter)
#### Post date: [May 2, 2019, 4:28pm UTC](https://forum.algorand.co/t/online-offline-accounts-and-participation-key/474/5 "2019-05-02T16:28:49Z")

</div>

> [@liz](#):
>
> it might cause your nodes to inadvertently equivocate votes

What do you mean by this, @liz?

---

<div class="post-metadata">

### Author: ![algorand-sybil](https://avatars.discourse-cdn.com/v4/letter/a/e36b37/32.png) [@algorand-sybil](https://forum.algorand.co/u/algorand-sybil)
#### Post date: [May 2, 2019, 5:24pm UTC](https://forum.algorand.co/t/online-offline-accounts-and-participation-key/474/6 "2019-05-02T17:24:05Z")

</div>

@ChaseHunter I think that if your nodes land in different partitions of the network, they might have different views of the network, which could cause them to vote differently. For example, if one node sees one block proposal and the other one sees another, they might vote for different blocks. Voting for different things with the same identity (using the same partkeys) breaks one of the rules of Algorand’s consensus protocol.

Probably the safest thing to do if you lose one of your partkeys is to generate and register a new one on the node you want to participate with.

---

<div class="post-metadata">

### Author: ![Kasper](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.algorand.co/kasper/32/132_2.png) [@Kasper](https://forum.algorand.co/u/Kasper)
#### Post date: [May 3, 2019, 5:58am UTC](https://forum.algorand.co/t/online-offline-accounts-and-participation-key/474/7 "2019-05-03T05:58:43Z")

</div>

But what are the consequences when it does happen?. When you double sign like in Tezos, or Cosmos a part of your stake will be slashed. How will foul play be punished in Algorand?

---

<div class="post-metadata">

### Author: ![hpf](https://avatars.discourse-cdn.com/v4/letter/h/ac91a4/32.png) [@hpf](https://forum.algorand.co/u/hpf)
#### Post date: [May 7, 2019, 3:43am UTC](https://forum.algorand.co/t/online-offline-accounts-and-participation-key/474/8 "2019-05-07T03:43:38Z")

</div>

According to the Algorand’s consensus protocol, at any time on each node, there is only one valid vote from each part key. If one part key signs multi-votes from multi-nodes, each node may just see a single different vote for some value. This part key should be thought as a bad user.

If such users are rare, it’s no bad effect.  
But if such users are majority, the protocol will be broken. The protocol would not produce new block successfully.

According the public information that we can know, no one would be punished. In algorand, miners do not need mortgage anything for mining.

---

<div class="post-metadata">

### Author: ![akshay](https://avatars.discourse-cdn.com/v4/letter/a/3ab097/32.png) [@akshay](https://forum.algorand.co/u/akshay)
#### Post date: [September 28, 2022, 6:59am UTC](https://forum.algorand.co/t/online-offline-accounts-and-participation-key/474/9 "2022-09-28T06:59:32Z")

</div>

how to change account status to online!? could you guys please explain in detail!?

---

<div class="post-metadata">

### Author: ![scholtz](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.algorand.co/scholtz/32/864_2.png) [@scholtz](https://forum.algorand.co/u/scholtz)
#### Post date: [September 28, 2022, 10:00am UTC](https://forum.algorand.co/t/online-offline-accounts-and-participation-key/474/10 "2022-09-28T10:00:57Z")

</div>

is this video tutorial enough? [Make your algorand account online - YouTube](https://www.youtube.com/watch?v=cSJjmnzvvLY)

---

<div class="post-metadata">

### Author: ![fabrice](https://avatars.discourse-cdn.com/v4/letter/f/5fc32e/32.png) [@fabrice](https://forum.algorand.co/u/fabrice)
#### Post date: [September 28, 2022, 2:49pm UTC](https://forum.algorand.co/t/online-offline-accounts-and-participation-key/474/11 "2022-09-28T14:49:20Z")

</div>

All the documentation to participate in consensus is provided there:

> **[Overview - Algorand Developer Portal](https://developer.algorand.org/docs/run-a-node/participate/)**
>
> Algorand Developer Docs, SDKs, REST APIs, CLI tools, ecosystem projects, metrics dashboard and sample code, how-tos, and news from the Algorand developer community

Very importantly, please only mark yourself only if you fully understand how the Algorand blockchain works and if you have the capability to maintain and monitor your node 24/7. Marking yourself online and having your node not working properly is very detrimental to the network!
