Skip to main content


The Soroban team has put together a large collection of example contracts to demonstrate use of the Soroban smart contracts platform. For many of these example contracts, we've written an accompanying "tutorial" that will walk you through the example contracts and describe a bit more about their design. You can think of these "tutorials" as example contracts that end with a deployable smart contract. You can use the provided filters to find a relevant tutorial for your experience level.

Allocator - Use the allocator feature to emulate heap memory in a smart contract.

Batched Atomic Swaps - Swap a token pair among groups of authorized users.

Atomic Swap - Swap tokens atomically between authorized users.

Auth - Implement authentication and authorization.

Cross Contract Calls - Call a smart contract from another smart contract.

Custom Account - Implement an account contract supporting multisig and custom authorization policies.

Custom Types - Define your own data structures in a smart contract.

Deployer - Deploy and initialize a smart contract using another smart contract.

Errors - Define and generate errors in a smart contract.

Events - Publish events from a smart contract.

Fuzz Testing - Increase confidence in a contract's correctness with fuzz testing.

Liquidity Pool - Write a constant-product liquidity pool contract.

Logging - Debug a smart contract with logs.

Single Offer Sale - Make a standing offer to sell a token in exchange for another token.

Timelock - Lockup some token to be claimed by another user under set conditions.

Tokens - Write a CAP-46-6 compliant token contract.