Ecosystem metrics
- New Repos
- 1,871
- New
- Commits
- 296
- down 15.7%
- Releases
- 9
- up 0.0%
- Contributors
- 37
- down 22.9%
- Merges
- 10
- up 0.0%
Activity Overview
Commits and releases over time
- Commits
- Releases
- Authors
Repository Explorer
No repositories match that filter.
3432 commits in all time
May 23, 2026 21:32 – Aug 21, 2026 21:32 UTC
feat: implement Stablecoin Studio, Minting Suite, and Brale utility modules
181bc641
main
5/812 ++ 1 --
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
33038ca8
chore/pipeline-parallelization
1/262 ++ 109 --
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.
7cdb4602
chore/pipeline-parallelization
22/8,093 ++ 5,793 --
feat: add PQ signature support
2146b727
pull/944/head
32/2,222 ++ 9 --
Merge c409aa1a99a13bf45312429674f6468edce9e02d into b4ca42f9d605dbb9136f99ac09d5f365fc684a68
2277b6c6
pull/1112/merge
1/3 ++ 3 --
Merge 115a4339700aac92ced229b717798f998dd0210e into b4ca42f9d605dbb9136f99ac09d5f365fc684a68
6d495db0
pull/1130/merge
2/85 ++ 0 --
Merge b4b51f91f1c758958ea88d4e0ffdab54c1f65488 into c91d55b8c1a3b364b3cf61c52972ca549682377f
1407c8cb
undefined
47/2,332 ++ 414 --
fix: Wrong code on PQAccountTransactionSigner#Equals
b4b51f91
pqsig-support
1/1 ++ 1 --
chore: Rename Falcon1024AccountTransactionSigner to PQAccountTransactionSigner
f2579343
pqsig-support
2/9 ++ 9 --
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>
f03ea3ef
feat/vendor-falcon-det1024
1/329 ++ 0 --
Merge 395851bcff8e07d8472dcc8f00e85cb468b06d69 into c74ce198f0e0fc7e29734275cbff04efc023b1de
fe55f3d8
undefined
2/35 ++ 35 --
falcon-ct: interim controls ruling (synthetic controls judged raw-only) + pre-register the release replicate
Implements the dated interim ruling from the six-seat review of the v4.1 validation session: synthetic controls (control-flat, control-leaky) are judged on the raw |t| >= 4.5 line ONLY via the new judge_raw_only — the crop diagnostic does not run for them (crop_empirical_p = None), because a synthetic loop and the real signing operation do not share a crop null and judging one against the other is a mismatched reference. Observed live in the quarantined session: the flat control read "Shape" at raw t = 2.99 against the null-ss bank and flipped controls to NOT OK. The regression test pins exactly that shape: a flat series whose crop would fire against a tight real-op bank must still Pass, the leaky control must still Fail on the raw line, short samples stay INCONCLUSIVE. Whether a crop-shape control validation returns later — with its own synthetic reference family AND a synthetic-shape positive control with a numeric fire condition — is left to its own pre-registration, per the apex ruling that left (a)-vs-(b) genuinely open. READING_GUIDE documents the ruling in the artifact itself. Also: PREREG_v41-release-replicate.md — the release-harness replicate pre-registered BEFORE it can even be built (App Control still blocks fresh release exes; founder decision pending). One reading (null_raw_t_sd, the committed bands, registered as a low-information point-estimate call per review F4), explicit non-readings (no v3.1 re-judgment — that needs a matched-count 82k bank; banks frozen but unused until the controls pre-reg and a specified §6.1 exist), and a deviation rule that makes any off-spec run exploratory with the bands not applied — this morning's lesson, written down. V4_BACKLOG §A sweep: A1-A8 verified all closed by the v4/v4.1 work (A1 empty-null fail-closed with the CI session documented in judge_v2; A2 aa_verdict/aa_ok in Controls; A3 READING_GUIDE covers sign-aa; A4 sign-kk description corrected; A5 no "flat-control null" comments remain; A6 null_reason serialized; A7 per-session null logging; A8 fold_null). Gates: cargo fmt, clippy pedantic+nursery -D warnings clean, 24 tests green in falcon-ct (15 lib + 9 bin). Security Impact: measurement harness only; no crypto code. The change NARROWS what a control verdict may be based on (raw line only) and cannot lift any session verdict; the flat control can now block a session only for a genuine raw-line environment failure. To re-verify: the release replicate runs under the committed pre-registration once the harness decision lands. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
6df69990
feat/vendor-falcon-det1024
3/176 ++ 12 --
Merge 218e146754117cbafa68eecbd6ca09fe9031c33c into 4bb8bde04aa890c23cdd067bd167c1f0375a632d
ce1d295d
pull/318/merge
35/4,739 ++ 2,177 --
Merge 0fd9f09ff3b88deb954eaa63c04f1689371612b9 into c74ce198f0e0fc7e29734275cbff04efc023b1de
d3957732
undefined
1/25 ++ 34 --
Merge remote-tracking branch 'origin/docs-staging' into docs/account-management-update-code-example
# Conflicts: # docs/sidebar.config.json # docs/src/content/docs/concepts/core/account.md
020a2d49
docs-staging
11/1,017 ++ 753 --
Merge remote-tracking branch 'origin/docs-staging' into feat/docs-errors-debugging
# Conflicts: # docs/sidebar.config.json
04b75e13
docs-staging
18/2,272 ++ 1,891 --
fix(ui): recover pool global state the bulk read didn't carry
Moving pool state to a single accountInformation read on the registry left two
gaps where a pool the bulk request missed stayed missed.
`processPoolData` fell back on the presence of the entry, not on what it held. A
pool whose state came back partial decodes to `{}`, which is truthy, so it kept
the empty entry and returned no lastPayout - which the Status column renders as
"Payouts stopped".
`algodVer` lost its fallback entirely. It came off LocalPoolInfo, and
StakingPoolInfo now reads it only from the bulk map; the per-pool read inside the
metrics query keeps lastPayout and discards the algodVer it fetched. Any pool the
map lacks reported its node version as "--" for the rest of the session.
Both now gate on `isPoolGlobalStateComplete`. It tests lastPayout rather than the
field being displayed, because lastPayout is written when the pool is created -
stakingPool.algo.ts sets it to the creation round as the first epoch's baseline -
so every pool has one and its absence can only mean an incomplete read. Gating on
algodVer instead would have been wrong: it is only written once the node daemon
reports in, and 88 of MainNet's 283 pools legitimately have none, so keying on it
would re-read a third of all pools on every visit and still show "--".
The 1020 fixture claimed a missing lastPayout stood for "a pool that has never
paid out", which the contract does not do. It now models the case that does
occur - a pool whose daemon has never reported, so no algodVer - and the tests
around it cover the fallback firing on an incomplete entry and staying put on a
complete one.
8e278262
dev
5/98 ++ 14 --
falcon-ct: implement v4.1 §2a reference banks, hardened by the five review findings
Implements the matched banks under --null-design ss: sign-aa repeats (fresh keypair each, ungated) form the sign-kk crop bank; a null-rr bank supplies sign-rr's crop reference and its three-state raw rule. rr design unchanged (refs_for_rr: everything = the gate null, no raw bank, byte-identical v3 judging). The full-team review's findings, each applied and tested: - S1: reference banks are all-or-nothing — collect_sessions returns Result and a failed session propagates instead of silently truncating the bank; rr_raw_state returns no_reference_bank / invalid_statistic (NaN) rather than relabelling harness faults as fail_beyond_reference. - S2: the gating A/A control is a conditioned draw and is excluded from the bank; ss requires --aa-repeats N >= 2 (enforced in check_v4_options and live via the CLI). - S3: tests exercise production paths — refs_for_rr is the function the rr arm returns, and the tests call it; the guard truth table calls check_v4_options itself. - S4: requested bank counts are serialized (aa_repeats_requested, rr_sessions_requested) because the rank floor 1/(N+1) makes N part of the rule. - S5: both banks' raw CSVs are written (bank_raws), not only judged crops. Gates: cargo fmt, clippy -D warnings (pedantic+nursery), 47 tests green, all four CLI guard paths exercised against the built binary. Security Impact: measurement harness only — no crypto code touched. What changed: reference-bank construction and the sign-rr raw rule under the ss design; ss sessions remain validation-only (ungated, INCONCLUSIVE, validation_only:true) until a pre-registration lifts it. What could break: a wrong bank would mis-calibrate future SHAPE annotations — mitigated by all-or-nothing collection, serialized requested counts, and production-path tests. To re-verify: the pending validation run reads only null_raw_t_sd. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
b7ea95a1
feat/vendor-falcon-det1024
1/488 ++ 52 --
Merge branch 'feat/frac-pipeline-plugins' into feat/ui-pooled-voting-pools
Conflict in frac-delegation-sdk/src/registry/sdkReader.ts (imports only): the incoming dual ESM/CJS build rewrote relative specifiers to carry .js, while this branch added a FracInstanceCommitteeStanding type import for getInstanceCommitteeStandings. Kept both — .js specifiers throughout, including the new type import.
2071a12a
feat/ui-pooled-voting-detail
65/13,524 ++ 292 --
Merge pull request #326 from algorandfoundation/feat/docs-transactions
Docs: Add Transaction concepts page and examples
1fd84473
docs-staging
8/721 ++ 655 --
Merge pull request #644 from algorandfoundation/fix/pq-feedback
docs: address post-quantum feedback
372aacf0
main
3/7 ++ 7 --