> ## Documentation Index
> Fetch the complete documentation index at: https://digraphsas-docs-cli.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Delta API Go example

> End-to-end Go example: call the Velora Delta API to quote a gasless 1 ETH → USDC intent via net/http.

A minimal Go program that calls `GET /v2/quote?mode=DELTA` and prints the recommended route's expected output and the `spender` from the returned `delta` block. Standard library only.

## File tree

```text theme={null}
my-app/
├─ go.mod
└─ main.go
```

## Install

```bash theme={null}
mkdir my-app && cd my-app
go mod init example.com/my-app
```

## `main.go`

```go theme={null}
package main

import (
	"encoding/json"
	"fmt"
	"net/http"
	"net/url"
)

func main() {
	params := url.Values{
		"srcToken":     {"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"}, // ETH
		"destToken":    {"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}, // USDC
		"amount":       {"1000000000000000000"},                       // 1 ETH
		"srcDecimals":  {"18"},
		"destDecimals": {"6"},
		"side":         {"SELL"},
		"chainId":      {"1"},
		"mode":         {"DELTA"},
		"userAddress":  {"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"},
		"partner":      {"my-app-name"},
	}

	res, err := http.Get("https://api.velora.xyz/v2/quote?" + params.Encode())
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()

	if res.StatusCode != http.StatusOK {
		panic(fmt.Sprintf("HTTP %d", res.StatusCode))
	}

	var body struct {
		Delta struct {
			Route struct {
				Origin struct {
					Output struct {
						Amount string `json:"amount"`
					} `json:"output"`
				} `json:"origin"`
			} `json:"route"`
			Spender string `json:"spender"`
		} `json:"delta"`
	}
	if err := json.NewDecoder(res.Body).Decode(&body); err != nil {
		panic(err)
	}

	fmt.Println("expected output:", body.Delta.Route.Origin.Output.Amount)
	fmt.Println("spender:        ", body.Delta.Spender)
}
```

## Run it

```bash theme={null}
go run .
```

You should see the recommended route's expected output (USDC, 6 decimals) and the `spender` address to approve before building the order.

## Next: build, sign, submit

Pass the unmodified `delta.route` into `POST /v2/delta/orders/build` (with `owner` set to the user address) to get EIP-712 typed data back as `{ toSign, orderHash }`. Sign `toSign` with an ERC-2098 compact signature, then `POST /v2/delta/orders` with `order` (the `toSign.value`), the `signature`, `chainId`, and your `partner`. Poll `GET /v2/delta/orders/{orderId}` for status. See [Delta → How it works](/delta/how-it-works).

<Warning>
  Pass `delta.route` **verbatim** to `/v2/delta/orders/build`. Reordering or re-encoding it will cause the build call to reject.
</Warning>

## Related pages

* [Delta overview](/delta/overview) — when to use Delta intents.
* [Delta → How it works](/delta/how-it-works) — quote → build → sign → auction → settle.
* [Delta API reference](/api-reference/delta/overview) — full parameter list.
