> For the complete documentation index, see [llms.txt](https://session-tech.gitbook.io/session/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://session-tech.gitbook.io/session/developers/architecture-overview/sessions-restaking-sdk.md).

# Session's Restaking SDK

Session's Restaking SDK enables existing DePIN projects to create an additional revenue stream for their network, by allowing their nodes to contribute bandwidth to Session's network through via a fully transparent and opt-in mechanism.

It provides a low-latency, fully-encrypted tunnel between agents and web-servers, ensuring that no sensitive data is exposed to the network and user/node privacy is completely preserved.&#x20;

The SDK is built in rust and is cross-platform from day one, which means we fully support all major platforms, including but not limited to:

1. iOS (Swift, Objective C & React Native)
2. Android (Kotlin, Java & React Native)
3. Desktop (Windows, Linux, Mac & Chrome extension)

*If you're on a device/platform that is currently not supported,* [*please reach out to us here*](https://docs.google.com/forms/d/e/1FAIpQLSc09y8rqLJ6lqUP1ATeiOW2LcuAOcdzSkAkq3_HPymZjcPxhg/viewform) *and our team will collaborate with you to ensure our SDK is supported on your devices.*

***

### Integration: Example Code (Kotlin)

Integrating the SDK is very straightforward and user-friendly, requiring minimal effort from your engineering team. The setup process is quick, allowing developers to seamlessly incorporate it into their projects and devices without encountering hurdles.

```kotlin
import tech.session.sdk.SessionSDK
import tech.session.sdk.Node
import tech.session.sdk.Request

fun main() {
    // Initialize your node with minimal configuration
    val node = SessionSDK.createNode(
        apiKey = "YOUR_API_KEY",
        walletAddress = "YOUR_WALLET_ADDRESS"
    )

    // Listen for incoming requests
    node.onSuccessfulRequest { request: Request ->
        println("Received request: ${request.id}")
    }

    // Start participating in the network
    node.start()
}
```
