https://github.com/algorandfoundation/beaker
A framework for writing Smart Contracts on Algorand
https://github.com/algorandfoundation/beaker
algorand cryptocurrency python smart-contracts
Last synced: about 1 month ago
JSON representation
A framework for writing Smart Contracts on Algorand
- Host: GitHub
- URL: https://github.com/algorandfoundation/beaker
- Owner: algorandfoundation
- License: mit
- Created: 2022-07-06T19:42:04.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2024-10-22T15:16:40.000Z (6 months ago)
- Last Synced: 2025-03-07T21:11:34.651Z (about 1 month ago)
- Topics: algorand, cryptocurrency, python, smart-contracts
- Language: Python
- Homepage: https://beaker.algo.xyz
- Size: 41.3 MB
- Stars: 99
- Watchers: 10
- Forks: 33
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.MD
- License: LICENSE
Awesome Lists containing this project
- awesome-algorand - beaker - A tool for smart contract development on the Algorand blockchain. Inspired by `flask`. (Development Tools / Other Development Tools)
README
Beaker
------Beaker is a smart contract development framework for [PyTeal](https://github.com/algorand/pyteal).
## Hello, Beaker
```py
from pyteal import *
from beaker import *hello_app = Application("HelloBeaker")
@hello_app.external
def hello(name: abi.String, *, output: abi.String) -> Expr:
# Set output to the result of `Hello, `+name
return output.set(Concat(Bytes("Hello, "), name.get()))# Create an Application client
app_client = client.ApplicationClient(
# Get sandbox algod client
client=sandbox.get_algod_client(),
# Pass instance of app to client
app=hello_app,
# Get acct from sandbox and pass the signer
signer=sandbox.get_accounts().pop().signer,
)# Deploy the app on-chain
app_id, app_addr, txid = app_client.create()
print(
f"""Deployed app in txid {txid}
App ID: {app_id}
Address: {app_addr}
"""
)# Call the `hello` method
result = app_client.call(hello, name="Beaker")
print(result.return_value) # "Hello, Beaker"```
## Install
Beaker requires Python >= 3.10
You can install from pip:
`pip install beaker-pyteal`
Or from github directly (no promises on stability):
`pip install git+https://github.com/algorand-devrel/beaker`
# Dev Environment
Requires a local network running to compile and test contracts.
Install [AlgoKit](https://github.com/algorandfoundation/algokit-cli#install)
and start it
```sh
$ algokit localnet start
$ algokit localnet status
```## Front End
See [Beaker TS](https://github.com/algorand-devrel/beaker-ts) to generate a front end client for a Beaker App.
## Testing
You can run tests from the root of the project using `pytest`
## Use
[Examples](/examples/)
[Docs](https://beaker.algo.xyz)
**Please report bugs and get any contracts audited**
We recommend that any production smart contracts be audited by a professional before deployment. Beaker has been thoroughly tested, but we cannot guarantee that it is entirely free of bugs.