> For the complete documentation index, see [llms.txt](https://docs.astrakode.tech/akb-wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.astrakode.tech/akb-wiki/astrakode-wiki/smart-contract-ide/technologies/ethereum/components.md).

# Components

Components list:

* [Contracts](/akb-wiki/astrakode-wiki/smart-contract-ide/technologies/ethereum/components/contracts.md)
* [Data Entities](/akb-wiki/astrakode-wiki/smart-contract-ide/technologies/ethereum/components/data-entities.md)
* [Elements](/akb-wiki/astrakode-wiki/smart-contract-ide/technologies/ethereum/components/elements.md)
* [Events](/akb-wiki/astrakode-wiki/smart-contract-ide/technologies/ethereum/components/events.md)
* [Functions](/akb-wiki/astrakode-wiki/smart-contract-ide/technologies/ethereum/components/functions.md)
* [Imports](/akb-wiki/astrakode-wiki/smart-contract-ide/technologies/ethereum/components/imports.md)
* [Mapping](/akb-wiki/astrakode-wiki/smart-contract-ide/technologies/ethereum/components/mapping.md)
* [Modifiers](/akb-wiki/astrakode-wiki/smart-contract-ide/technologies/ethereum/components/modifiers.md)
* [NsMetaData](/akb-wiki/astrakode-wiki/smart-contract-ide/technologies/ethereum/components/natural-language-metadata.md)
* [Operations](/akb-wiki/astrakode-wiki/smart-contract-ide/technologies/ethereum/components/operations.md)

To add a new contract, click the "+" button next to "Contracts." This will allow you to create a new contract, which serves as the core building block in your smart contract application. In the context of blockchain, a contract is a self-executing agreement with the terms of the agreement directly written into code. Contracts automatically enforce and execute the terms, ensuring transparency and security.

Once you've added a contract, you can proceed to add other components like events, custom functions, imports, modifiers, and data entities to further define and customize its functionality.

1. **Contracts**: Create and manage the main logic of your application.
2. **Events**: Define events that your contract will emit.
3. **Custom Functions**: Add specific functions to handle various tasks.
4. **Imports**: Include external libraries or other contracts.
5. **Modifiers**: Create conditions for function execution.
6. **Data Entities**: Define the data structure used in your contract

#### Editing and Deleting Contracts

* **Edit**: To modify an existing contract, select it from the dropdown menu and click "Edit."
* **Delete**: To remove a contract, select it and click "Delete."

These options provide flexibility in managing your contracts, ensuring that you can easily update and refine your smart contract application.

<figure><img src="/files/0yDlhvoMiQtvZtJpl9Wh" alt=""><figcaption></figcaption></figure>
