Skip to main content

Documentation Index

Fetch the complete documentation index at: https://new-docs.velora.xyz/llms.txt

Use this file to discover all available pages before exploring further.

A minimal Go program that calls GET /quote?mode=DELTA and prints the indicative destAmount, deadline, and hmac from the returned delta payload. Standard library only.

File tree

my-app/
├─ go.mod
└─ main.go

Install

mkdir my-app && cd my-app
go mod init example.com/my-app

main.go

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/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 {
			DestAmount string `json:"destAmount"`
			Deadline   int64  `json:"deadline"`
			Hmac       string `json:"hmac"`
		} `json:"delta"`
	}
	if err := json.NewDecoder(res.Body).Decode(&body); err != nil {
		panic(err)
	}

	fmt.Println("destAmount:", body.Delta.DestAmount)
	fmt.Println("deadline:  ", body.Delta.Deadline)
	fmt.Println("hmac:      ", body.Delta.Hmac)
}

Run it

go run .
You should see the indicative destAmount (USDC, 6 decimals), the order deadline (unix seconds), and the hmac you must pass through verbatim when building the order.

Next: build, sign, submit

Pass the whole delta object into POST /delta/orders/build (as the price field) to get EIP-712 typed data. Sign it with an ERC-2098 compact signature, then POST /delta/orders with the order + signature. See Delta → How it works.
Pass the delta payload verbatim to /delta/orders/build. Mutating any field (including hmac) will cause the build call to reject.