# Functions

## Introduction

Define the Name of this Function. A function's name is used to name and differentiate functions. It is advised that the name be specific and descriptive enough to be able to infer the function's purpose and distinguish it from other functions. Furthermore, the name will be utilized in the code as keyword to name the function

## Configuration

**Function Visibility**

Determine whether the function is public or not. This will affect how the function can be called:

* **Public**: Can be called both from inside the contract and from the outside world.
* **Private**: Can only be called from within the contract and is not inherited by derived contracts.

This setup allows you to control the accessibility and behavior of your functions, ensuring they operate as intended within your smart contract.

<figure><img src="/files/x946YkMDbWm7OWJ3W4BN" alt="" width="443"><figcaption></figcaption></figure>

**Define the Input for this Function**

Specify the input for the function. This pertains to the function's signature and establishes the type of Data Entities that the function will require as input, if any.

**Define the Return for this Function**

Specify the return value for the function. This also pertains to the function's signature and establishes the type of Data Entity that the function will return, if any.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.astrakode.tech/akb-wiki/astrakode-wiki/smart-contract-ide/technologies/hyperledger-fabric/components/functions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
