arc56-generated-gabrielkuettel-security-best-practice-guide
v1.5.2026082221
Published
Generated ARC-56 Algorand smart-contract clients for gabrielkuettel/security-best-practice-guide.
Maintainers
Readme
arc56-generated-gabrielkuettel-security-best-practice-guide
Auto-generated typed Algorand smart-contract clients for gabrielkuettel/security-best-practice-guide, built from the ARC-56 specs listed below.
Generated by the Arc56Registry pipeline, using the algorandfoundation/algokit-client-generator-ts ARC-56 client generator. Do not edit these files by hand — they are regenerated automatically whenever the source ARC-56 spec changes.
Install
npm install arc56-generated-gabrielkuettel-security-best-practice-guide @algorandfoundation/algokit-utils algosdkBasic usage
Each contract in this package is re-exported under its own namespace (a hash of its
source URL is appended to keep multiple contracts in the same repository from
colliding), containing a typed <Name>Client for interacting with an already-deployed
instance of that contract, plus a <Name>Factory for deploying new instances.
import { AlgorandClient } from "@algorandfoundation/algokit-utils";
import { SafePaymentManager_daf27721 } from "arc56-generated-gabrielkuettel-security-best-practice-guide";
const algorand = AlgorandClient.mainNet();
const client = new SafePaymentManager_daf27721.SafePaymentManagerClient({
algorand,
appId: 123456789n,
});
// call a contract method, e.g.:
// const result = await client.send.someMethod({ args: [...] });full vs minimal generator mode
Contracts in this package are generated with the client generator's full mode by
default, which emits both the typed Client and a deploy/create Factory class. A
small number of contracts' full-mode output has been observed to type-check against
non-exported internal shapes of @algorandfoundation/algokit-utils's AlgorandClient
that break across algokit-utils versions the generator doesn't itself pin against - for
those specific contracts only, this package falls back to minimal mode (Client
only, no Factory) instead of failing outright. The contracts table below flags any
contract generated this way; every other contract includes a working Factory.
Contracts included in this package
| Namespace | Client class | Source ARC-56 spec |
| --- | --- | --- |
| SafePaymentManager_daf27721 | SafePaymentManagerClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/1-smart-contracts-vs-logic-signatures/SafePaymentManager.arc56.json |
| RoleBasedContract_cc589612 | RoleBasedContractClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/2-access-control/RoleBasedContract.arc56.json |
| SafeDefaultContract_c454b008 | SafeDefaultContractClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/2-access-control/SafeDefaultContract.arc56.json |
| SafeDeleteContract_80a384d5 | SafeDeleteContractClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/2-access-control/SafeDeleteContract.arc56.json |
| SecureContract_f3ef24b5 | SecureContractClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/2-access-control/SecureContract.arc56.json |
| VulnerableContract_ff887aa7 | VulnerableContractClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/2-access-control/VulnerableContract.arc56.json |
| SecureDepositContract_87ca4faf | SecureDepositContractClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/4-transaction-input-validation/SecureDepositContract.arc56.json |
| VulnerableAssetContract_52c92be9 | VulnerableAssetContractClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/4-transaction-input-validation/VulnerableAssetContract.arc56.json |
| CloseFieldContract_7a49ae00 | CloseFieldContractClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/6-rekeying-draining/CloseFieldContract.arc56.json |
| SecureGroupContract_4bbdffc9 | SecureGroupContractClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/7-group-transaction-security/SecureGroupContract.arc56.json |
| VulnerableGroupContract_dfbf5a02 | VulnerableGroupContractClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/7-group-transaction-security/VulnerableGroupContract.arc56.json |
| ArithmeticContract_36e4f711 | ArithmeticContractClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/arithmetic_safety/ArithmeticContract.arc56.json |
| FeeExplicitZero_c6db62a9 | FeeExplicitZeroClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/fee_verification_test/FeeExplicitZero.arc56.json |
| FeeOmitted_b175c918 | FeeOmittedClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/fee_verification_test/FeeOmitted.arc56.json |
| HelloWorld_61b4ddd3 | HelloWorldClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/hello_world/HelloWorld.arc56.json |
| PausableContract_33fa44f4 | PausableContractClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/pausable_contract/PausableContract.arc56.json |
| RekeyingDemoContract_7eacb18c | RekeyingDemoContractClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/rekeying_draining/RekeyingDemoContract.arc56.json |
| PullPatternContract_15e6eb77 | PullPatternContractClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/state_management/PullPatternContract.arc56.json |
| SafeClearContract_ff2feabb | SafeClearContractClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/state_management/SafeClearContract.arc56.json |
| UpgradeableContract_9e208312 | UpgradeableContractClient | https://raw.githubusercontent.com/gabrielkuettel/security-best-practice-guide/HEAD/smart-contract-examples/projects/smart-contract-examples/smart_contracts/artifacts/upgradeable_contract/UpgradeableContract.arc56.json |
Versioning
This package uses 1.0.<increment>.<yyyyMMddHH>-style versioning (expressed as valid
semver 1.<increment>.<yyyyMMddHH>): a new version is published whenever any of the
contracts above change, or whenever the client generator itself is updated. See
Arc56Registry for the full generation
pipeline and source ARC-56 registry.
