# Javelin

By utilizing Javelin, apps can aggregate liquidity across chains and enable composability across different instances of their dApp across chains. This provides a solution that is faster and atomic, providing a better user experience and better guarantees for dApp developers than any other solution on the market.

Atomic execution is the first step to enabling a cross-chain future that benefits both users and chains. By enabling this atomic execution, NodeKit is able to define a basic primitive that has the potential to be the cornerstone of cross-chain interactions.&#x20;

There are two primary ways apps interact with Javelin.&#x20;

1. Allow the builder to generate the second transaction for when a user wants to use a bridge like Hyperlane. The user signs the first transaction, allowing the builder to sign the second transaction and the bundle to guarantee both of the transactions atomically execute on each chain involved in the bundle.

* To enable this functionality, NodeKit leverages Hyperlane’s permissionless interoperability. A customized client of Hyperlane’s off-chain software is used to check that the first transaction is valid in the Hyperlane system and create the second transaction for the destination chain before the atomic execution of both transactions is guaranteed by Javelin.&#x20;

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXccKtrQtT6eUW-3k00GwNgxY7wKbxnPHBfLN-OGcv8NXmuEPL-oJ1GVUT4DqDzNnNX_YUsyn490HHISDJ5cqSnWzDZ02Kb18qIlubBUCFqT6qCPxfVBXm9gp5bix-9B_UZMUL5BW6hNRuzKhFLxlV7YnYI?key=6OxyHMAOnsYfZq9kbcZSwg" alt=""><figcaption></figcaption></figure>

2. Submit an atomic bundle where the user creates both transactions then submits an atomic bundle to a Javelin instance. The bundle standard and API standard is inspired by the Flashbots standard \[1] to make it easier for developers to build tooling. These standards are subject to change.

1 <https://docs.flashbots.net/flashbots-auction/advanced/rpc-endpoint>


---

# 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://nodekit.gitbook.io/nodekit-documentation/builders-guide/javelin.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.
