Skip to main content
POST
/
v1
/
bridge
/
solana-to-hyperliquid-perps
Send Solana assets to Hyperliquid Perps
curl --request POST \
  --url https://api-nova.tech/v1/bridge/solana-to-hyperliquid-perps \
  --header 'Content-Type: application/json' \
  --data '
{
  "solanaAddress": "<string>",
  "hyperliquidAddress": "<string>",
  "amount": "<string>",
  "asset": "SOL",
  "amountRaw": "<string>",
  "slippageTolerance": "<string>"
}
'
{
  "success": true,
  "service": "nova-bridge",
  "route": "Relay Solana to Hyperliquid Perps",
  "routePlan": {},
  "provider": "relay",
  "requestId": "<string>",
  "originChain": "<string>",
  "destinationChain": "<string>",
  "originChainId": 123,
  "destinationChainId": 123,
  "inputToken": "<string>",
  "inputTokenAddress": "<string>",
  "inputAmount": "<string>",
  "inputAmountAtomic": "<string>",
  "outputToken": "<string>",
  "outputTokenAddress": "<string>",
  "outputAmount": "<string>",
  "outputAmountAtomic": "<string>",
  "feeUsd": "<string>",
  "estimatedTime": "<string>",
  "routeSummary": "<string>",
  "statusEndpoint": "<string>",
  "transaction": {
    "chainId": 123,
    "chain": "<string>",
    "to": "<string>",
    "value": "<string>",
    "data": "<string>",
    "gasLimit": "<string>",
    "unsignedTxHex": "<string>",
    "unsignedTxBase64": "<string>"
  },
  "approval": {
    "token": "<string>",
    "spender": "<string>",
    "value": "<string>",
    "gasLimit": "<string>"
  },
  "routeDetails": {
    "id": "<string>",
    "from": "<string>",
    "to": "<string>",
    "name": "<string>",
    "provider": "relay",
    "inputAsset": "<string>",
    "outputAsset": "<string>",
    "originChainId": 123,
    "destinationChainId": 123,
    "originCurrency": "<string>",
    "destinationCurrency": "<string>"
  },
  "appFeePolicy": {
    "applied": true,
    "feeBps": 1
  }
}

Body

application/json
solanaAddress
string
required

Public Solana wallet address sending SOL or USDC.

hyperliquidAddress
string
required

Public Hyperliquid Perps account address receiving USDC.

amount
string
required

Decimal amount to send, for example 0.1 when asset is SOL or 25 when asset is USDC.

Example:

"0.1"

asset
enum<string>
default:SOL

Solana asset to send into Hyperliquid Perps. The route outputs USDC on Hyperliquid Perps.

Available options:
SOL,
USDC,
sol,
usdc
amountRaw
string

Optional base-unit amount for clients that already handle decimals.

Pattern: ^[0-9]+$
slippageTolerance
string

Optional slippage tolerance in basis points.

Pattern: ^[0-9]+$

Response

Wallet-ready Solana to Hyperliquid Perps route plan.

success
boolean
required
Example:

true

service
string
required
Example:

"nova-bridge"

route
string
required

Human-readable route summary kept string-compatible for mobile clients.

Example:

"Relay Solana to Hyperliquid Perps"

routePlan
object
required

Relay quote steps and route details for iOS-local approval, signing, and broadcast.

provider
string
Example:

"relay"

requestId
string | null
originChain
string | null
destinationChain
string | null
originChainId
number | null
destinationChainId
number | null
inputToken
string | null
inputTokenAddress
string | null
inputAmount
string | null
inputAmountAtomic
string | null
outputToken
string | null
outputTokenAddress
string | null
outputAmount
string | null
outputAmountAtomic
string | null
feeUsd
string | null
estimatedTime
string | null
routeSummary
string | null
statusEndpoint
string | null
transaction
object

Unsigned transaction payload normalized for iOS signing and broadcast.

approval
object

Optional ERC-20 approval required before the Relay bridge transaction.

routeDetails
object

Structured Relay route metadata.

appFeePolicy
object