11446 commits in all time Mar 21, 2026 19:59 – Jun 19, 2026 19:59 UTC
dependabot[bot] devportal
Merge 2beaa632d45fb3e3745b31805658c42dcd460fc6 into a716540d831618c0511a6d4cf94e4cbbc872aeab
Git Commit 0c788efc Branch pull/583/merge Document 3/5 ++ 5 --
dependabot[bot] devportal
Merge f560d51487edbfbf248f5ab24cf5a0294f760ad5 into a716540d831618c0511a6d4cf94e4cbbc872aeab
Git Commit f8916622 Branch pull/585/merge Document 2/137 ++ 182 --
dependabot[bot] devportal
Merge 4db11e413eadb0ee77748dbf9ce2502899146f4d into a716540d831618c0511a6d4cf94e4cbbc872aeab
Git Commit 5ee760be Branch pull/597/merge Document 2/254 ++ 165 --
LoafPickleWW wen-tools
feat: implement API endpoint to fetch and parse active agents from Algorand registry contract
Git Commit 9239a048 Branch main Document 1/3 ++ 3 --
manuelmauro algonaut
Merge 15371747899c2fc95752c4b25ed09f46ce72a083 into 4144110e83b9afe1570a9e602f4a520dc997c6b7
Git Commit 677e24ac Branch pull/369/merge Document 58/3,680 ++ 41 --
manuelmauro algonaut
fix(nft): address CodeRabbit review comments
Crate:
- arc89: validate metadata size at the decode() boundary (reject > MAX_METADATA_SIZE);
  normalize the short-metadata identifier bit in compute_hash/set_hash so the
  hash always reflects the body size per ARC-89; expand the method-constant set
  to the full registry interface.
- asa: NftMint::fractional now validates decimals in 1..=19 (returns
  InvalidFractionalDecimals) — fixes the 10u64.pow overflow and the decimals=0
  inconsistency with is_fractional_nft.
- url: encapsulate Cid (private fields + v0/v1 constructors + accessors) so an
  invalid CIDv0 codec state is unrepresentable; return UnsupportedCid (not
  MalformedCid) for unsupported v1 multicodecs.
- royalty: clamp royalty_basis to MAX_BASIS_POINTS (10000) in royalty_for to
  prevent u128->u64 truncation; add the constant.
- arc69: require `standard` on the wire (drop the serde default) so a note that
  omits it is rejected by from_note.
- indexer: give Arc74Client a 30s default request timeout (+ with_timeout).

Docs:
- ADR: sync the D2 feature example with the shipped manifest (only `fetch`);
  add a language to the D3 fenced block (markdownlint MD040); fix the
  self-contradicting "Status is Proposed" line under an accepted ADR.

examples/nft/mint_arc19: use Cid::v1 for the encapsulated constructor.
Git Commit 15371747 Branch feat/algonaut-nft Document 9/231 ++ 55 --
Argimirodelpozo puya-ts
Merge 0073561a5d9673298d1ef3a23e4c2b6098dc09e9 into e56f6efde0b906a499824f49b7c6b6c1a330e60d
Git Commit c427608f Branch pull/383/merge Document 2/85 ++ 28 --
Argimirodelpozo puya-ts
chore: fix linter issue
Git Commit 0073561a Branch forbid-cyclic-structs Document 1/2 ++ 2 --
manuelmauro algonaut
Merge ab74d5652bb9746fb9bd8b1fb25a100c477e8a96 into 4144110e83b9afe1570a9e602f4a520dc997c6b7
Git Commit 4c167e1e Branch pull/369/merge Document 58/3,504 ++ 41 --
manuelmauro algonaut
ci: build the nft-feature-gated examples in CI and make
The examples/nft/* programs require `["nft", "algod"]`; with `nft` off by
default, the default clippy/check/test runs skipped them. Add `--features
nft` to the steps that compile examples:

- Makefile: `clippy` and `test` targets (so `make ci` builds and lints them).
- CI (general.yml): `cargo-check`, `cargo-clippy`, `cargo-test` jobs.

`nft` is additive (default-off), so enabling it on the --all-targets /
--examples steps is strictly more coverage and cannot mask a default-build
breakage. The wasm-check job stays default.
Git Commit ab74d565 Branch feat/algonaut-nft Document 2/13 ++ 7 --
giuliop go-algorand
Merge 2b19cf67ae303c00344d5546ad60c52fdd6f142d into bf88db5072f7a4ca3a38f50f6cfb01658e62dfec
Git Commit d852262a Branch pull/6592/merge Document 22/1,203 ++ 649 --
giuliop go-algorand
test: stabilize on-curve LogicSig fixtures
Git Commit 2b19cf67 Branch pull/6592/head Document 3/8 ++ 8 --
manuelmauro algonaut
Merge 37748379e13558b768e74182217c5e720e252b43 into 4144110e83b9afe1570a9e602f4a520dc997c6b7
Git Commit 4962d292 Branch pull/369/merge Document 56/3,491 ++ 34 --
manuelmauro algonaut
refactor(examples): group examples into category subfolders; algod-backed NFT examples
Organize every example under examples/<category>/ — client, contract,
app, asset, transaction, account, logic_sig, wallet, nft — with explicit
[[example]] path entries. The example `name` is unchanged, so
`cargo run --example <name>` keeps working.

Move the NFT examples out of algonaut_nft/examples and into examples/nft,
and rewrite them against a live algod instead of mocking: real
suggested_params, submit, and real asset ids returned from the network
(no DemoParams stub, no hardcoded AssetId). Gated on
required-features = ["nft", "algod"]:
- nft_mint_arc3   — pure NFT, ARC-3 off-chain metadata
- nft_mint_arc19  — mutable NFT; mint then UpdateAsset the reserve
- nft_mint_arc69  — on-chain metadata in the acfg note
- nft_soulbound   — full ARC-71 issue/hold/revoke across issuer + funded holder
- nft_arc89_box   — mint for a real id, build the ARC-89 box offline
Git Commit 37748379 Branch feat/algonaut-nft Document 44/494 ++ 456 --
cusma go-algorand
Merge 0a666cf4743c2a358b60bc3545a9f7f6ff110bdb into bf88db5072f7a4ca3a38f50f6cfb01658e62dfec
Git Commit 13e4a244 Branch pull/6639/merge Document 54/6,213 ++ 1,583 --
cusma go-algorand
fix: parallelize test
Git Commit 0a666cf4 Branch pull/6639/head Document 1/1 ++ 0 --
cusma go-algorand
chore: cr by @nullun, algokey command and shorthands
Git Commit a04d4fe8 Branch pull/6639/head Document 3/130 ++ 38 --
manuelmauro algonaut
refactor(nft): ergonomic minting builder, idiomatic API, and examples
Redesign the asa module around a fluent NftMint builder and make the
crate's API idiomatic, then add runnable examples that lead the UX.

asa:
- Replace the leaky create_pure_nft / create_fractional_nft free
  functions (which returned a half-built CreateAsset and told the caller
  via doc comment to attach url/hash/reserve themselves) with NftMint.
  NftMint::pure/fractional own the configuration; .arc3() computes the
  ARC-3 metadata hash and appends #arc3, .arc19() derives the reserve
  from a CID, .arc69() places metadata in the note. Terminals return a
  finished CreateAsset (into_create) or Transaction (build).
- Make the NFT-shape predicates an extension trait (NftShape) so they
  read as methods on AssetParams.
- Rework the ARC-71 Soulbound typestate so Held/Revoked carry the
  AssetId; claim/revoke are now total (no Option, no unwrap).

url: Cid and TemplateIpfsUrl gain Display / FromStr; reserve derivation
is now `impl From<Cid> for Address`; the free parse/render/convert
functions become methods.

arc89: add with_* flag setters so callers never poke raw flag bytes.

lib: ZERO_ADDRESS is a const (was a fn); add a curated prelude.

examples/: mint_pure_nft, mint_mutable_arc19, mint_onchain_arc69,
soulbound_credential, resolve_metadata, arc89_preview — each builds and
runs, demonstrating the new ergonomics end to end.

No backward-compat concerns: the crate is unreleased.
Git Commit d56b36cf Branch feat/algonaut-nft Document 11/952 ++ 196 --
manuelmauro algonaut
feat(nft): add algonaut_nft subcrate for all NFT use cases
Introduce algonaut_nft, an offline-first workspace crate covering the
NFT-related ARCs, and record/accept the design in
docs/adr/algonaut-nft-subcrate.md.

Coverage:
- ARC-3 / ARC-69 metadata models (off-chain JSON and acfg-note), with
  ARC-16 traits and ARC-36 filters and ARC-53 collection declarations.
- ARC-3 integrity: the `am` hash (plain SHA-256 and the domain-separated
  SHA-512/256 form) and SRI `*_integrity` strings.
- ARC-19 template-ipfs <-> reserve-address transform, with a self-
  contained CID v0/v1 (base58btc + base32) codec.
- ARC-71 soulbound (non-transferable ASA) lifecycle as a typestate, plus
  pure/fractional NFT ASA presets over the existing asset builders.
- ARC-72/ARC-73 smart-contract NFT ABI signatures, selectors and
  interface ids, and ARC-18 royalty-enforcer bindings.
- ARC-74 indexer request/response types, with an async client behind the
  opt-in `fetch` feature.
- ARC-89 preview: an offline, byte-exact Asset Metadata Box codec, flag
  bytes, domain-separated hash, and registry constants (marked unstable).

The offline core links no HTTP client; the ARC-74 client and metadata
fetch ride algonaut_nft's `fetch` feature. The umbrella re-exports it as
`algonaut::nft` behind an additive, default-off `nft` feature (plus
`nft-fetch`), so existing builds are unchanged. No backward-compatibility
guarantees apply while the crate stabilises.
Git Commit ceadcb90 Branch feat/algonaut-nft Document 19/2,663 ++ 0 --
cusma go-algorand
Merge 4ec3185d16784b3e9b62ebb6473ab00bd578d6e5 into bf88db5072f7a4ca3a38f50f6cfb01658e62dfec
Git Commit 5048517f Branch pull/6639/merge Document 54/6,120 ++ 1,583 --
cusma go-algorand
chore: cr by @nullun, various
Git Commit 4ec3185d Branch pull/6639/head Document 17/1,579 ++ 1,519 --
wjbeau connect
fix: switch to pera wc client lib (#191)
Git Commit 33d48721 Branch beta-v1 Document 27/158 ++ 6,946 --