## In TEAL

In TEAL the Txn is the transaction currently being evaluated. The sender will always* be the contract address  
*except in the case of a rekey

Txn.sender() is implicitly the contract address since it cant be anything else.

## TL;DR

Do not rely on the pending pool for any security purposes. The pending pool access is meant to allow you checking your own transactions. It does not provide any security guarantee.
I see many ways the above can go wrong, even if signatures are checked before entering the pending pool (which …

## Using Algo Builder

You can also use [Algo Builder](https://algobuilder.dev/) which is a framework for creating and testing smart contracts. You can say it’s is similar to what Truffle is for Ethereum. We have a TAEL interpreter and runtime implementation which allows you to rapid unit tests and integration tests.
AFAIK we are the only solution …

## Transaction Creation

You can create transactions using it. See [Your First Application - Algorand Developer Portal](https://developer.algorand.org/docs/features/asc1/stateful/hello_world/)
See [Writing a Simple Smart Contract | Algorand Developer Portal](https://developer.algorand.org/tutorials/writing-simple-smart-contract) for a full example
Or you can debug it. See [Smart Contract Debugging - Algorand Developer Portal](https://developer.algorand.org/docs/features/asc1/debugging) and [Using the TEAL Debugger to Debug a Smart…](https://developer.algorand.org/tutorials/using-the-teal-debugger-to-debug-a-smart-contract/)

## Learning Resources

In addition, I would highly recommend to first understand how Algorand works.
You can start there: [Getting Started on Algorand | Algorand Developer Portal](https://developer.algorand.org/articles/getting-started-algorand/)
or if you want a more hands-on tutorial: [GitHub - algorandfoundation/b…](https://github.com/algorandfoundation/buildweb3)

## TEAL Functionality

Yes, there are already applications on TestNet doing that.
See for example [https://tinyman.org/](https://tinyman.org/)

## TEAL Updates

This is still accurate today (Wednesday, Sept 8).
But AVM 1.0 (with TEAL 5) is coming soon and will allow stateful TEAL to essentially create transactions: [https://www.algorand.com/resources/algorand-announcements/algorand-new-approach-to-smart-contract-dev](/content/resources/algorand-announcements/algorand-new-approach-to-smart-contract-dev/index.html)
