Example: Guest Book
Let's explore the successful NEAR project Guestbook together! See below the elements of the project.
There are 2 main folders in the project:
- assembly contains the smart contract and tests
- src contains the application’s UX and tests
There is another folder to be aware of:
- neardev contains contract account details
Note: We will not focus on the “src folder” which is the frontend of this dApp.

Contract Data Model: assembly/model.ts

PostedMessage is a serializable class with three attributes:
- premium to flag messages with attached NEAR tokens
- sender to track the signer of the guest book message
- text to hold the guest book message
Messages is a collection of guest book messages stored as a PersistentVector of PostedMessage objects.
Note: @nearBindgen marks the class as serializable.
Contract Behavior: assembly/main.ts

MESSAGE_LIMIT is used to avoid unbounded calls (ie. potentially expensive) to retrieve guest book messages from storage.
Two public functions are exposed on the contract:
- addMessage()
- getMessages()
Lesson discussion
Swap insights and ask questions about NEAR Developer Course
Be the first to start the discussion
Ask a question or share your thoughts about this lesson.