Developer Guide

API and dApp Integration

Public API endpoints and the extension's Solana Wallet Standard surface.

Public HTTP API

The backend's OpenAPI document is the canonical wire reference. For parameters, examples, response behavior, and errors, see the Backend API Reference.

Current endpoint groups are:

AreaEndpoints
ServiceGET /health, GET /status, GET /ip
NetworksGET /v1/networks
Market dataExchange rates, coin details, and market charts under /v1
dAppsGET /v1/dapp/metadata
MultichainGET /v1/{networkId}/account/{address}/balance
Solana accountsTransaction history under /v1/solana-{env}/account
Solana tokensVerified tokens, search, swap order, and swap execution
Solana NFTsList, unsigned burn transaction, and unsigned transfer transaction
BitcoinTransaction history and UTXOs under /v1/bitcoin-{env}/account
AnalyticsPOST /v1/events

Public response shaping belongs in backend resources. Shared frontend wrappers live in packages/shared/src/api/services; applications should not call these endpoints through duplicate local clients.

The public API does not require client credentials. Browser access is CORS-restricted and /v1 routes are rate-limited, so consumers must handle 4xx, 5xx, and temporary provider failures explicitly.

Signing boundary

The API can return balances, history, metadata, quotes, or unsigned transaction material. Seed phrases and private keys remain in the client. Signing and user approval are client responsibilities.

Browser extension integration

The extension injects a Solana provider and registers a Wallet Standard wallet. It supports:

  • standard:connect and standard:disconnect
  • solana:signTransaction
  • solana:signAndSendTransaction
  • solana:signMessage
  • solana:signIn 1.1.0

Requests pass through background/content/injected extension boundaries and open a dedicated approval page. Origins are checked, accounts are matched to the request, and rejection is returned explicitly.

Off-chain messages

Salmon supports Solana Off-chain Message Signing v1. Its domain-separated format cannot be confused with a serialized Solana transaction. This reduces transaction-lookalike risk, but the user must still verify the requesting origin and message content.

Trusted apps

Approved origins are stored per wallet account. Silent reconnect is allowed only for a trusted origin. Users can revoke entries from Settings; locking or switching relevant state forces the provider to update its connection.

Copyright © 2026