Ecosystem metrics

New Repos
1,888
New
Commits
340
down 14.4%
Releases
10
up 11.1%
Contributors
41
down 21.2%
Merges
13
up 18.2%

Repository Explorer

3866 commits in all time May 24, 2026 08:40 – Aug 22, 2026 08:40 UTC
mitre88 algokit-utils-ts
Merge 7690a49dd2197abd34b1ed96e536a04b6d0409e9 into fb8247d1111a5c618a32185104e0b6efd00c0f77
Git Commit a631cac2 Branch pull/604/merge Document 4/127 ++ 14 --
fix links to moved algorand-typescript and algokit-cli docs
Git Commit 46e189ff Branch security-guide Document 1/2 ++ 2 --
gabrielkuettel devportal
Merge ac9031d02886986b1dfa0dbedff34f691d8b7ff0 into 2cd175e0f03d678500f57d454d1d11f789b996f3
Git Commit 223d4516 Branch undefined Document 300/236,448 ++ 98,940 --
LoafPickleWW wen-tools
feat: create SimpleMint page for configuring and executing asset minting operations
Git Commit 103c26db Branch main Document 1/6 ++ 4 --
github-actions[bot] wallet
cicd deploy 1.2026.08.21-main [skip ci]
Git Commit bd1639df Branch master Document 1/1 ++ 1 --
LoafPickleWW wen-tools
feat: implement Stablecoin Studio, Minting Suite, and Brale utility modules
Git Commit 181bc641 Branch main Document 5/812 ++ 1 --
Merge pull request #600 from algorand/fix/reject-negative-extra-pages
fix: reject negative extra_pages in appcall transactions
Git Commit 189855d4 Branch main Document 2/40 ++ 1 --
tasosbit gGov
perf: pipeline: stage 3 computes concurrently, ingests serially
Stage 3 ran one source at a time, so three multi-minute Indexer window
scans summed instead of overlapping. Splitting it by what each half is
allowed to do lets the reads overlap while the writes stay ordered:

- compute (ledger precheck, window scan, replay, manifest assembly) now
  runs concurrently across sources
- ingest stays strictly serial across sources AND instances. uploadAqFile
  derives box names from account ids the frac *registry* allocates as it
  goes, and that counter is registry-wide, so two instances ingesting at
  once would predict the same ids and all but the first would fail with an
  invalid box reference - the same reason the SDK refuses to parallelize
  the batches within one upload.

Compute returns its per-source outcomes rather than pushing onto the run
context, so the report still reads the same on every run (pMap answers in
input order).

Also, on the same path:
- per-instance ledger prechecks fan out; a multi-instance source (reti runs
  one per validator) spent a serial round trip per instance before any scan
- plugins are built once per run and shared by stages 1 and 3; reti was
  resolving every validator's pools twice
- the manifest genesis hash is read once per run, not once per instance
- stage/phase timings behind the debug flag, so this is measurable at all
Git Commit 33038ca8 Branch chore/pipeline-parallelization Document 1/262 ++ 109 --
tasosbit gGov
perf: collapse the account page's pooled reads to one
The account page paid a fan-out on two axes and a waterfall between
them: one committee-snapshot read per instance, then - once those
landed and syncedIds could be derived - one AQ read per committee.
On VotingPowerByCommittee, which passes every gGov committee, that is
~33 queries in two phases for a 3-pool account.

Fold both axes into the read that already spans instances:

- FracAccountCommitteeAq gains totalVotes, taken field-wise off the
  committees box getAccountCommitteeAq already reads to resolve
  committeeNumId - so it costs no extra box read and no extra
  reference. Field-wise rather than cloning because escrowsVotes sits
  between the two fields and grows with the escrow count, the same
  reasoning getCommitteeStanding documents.
- logAccountInstanceAQ takes committeeIds[] and logs one row per
  (instance, committee) pair, instance-major. Every row already echoes
  its committeeId, so callers group rather than index-align. It also
  gains the deleted-app probe its sibling logInstanceCommittees has -
  free, since the app is referenced by the inner call anyway, and today
  one deleted instance takes down the whole page.

References now split per-instance and per-pair, so the page size is a
function of the committee count:

    refs(I, C) = 1 + I*(2 + 3C) <= 128

C=1 gives 25, reproducing the old AQ_PAGE_SIZE exactly. C=42 fits no
instance at all, hence aqMaxCommitteesPerCall = 41 alongside
aqRefBudget. getAccountInstanceAQs sizes the two axes against each
other rather than paging instances serially - committee chunks are
independent and run in parallel. Given the caller's instance count it
solves for instances first; without it, for committees, which keeps the
single-committee callers at exactly the one round-trip they cost today.

Frontend: usePooledCommitteeAqs collapses to a single useQuery, the
syncedIds pre-filter disappears (it only existed to avoid the
per-committee cost), and poolVotes reads entry.totalVotes.
useFracInstanceCommittees becomes usePoolSyncedCommittees - a plain
useQuery for PoolDetail's account-independent "Voting since" row, the
one caller no account-scoped reader can serve.

Measured on localnet at 30 committees x 2 pools: 32 algod calls in two
phases -> 3 (one account read plus two parallel AQ chunks), 130ms ->
24ms. Instance approval program 6,427 -> 6,453 / 8,192 bytes.

BREAKING: getAccountCommitteeAq's return type changes, and with it its
ARC-4 selector, which the registry inner-calls by selector; and
logAccountInstanceAQ's own signature. Registry and every live instance
must be upgraded together. No deployed registry today - neither
.env.testnet nor .env.mainnet carries VITE_FRAC_REGISTRY_APP_ID.
Git Commit 7cdb4602 Branch chore/pipeline-parallelization Document 22/8,093 ++ 5,793 --
tasosbit gGov
perf: logVotingRecords, so a page of members is one call not one group
The pool page's vote-record read was the only frac batch reader packing one call
per account into a simulate group, which capped it at the group's 16-transaction
capacity - an order of magnitude under what a single call can carry. The instance
had no plural reader for votingRecords, unlike accountAq, which logAccountAqs has
served all along.

logVotingRecords is that sibling, and the SDK now chunks it the way it chunks every
other log reader: 63 ids per call, two calls per simulate group. What binds a call
at 63 here is the log budget rather than references, which is new - allowMoreLogging
lifts a call's total to 65,536 bytes and a record cannot exceed ~950, so 63 rows is
~59.9KB. The other readers arrive at the same 63 from the 2048-byte app-arg cap, so
the number is a coincidence worth writing down.

PoolDetail's page size was 10 precisely because of the 16-call ceiling; it goes to
25, matching the committee leaderboard, with the page still costing one round-trip.

getVotingRecords had no test anywhere - its only caller was the frontend - so this
adds the first: index alignment across voted, ingested-but-silent and unknown
accounts, and a 129-id stress placing voters at the first, middle and last slots to
prove the aggregate stays aligned across the 126-per-group boundary. The alignment
test also pins the decoded numeric type, because the batch path decodes the struct
out of a log rather than taking the client's typed return, and a bigint there would
break every arithmetic consumer.

Costs 85 bytes of the instance's approval program, which is at 6,427 of 8,192 with
extraProgramPages already at the AVM maximum.
Git Commit 2a8c7b92 Branch chore/pipeline-parallelization Document 11/5,587 ++ 4,253 --
Merge 7c41d8e9f98eacbd288d7e2d016e4b3415c27dd0 into b4ca42f9d605dbb9136f99ac09d5f365fc684a68
Git Commit 35afd8a5 Branch pull/1122/merge Document No file changes
Merge c409aa1a99a13bf45312429674f6468edce9e02d into b4ca42f9d605dbb9136f99ac09d5f365fc684a68
Git Commit 2277b6c6 Branch pull/1112/merge Document 1/3 ++ 3 --
mitre88 js-algorand-sdk
Merge 115a4339700aac92ced229b717798f998dd0210e into b4ca42f9d605dbb9136f99ac09d5f365fc684a68
Git Commit 6d495db0 Branch pull/1130/merge Document 2/85 ++ 0 --
Merge 94955addac6d1c7a0e1f4c21a9e740ac8279be54 into b4ca42f9d605dbb9136f99ac09d5f365fc684a68
Git Commit 38db7a13 Branch pull/1111/merge Document 1/8 ++ 8 --
Merge b4b51f91f1c758958ea88d4e0ffdab54c1f65488 into c91d55b8c1a3b364b3cf61c52972ca549682377f
Git Commit 1407c8cb Branch undefined Document 47/2,332 ++ 414 --
iglosiggio go-algorand-sdk
fix: Wrong code on PQAccountTransactionSigner#Equals
Git Commit b4b51f91 Branch pqsig-support Document 1/1 ++ 1 --
iglosiggio go-algorand-sdk
chore: Rename Falcon1024AccountTransactionSigner to PQAccountTransactionSigner
Git Commit f2579343 Branch pqsig-support Document 2/9 ++ 9 --
github-actions[bot] wallet
cicd deploy 1.2026.08.20-main [skip ci]
Git Commit d2597dd2 Branch master Document 1/1 ++ 1 --
scholtz wallet
Deploying to gh-pages from @ scholtz/wallet@44eaec079f928a48b0918ef03515022f225d0c79 🚀
Git Commit 51a8d08b Branch gh-pages Document 9/17 ++ 16 --
tasosbit gGov
chore: pool detail minor
Git Commit 260d13a4 Branch chore/pipeline-parallelization Document 1/1 ++ 1 --
Controls pre-registration DRAFT (team-designed, numbers-blind) - not in force
Six-seat zuss (8/9 seats), written under the blindness clause of
PREREG_v41-release-replicate.md 3a(3): methodology only, no session
values. Majority locks Option (a) - crop-shape is NOT part of the
synthetic-control hypothesis, because a synthetic crop null cannot
calibrate or gate the Falcon crop/SHAPE path (non-transfer); the interim
raw-line ruling becomes permanent under it. The minority Option (b) draft
(matched synthetic null family + planted-shape positive control with a
numeric fire condition) is kept in full with the founder decision
criterion, because the split is real. Takes force only as a dated
pre-registration after the release-replicate decision, in the ruled order.

Security Impact: document only, explicitly not in force; no rule changes
until adopted.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Git Commit f03ea3ef Branch feat/vendor-falcon-det1024 Document 1/329 ++ 0 --