## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

- Auto
- Light
- Dark

# Algorand Specifications

Let e=(o,s) be an entry and y be the output of a SignSign procedure.

The pair (e,y) is a _proposal_ or a _proposal payload_.

Moreover, let

- L be a ledger where \|L\|≥δb,

- v=(I,p,h,x) be some proposal-value.

We say that this proposal is _a valid proposal matching v with respect to_ L (or simply that this proposal _matches v_ if L is unambiguous) if the following conditions are true:

- ValidEntry(L,e)=1,

- h=Digest(e),

- x=Hash(Encoding(e)),

- The seed s and seed proof are valid as specified in the following section,

- Let (pk,B,rfirst,rlast)=Record(L,r−δb,I),
  - If p=0, then Verify(y,Q0,Q0,pk,0,0,0,0,0)≠0,
- Let (pk,B,rfirst,rlast)=Record(L,r−δb,I). Then rfirst≤r≤rlast.

If e matches v, we write e=Proposal(v).
