All connections to an Algorand Network is via a node that exists on that network. Nodes provide three REST services:
Service | Client | Purpose |
---|---|---|
algod (Algo Daemon) |
AlgodClient |
Send and monitor Transactions. |
indexer |
IndexerClient |
Query the Algorand Blockchain and lookup account, asset, or smart contract information. |
kmd (Key Management Daemon) |
KmdClient |
Manage private keys and accounts securely in a wallet hosted by the node. |
When developing locally, it's very important to have an Algorand node setup for quick iteration and testing. See the documentation on AlgoKit for a guide on setting up a local Algorand network for this purpose.
A blockchain is a ledger made up of transactions. Any write to a blockchain (not just the Algorand blockchain) requires making a Transaction. To make a transaction:
- Define/construct your transaction using static methods on
Transaction
class. - Sign your transaction with a
Signer
orAsyncSigner
. - Send the transaction using
algod
service viaAlgodClient.RawTransaction
. - Wait for the transaction to be confirmed via
AlgodClient.WaitForConfirmation
.
See Your First Transaction for an in-depth guide on making your first transaction.
Tokens on the Algorand blockchain are represented by Algorand Standard Assets (ASAs). See the guide on Algorand Standard Assets to learn more about how to manipulate tokens with this SDK.
There are two kinds of smart contracts on the Algorand blockchain:
Type of Smart Contract | Other Names | SDK entrypoint | Official Docs |
---|---|---|---|
Stateful | Application, Smart Contract | Transaction.AppCreate |
See docs |
Stateless | Logicsig, Smart Signature | LogicSig |
See docs |
All smart contracts are written using TEAL. To use a smart contract:
- Use your favorite tool to write TEAL source code. (Some may like PyTEAL).
- Compile the source code using
AlgodClient.TealCompile
. - Use the compiled program in your
LogicSig
orTransaction.AppCreate
.