Ecosystem metrics

New Repos
41
New
Commits
724
down 12.7%
Releases
3
down 25.0%
Contributors
50
down 10.7%
Merges
31
up 34.8%

Repository Explorer

11068 commits in all time May 05, 2026 17:27 – Aug 03, 2026 17:27 UTC
sofinico gGov
feat: contracts: enforce last topic option is abstain
Git Commit 1c957c05 Branch feat/last-option-abstain Document 13/4,596 ++ 3,748 --
ipaleka frontend
Profile page links to set password page when password has not been set
Git Commit e83657d8 Branch main Document 1/10 ++ 1 --
nullun go-algorand
Merge 29378542607789c260d5d37ec8eb248e6f20ed4b into 88fe542f3a2b6cbe898497cd3321f7bd20a7429b
Git Commit 4cdca35a Branch pull/6690/merge Document 38/1,619 ++ 1,374 --
Merge 57237c68a18923d44ea1b7b0faabe3aa5dcdd18b into 5fedc0fbbdc30073db774f16a5cca46dc735c1ca
Git Commit 0350c952 Branch pull/326/merge Document 3/653 ++ 5 --
docs: cleaned up inaccuracies and included extra fee example
Git Commit 57237c68 Branch feat/docs-transactions Document 2/28 ++ 5 --
nullun go-algorand
Doc: Correct README, tutorial, and jsonspec
These files are hand-maintained, not generated, and had drifted
from the implementation:

- tutorial.md described the pre-v41 LogicSig world. It now covers
  the four signature methods including post-quantum signatures,
  the LMsig and PQsig LogicSig fields and how they bind the
  authorizer's address into the signed message, that at most one
  delegation signature may be present, that validation is against
  the authorizer (AuthAddr when rekeyed), and that legacy Msig is
  rejected from consensus v41 onward, with goal's --legacy-msig
  escape hatch. Also fixes the "LogicSic" typo.
- jsonspec.md conflated rules that json_ref enforces while parsing
  the whole text with rules enforced only on the extracted value.
  Classify each rule as whole-text or extraction. In particular,
  the old "Raw non-unicode characters not accepted" claim was
  wrong: invalid utf-8 parses, and becomes U+FFFD when a string
  value containing it is extracted. A \u escape with non-hex
  digits parses but errors on extraction (it becomes U+FFFD only
  in a key), and a null value parses but always errors on
  extraction.
- TestParseRawNonUnicodeChar never tested invalid utf-8 (its input
  was valid utf-8 and its error cases failed for other reasons).
  It now feeds a genuine invalid byte through parse and extraction
  and asserts the U+FFFD replacement.
- README.md points at the generated stack-types table and lists
  the assembler pseudo-ops (int, byte, addr, method) that appear
  in no opcode table.
Git Commit 29378542 Branch pull/6690/head Document 4/84 ++ 25 --
nullun go-algorand
Doc: Correct and expand opcode descriptions
Document behavior that the descriptions omitted or got wrong:

- The v13 box opcodes: shared boxAccessExtra text states the name
  length rule (1-64 bytes, MaxAppKeyLen), the availability rule,
  and the ClearState ban for every box opcode, not only those
  whose short description mentioned them. foreignBoxExtra spells
  out the app_box_* authorization matrix (AppForeignBoxReads for
  reads, AppFamilyBoxAccess plus same creator for everything
  else) and the family reentrancy rule; boxFamilyExtra applies the
  same reentrancy rule to an app's own boxes once it opts in.
  app_params_set explains what setting each flag grants.
- itxn_begin's Fee description matched neither the group-based fee
  logic nor when fees are checked. Describe the actual default:
  the amount that would make the group's fees sufficient so far,
  with the new transaction counted as one base fee, and note that
  the real check happens at itxn_submit.
- bnz documents the v13 varint offset encoding (previously it
  described only the two-byte form), including the forward/back
  reference points and that a branch to the start of its own
  instruction cannot be encoded. callsub points at bnz for the
  encoding.
- State failure conditions: shl/shr fail if B > 63, divmodw fails
  on a zero divisor, bzero fails above 4096.
- balance/min_balance params claimed an application id argument
  they do not take. voter_params_get and online_stake answer as of
  the balance round (320 rounds back), not the agreement round.
- json_ref links to the JSON spec by URL (the relative link only
  worked in the repo) and assorted typo/spacing fixes, including
  the ec_multi_scalar_mul naming note that compared the opcode to
  itself.
Git Commit b7863504 Branch pull/6690/head Document 27/832 ++ 497 --
nullun go-algorand
opdoc: Derive ArgEnum from OpSpecs, fail on undocumented fields
The ArgEnum table in langspec was built from a hand-maintained
switch on opcode names, which had drifted from reality: ec_add and
the other ec_* opcodes, mimc, poseidon2, voter_params_get, itxnas,
and gitxnas had field groups but no documented enum. Derive the
enum from the field group attached to the spec's immediates
instead, so a new opcode with a FieldGroup is documented without
anyone remembering to update opdoc. itxn_field keeps an explicit
override because its spec deliberately carries the full TxnFields
(for assembler errors) while only the settable fields belong in
the docs.

Consequently the txn-family opcodes (txn, gtxn, gtxns, itxn,
gitxn) no longer list array fields in their ArgEnum. That is more
accurate: their single-immediate forms reject array fields at
assembly, and the array opcodes (txna et al.) still list them.
Downstream langspec consumers will see this change.

Other opdoc fixes:
- fieldGroupMarkdown exits nonzero on an undocumented field, as
  integerConstantsTableMarkdown already did, instead of emitting
  an empty NOTES cell. This is how every block field shipped
  undocumented.
- docVersion comes from ConsensusCurrentVersion's LogicSigVersion
  instead of a hardcoded 13, so it tracks future promotions
  without publishing vFuture opcodes.
- avm-appendix-a.md is written by opdoc for the newest version,
  rather than the Makefile picking a file out of a glob, which
  could not tell a stale TEAL_opcodes_v99.md from a real one.
- The Makefile no longer claims the hand-maintained README.md as a
  generated target, and clean removes all doc intermediates.
- .gitignore explains the intermediate scheme and negates the
  hand-written markdown files so new ones are visible to git add.
Git Commit d195e1d3 Branch pull/6690/head Document 15/525 ++ 681 --
nullun go-algorand
Doc: Document every opcode immediate field
Several field groups shipped with empty notes because their specs
had no doc string at all (the "no doc list?" stubs): every block
field, the base64_decode encodings, the json_ref return types, and
the vrf_verify standard. Add a doc field to each spec so the
generated NOTES columns are populated.

Also correct VotePK and SelectionPK, which were described as
"32 byte address": they are a participation public key and a VRF
public key. And fix two copy-paste comments that said VrfStandards
and BlockFields describe the json_ref immediate.
Git Commit 2b0f4082 Branch pull/6690/head Document 14/142 ++ 141 --
nullun go-algorand
AVM: gitxn takes scalar txn fields, like txn/gtxn/itxn
gitxn's field immediate carried the full TxnFields group even
though array fields fail at runtime (fetchField rejects them when
no index is supplied). txn, gtxn, gtxns, and itxn all use
TxnScalarFields for the same reason.

FieldGroup.SpecByName respects the sparse names array, so
"gitxn 0 Accounts" now fails at assembly with a helpful error
instead of assembling into bytecode that always fails at runtime.
Disassembly of such (always-invalid) bytecode now errors, matching
the other txn opcodes.

In the generated docs, gitxn's field immediate now references the
same "txn Fields" table the other txn opcodes point at.
Git Commit 1339a27f Branch pull/6690/head Document 17/17 ++ 17 --
nullun go-algorand
AVM: Distinguish varint branch labels from int16 labels
v13 branches (bnz, bz, b, callsub) encode their offset as a
binary.Varint, but their OpSpecs reused immLabel, the two-byte
big-endian kind. That forced the disassembler to consult
spec.Version to pick a decoder, and the generated docs described
the v13 branch immediate as "int16 (big-endian)".

Give the varint encoding its own immediate kind, immVarintLabel,
so the encoding is a property of the immediate itself, and key
disassembly on the kind rather than the version. switch and match
keep two-byte offsets at every version, so immLabels is unchanged.

Only regenerated v13 docs change: the branch immediates now read
"varint (zigzag)".
Git Commit b8cc15ca Branch pull/6690/head Document 5/19 ++ 13 --
Merge 1140621b04db01ea521ec2d003ab0927decb66eb into 967fcacfacdf0b3c91efdcc5239ef0360acb99cf
Git Commit 600c331c Branch pull/825/merge Document 15/740 ++ 33 --
chore: Use the master branch for the test-harness
Git Commit 1140621b Branch pqsig-support Document 1/5 ++ 5 --
docs: rewrite for voice and convention
Git Commit 83ce86a0 Branch feat/docs-transactions Document 1/35 ++ 35 --
iglosiggio go-algorand
Merge 06a3d6ef70296f7d9f92d6ad0c30ab89a77eb22c into 88fe542f3a2b6cbe898497cd3321f7bd20a7429b
Git Commit 2af9ec7b Branch pull/6617/merge Document 16/39,472 ++ 2,069 --
iglosiggio go-algorand
chore: Run `make generate`
Git Commit 06a3d6ef Branch pull/6617/head Document 13/39,340 ++ 2,044 --
iglosiggio go-algorand
opdoc: Omit arg detail version when possible
Co-Authored-By: John Jannotti <jannotti@gmail.com>
Git Commit 1b77189f Branch pull/6617/head Document 1/1 ++ 1 --
cusma specs
Merge 9faa72d1a0bed27fe9aec30c644968750df9221b into 75989637d832f324fdfaef1b89074a92d0a80cf2
Git Commit bb01d3bb Branch pull/309/merge Document 56/1,363 ++ 1,463 --
cusma specs
chore: typo
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Git Commit 9faa72d1 Branch chore/abft-unsplit Document 1/1 ++ 1 --
iglosiggio go-algorand
docs: Make the `Modes` of an enum field details respect the mode of the instruction
Git Commit ac5c08f9 Branch pull/6617/head Document 1/42 ++ 34 --
iglosiggio go-algorand
docs: Remove the `Modes` field from arg details that match the parent opcode
Git Commit 6b8afa0c Branch pull/6617/head Document 1/5 ++ 1 --
iglosiggio go-algorand
chore: Apply suggestions from CR
Git Commit 9b7d6b85 Branch pull/6617/head Document 1/18 ++ 12 --
iglosiggio go-algorand
chore: Remove `.Ops[].Cost` since it is the same as `.Ops[].DocCost`
Git Commit 5d074079 Branch pull/6617/head Document 1/0 ++ 3 --