Ecosystem metrics

New Repos
25
New
Commits
720
down 2.4%
Releases
5
up 66.7%
Contributors
47
down 17.5%
Merges
26
up 36.8%

Repository Explorer

10719 commits in all time May 07, 2026 16:40 – Aug 05, 2026 16:40 UTC
nullun go-algorand
Merge ffd0657c6c8db9e612ca713966b2393bcb2d03c5 into dda085879f1868c14ccb115fb5f92f2b4f75c741
Git Commit d61511fb Branch pull/6690/merge Document 38/2,518 ++ 3,923 --
nullun go-algorand
Doc: Derive txn Note size limit from consensus bounds
The Note field doc hardcoded 1024 bytes, which went stale when v42
raised MaxAbsoluteTxnNoteBytes to 4096. Build it with Sprintf from
bounds.MaxTxnNoteBytes, the same cross-version maximum the decoder
uses, so the generated docs cannot drift again. Unlike the limits
derived from evaluator constants, this changes generated output:
1024 becomes 4096 everywhere the Note doc appears.
Git Commit ffd0657c Branch pull/6690/head Document 27/78 ++ 76 --
Merge 573f35ca525792c41bfcb0daad0bf5641f61856e into b8f983bbc7ec0565bb02686dff661b8d694c3ae5
Git Commit 884c341e Branch pull/594/merge Document 2/159 ++ 307 --
cce go-algorand
Merge e3967c6814e681eb68c57079d47a393387b7e948 into dda085879f1868c14ccb115fb5f92f2b4f75c741
Git Commit 09e3ca90 Branch pull/6696/merge Document 7/10 ++ 10 --
cce go-algorand
agreement: bump sortition dependency to v1.1.1
Git Commit e3967c68 Branch pull/6696/head Document 7/10 ++ 10 --
docs: rewrite assets concept page around the runnable examples
Git Commit 573f35ca Branch feat/docs-assets Document 2/159 ++ 307 --
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 fa5cc851 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 fa60387d Branch pull/6690/head Document 27/832 ++ 497 --
nullun go-algorand
opdoc: Return docVersion to a hand-bumped constant
Deriving docVersion from the current consensus LogicSigVersion meant
new opcodes could not be documented or checked in CI until their
consensus version was released. Make it a manually bumped package
constant again, as it was before, so in-progress opcodes can be
documented during development. The LogicSigVersion field in the
langspec files stays consensus-derived, since it reports what the
chain currently accepts, which can lag docVersion.

Generated output is unchanged.
Git Commit 5090bc5e Branch pull/6690/head Document 1/8 ++ 4 --
nullun go-algorand
Doc: Derive size limits in opcode docs from evaluator constants
The 4096 and 1024 byte limits in the bzero, concat, log,
ec_pairing_check, and ec_multi_scalar_mul descriptions were hardcoded.
Build them with Sprintf from maxStringSize and maxLogSize, the same
constants the evaluator enforces, so the generated docs cannot drift
if those values ever change. Generated output is unchanged.
Git Commit f5cc69a8 Branch pull/6690/head Document 1/6 ++ 5 --
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 69061386 Branch pull/6690/head Document 16/1,337 ++ 3,150 --
Merge 480415040887db2cfd25dc16f2196156d4b5c8ae into 95d55a9b81145fcbc0a09023680b96b684f57b64
Git Commit 5a4460e6 Branch pull/595/merge Document 20/1,759 ++ 8 --
Merge 2130c2fd0826b5e8b15d16979455b15a4a5e8a19 into 5a4460e64971e45ca321f2ece48d5e1dce36e97a
Git Commit 64802c86 Branch pull/596/merge Document 8/345 ++ 63 --
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 81bc8cc7 Branch pull/6690/head Document 5/19 ++ 13 --
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 ecd021bc Branch pull/6690/head Document 17/17 ++ 17 --
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 542c03ee Branch pull/6690/head Document 14/142 ++ 141 --
test: rename the pq address test to canonical_address_from_pq_key
Git Commit 48041504 Branch feat/pq Document 1/1 ++ 1 --
dependabot[bot] indexer
Merge 9d2172f5606cf49efd4670676ee049ec3f83cb54 into 4938ea23a3c03b815d217fd4a7c673684cfdba5e
Git Commit 7f9d78c5 Branch pull/1689/merge Document 2/62 ++ 60 --
jannotti go-algorand
Merge 3f7765d8c636d0bbdb5d41e410c9cdb1ac6194ae into dda085879f1868c14ccb115fb5f92f2b4f75c741
Git Commit caee95dd Branch pull/6695/merge Document 4/35 ++ 4 --
jannotti go-algorand
Fix reversed costs arguments
Added a test so that one can easily insert some costs checks that
ensure you've got the roughly the right costs.
Git Commit 3f7765d8 Branch pull/6695/head Document 4/35 ++ 4 --
nullun go-algorand
Merge fdb2530f2a8bbac64a91e6226e0425e56382d70c into dda085879f1868c14ccb115fb5f92f2b4f75c741
Git Commit 8f3d6021 Branch pull/6674/merge Document 27/2,099 ++ 1,387 --
nullun go-algorand
network: replace PeersP2PConnectionsIn/Out with transport connection views
Address review feedback: PeerOption now gains PeersTransportConnectionsIn/Out,
a transport-level view implemented symmetrically by both networks instead of a
libp2p-only option. WebsocketNetwork returns a proxy for each connected peer;
P2PNetwork returns a proxy for each libp2p connection (including pubsub-/DHT-
only peers). Since the transport view enumerates every connection exactly
once, the REST handler no longer combines gossip and transport options or
deduplicates by address. Also renames peerStatuses to convertPeers and maps
network types via a lookup table with a ws default.
Git Commit fdb2530f Branch pull/6674/head Document 9/105 ++ 76 --
cce go-algorand
Merge 4fb7d5a74e855225413c33831502e171122cbad8 into dda085879f1868c14ccb115fb5f92f2b4f75c741
Git Commit 7998dfe5 Branch pull/6659/merge Document 13/2,549 ++ 168 --
Merge 8716f2e53c07576a588b86fb4dcc3901284e4b5a into 95d55a9b81145fcbc0a09023680b96b684f57b64
Git Commit 5fcaefa0 Branch pull/595/merge Document 20/1,759 ++ 8 --
Merge 2130c2fd0826b5e8b15d16979455b15a4a5e8a19 into 5fcaefa09a2b14631d88271dcb021c18d9068b31
Git Commit 04e7baef Branch pull/596/merge Document 8/345 ++ 63 --