Ecosystem metrics

New Repos
1,897
New
Commits
390
down 9.1%
Releases
10
up 11.1%
Contributors
42
down 17.6%
Merges
14
up 0.0%

Repository Explorer

4152 commits in all time May 24, 2026 16:30 – Aug 22, 2026 16:30 UTC
mitre88 go-algorand-sdk
fix: omit empty API token header on algod/indexer clients
Public nodes can disable API auth. Always setting X-Algo-API-Token to an
empty string caused those requests to fail. Only send the header when
both the header name and token are non-empty.

Fixes #653.
Git Commit 21119cf1 Branch pull/844/head Document 2/44 ++ 2 --
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: implement multi-chain NFT import tool suite and supporting utility modules
Git Commit 066d54ad Branch main Document 13/22 ++ 22 --
urtho pg_algorand
Add 0.2 -> 1.0 upgrade path
Ships the tested upgrade script so clusters carried through pg_upgrade at
0.2 can reach 1.0 with ALTER EXTENSION pg_algorand UPDATE, without the
drop/recreate dance. CREATE OR REPLACE upgrades the two functions with
dependents in place; the three GetNFD* functions are dropped and
recreated because 1.0 renamed their parameters. Verified on betanet,
testnet x2 and mainnet upgrades (identical to a fresh 1.0 install).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019ACfCvu2UPpd6UcoK8cpW3
Git Commit a708f174 Branch main Document 2/77 ++ 1 --
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 --
scholtz-aures wallet
feat: add Falcon-1024 post-quantum account support
- Introduced Falcon-1024 account type with corresponding UI elements and localization in Russian, Slovak, and Turkish.
- Implemented account creation, import, and export functionalities for Falcon accounts.
- Added Falcon-specific mnemonic generation and validation.
- Integrated Falcon signing mechanism for transactions.
- Updated routing to include Falcon account creation page.
- Enhanced backup warnings and account management features for Falcon accounts.
- Added unit tests for Falcon account functionalities.
Git Commit 0aca3298 Branch master Document 28/951 ++ 43 --
LoafPickleWW wen-tools
feat: implement Stablecoin Studio, Minting Suite, and Brale utility modules
Git Commit 181bc641 Branch main Document 5/812 ++ 1 --
JBScaled devportal
Merge 8c4bfa8644a329fe80a58d6cec7beab311b3cdcc into dfb39a360fe74d6d4e6efd11bbf76d1887efb420
Git Commit 20fa1f27 Branch undefined Document 1/27 ++ 21 --
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
test: xalgo: drop the 'mostly escrows' beneficiaries assertion
It asserted that escrow entries outnumber self entries in beneficiaries.json,
which held while the cache only ever saw fxALGO holders — those sit almost
entirely in Folks escrows (~3333 of ~3352 per the README).

56d8577 broadened the candidate set to both assets, and plain xALGO holders
are wallets, so they resolve to self. The cache is now 3978 escrow / 8046 self
(33%), and the premise is false by design rather than by regression. The file
does not record which asset a candidate came from, so the fxALGO-only ratio
cannot be recovered from it.

The two remaining assertions still cover the file's real invariants: ordering
and address validity, and that every escrow entry names a tracked app, a valid
owner distinct from the escrow, and an opt-in round.
Git Commit 24b04b39 Branch chore/pipeline-parallelization Document 1/0 ++ 5 --
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 --
meetthosar devportal
Merge remote-tracking branch 'origin/main' into feat/global-avm-protocol-ver-update
Merged updated Main
Git Commit 9c2225ed Branch main Document 38/7,503 ++ 1,116 --
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 ee041d363e5b6076524a45226e12c8b60237cb6c into b4ca42f9d605dbb9136f99ac09d5f365fc684a68
Git Commit 81737ae2 Branch pull/1118/merge Document 1/9 ++ 23 --
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 --