11438 commits in all time Mar 21, 2026 11:53 – Jun 19, 2026 11:53 UTC
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 --
PhearZero liquid-auth
Merge 3683437926e5ca0d20e7a643883cca4eaa6aafa6 into 9783a67c2bfbde6bf00c871a7209ffc50e5cd670
Git Commit 1e60c290 Branch pull/39/merge Document 9/531 ++ 178 --
Argimirodelpozo puya-ts
Merge 749ca9c3327087b04bd5c9cbb4f03078546c0c07 into e56f6efde0b906a499824f49b7c6b6c1a330e60d
Git Commit 4d1c78a2 Branch pull/383/merge Document 2/85 ++ 28 --
Argimirodelpozo puya-ts
fix: catch recursive types that would not be caught as they generate a diferent type in each step of the infinite expansion
Git Commit 749ca9c3 Branch forbid-cyclic-structs Document 1/51 ++ 26 --
iglosiggio go-algorand
Merge 921119e579ca3392d473d42914abb49a4b627e5d into bf88db5072f7a4ca3a38f50f6cfb01658e62dfec
Git Commit 6b359d7e Branch pull/6617/merge Document 16/41,030 ++ 2,059 --
Merge 4f41c6e0ad4ff02458bc53508ba728122b4db075 into bf88db5072f7a4ca3a38f50f6cfb01658e62dfec
Git Commit 1b699b0a Branch pull/6641/merge Document 2/3 ++ 3 --
nullun go-algorand
Merge 84d20e219ff05d5b32e06fb62b049f6678980b52 into bf88db5072f7a4ca3a38f50f6cfb01658e62dfec
Git Commit 0ded8a70 Branch pull/6631/merge Document 4/553 ++ 11 --
cce go-algorand
Merge 0b56b69b775a4fc52bd28d477d72f6969cc7ca77 into bf88db5072f7a4ca3a38f50f6cfb01658e62dfec
Git Commit 35f7344d Branch pull/6627/merge Document 17/1,938 ++ 95 --
cce go-algorand
Merge 25858d3eb9d497b52b7729ed7d0fcb3b2fd2a74e into bf88db5072f7a4ca3a38f50f6cfb01658e62dfec
Git Commit d2d0e555 Branch pull/4018/merge Document 11/631 ++ 369 --
cce go-algorand
Merge 94c5323fc97c94fa12540ab8113eaaae194b7b79 into bf88db5072f7a4ca3a38f50f6cfb01658e62dfec
Git Commit f3d780f8 Branch pull/6614/merge Document 2/1,461 ++ 728 --
joe-p go-algorand
Merge 54914c54af8129e32157a690241cb61be3cd801f into bf88db5072f7a4ca3a38f50f6cfb01658e62dfec
Git Commit 7db6fe75 Branch pull/5943/merge Document 2/69 ++ 2 --
Argimirodelpozo puya-ts
test: add tests for recursive function and recursive type where the actual type differs on expansion
Git Commit 51b7cf19 Branch forbid-cyclic-structs Document 1/18 ++ 2 --