Skip to content

CA : 7xm4u26vd9KzPqgEQjdvmzbxzY82VNe7CJpCsy3pump

PathMint addressBase unitsSlippageUnsignedYour keysChain confirmationMint addressBase unitsSlippageUnsignedYour keysChain confirmationMint addressBase unitsSlippageUnsignedYour keysChain confirmationMint addressBase unitsSlippageUnsignedYour keysChain confirmation

Built for Solana · non-custodial infrastructure

Every quote moves like light.

Light Wire is a Solana swap and hook desk. The hook is ready whenever you want to use it. You connect a wallet, read the quote, and sign it yourself. Settlement closes on the chain.

You name tokens by mint address, you read an amount in base units, and you see the fee before a wallet opens. A transfer hook on a mint is a program the token program calls. Open it when you need it, and the desk reads that program on the account.

Plug one in. The note appears after it seats.

The socket is empty. Plug one in to read it.

Mainnet

Ready

ready

Fee collection

Ready

ready

Routing

Ready

ready

Confirmation

Ready

ready

How to read the desk

Three things this product will not blur

Interest fades when a swap page hides the rule. The sections below are the rules, written at the length a careful reader actually needs.

The number

A quote is a claim with an expiry

A routing provider looks at liquidity it can see and returns an estimate. That estimate can move before you sign, and it can fail the price check after you do. Light Wire keeps the words apart: estimated output, minimum output, price impact when the provider sent one, and the moment the quote stops being usable. Until a provider is attached, the quote route refuses. Refusal is the honest state. An invented output would be a lie with a decimal point.

The program

A hook is not a sticker on a token

Token-2022 can store a Transfer Hook on a mint. When that extension is set, the token program calls a separate program during a transfer, and that program may demand extra accounts. An ordinary Anchor program is not called by the rest of Solana on its own. Light Wire can read whether a mint is SPL Token or Token-2022, whether a hook is configured, and which program id is named. The read is a snapshot of accounts. It is not an audit, and it cannot promise the program is safe.

The key

Custody stays where you left it

Connecting a wallet is permission to ask for a signature, not permission to hold the coins. Public pages work before any wallet is connected. Signing happens only for an action that needs your account. Mainnet writes are switched off in the product itself, not behind a flag someone can flip in an environment file. Devnet is the book this release is willing to write in.

Who it is for

Four kinds of work, one set of limits

The same API serves a person swapping once and a product swapping all day. The limits do not get quieter for the larger user.

Someone swapping

You want a wallet, two mints, an amount, a slippage window, and a sentence that says what you will actually sign. Symbols sit next to shortened addresses so a lookalike cannot hide behind a logo.

Someone shipping a product

You want a typed client, stable error codes, and a quote shape you can render without guessing. Amounts travel as base-unit strings so a JavaScript number never rounds a balance.

Read the SDK

Someone issuing a token

You want to see the token program, the hook if one is configured, and the extra accounts a supported hook expects. Studio keeps templates on Devnet and will not offer a one-click Mainnet deploy.

Inspect a mint

A team watching the desk

You want keys, quotas, and a fee policy you can read. Collection is off. Higher quotas, webhooks, and a support agreement are named as later work, not sold as if they already run.

See the policy

Inside a swap

Four stops between a click and a fill

The wire sits on the road every swap takes. Nothing on this page counts as a completed trade.

  1. Stop 1

    A request arrives

    Someone asks for a swap. Light Wire checks the mint addresses, the amount, and the cluster before it talks about a price. A ticker is a label. Two tokens can share one, so the desk asks for the mint.

  2. Stop 2

    The quote speaks

    You see an estimate, a minimum after slippage, a network-fee estimate, and any platform fee. A missing route is an error code, not a zero. If the route cannot carry the fee, the API does not pretend the fee was taken.

  3. Stop 3

    You sign

    The builder returns an unsigned transaction. Your wallet signs it on your machine. Light Wire does not ask for a seed phrase, does not store a private key, and does not sign on the server.

  4. Stop 4

    The chain answers

    A submitted signature means the network accepted a message. The status becomes confirmed, failed, expired, or unknown only after Solana answers. The screen will not call a swap finished before that.

Inside a hook

What the inspector is actually reading

A mint is an account on a cluster. Token-2022 can attach extensions to that account. One of them, the Transfer Hook, names another program to call when the token moves. Light Wire asks the cluster what is stored there and writes the answer down with the time of the read.

That is useful, and it is narrow. The inspector cannot see every program the hook might call later, cannot score a developer wallet, and cannot tell you a token is safe to buy. If the RPC for that cluster is missing, the page says the read could not be made.

Open the inspector
  1. 01

    Mint account

    The address is the identity. Inspection starts by asking the cluster whether that account exists.

  2. 02

    Token program

    SPL Token and Token-2022 are different programs. The desk reports which one owns the mint.

  3. 03

    Transfer Hook

    If the extension is present, the mint names a hook program. If it is absent, the report says absent.

  4. 04

    Extra accounts

    Some hooks need more accounts than a plain transfer. Light Wire resolves them only for hooks it actually supports.

  5. 05

    Authorities

    Mint and freeze authority are reported when the account exposes them. Unknown stays unknown.

  6. 06

    The disclaimer

    A timestamped read is not a security review. Nothing on the inspector page is a promise that a program is safe to call.

Ready-made wires

Pick a behaviour, then read it

Each card is an illustration. Move the setting and the sentence changes. The figures stay blank until a real quote exists.

Slippage illustration

Usual

Fifty basis points, the desk default. Still an estimate, not a guaranteed fill.

figure · pending

Selected wire

Nothing plugged

Plug one in above. This card repeats the note that appears after it seats.

Before you wire it in

Questions a careful reader asks first

Open any of these. The answer is the product limit, not a slogan.

+Why would a quote come back as an error?

The API validates the request first. Same mint on both sides is rejected. A non-address is rejected. An amount has to be a positive integer string that fits in a u64. After that, if no routing provider is configured, the route fails closed with ROUTING_PROVIDER_UNAVAILABLE. Handling that code is part of using the desk. Painting a fake output is not.

+What is a base unit, and why is the amount a string?

A token with six decimals stores 1.5 as 1500000. JavaScript numbers cannot represent every integer a Solana balance can hold, so the API and the SDK take the amount as a decimal string of the smallest unit. The interface can show a friendly amount. The request underneath does not.

+When is the swap actually finished?

After your wallet signs, the signature is watched. Submitted, confirmed, failed, expired, and unknown are different states. Confirmed is the only one that means the cluster accepted the transaction. An explorer link is for the signature you can check yourself.

+Can Light Wire add a hook to someone else's token?

No. A Transfer Hook is configured by an authority on that mint. Light Wire does not take authority it was not given, and it does not offer arbitrary Rust with a button that deploys it to Mainnet.

+Is the TypeScript package tied to this website?

The client lives in its own package, @gundrink/light-wire, so another app can depend on it. It speaks the public REST API: health, quotes, unsigned builds, swap status, and hook inspection. It unwraps a success envelope and throws a typed error when the API refuses.

For builders

A client is a small, strict program

The SDK asks for a quote and returns either a real estimate or a typed error. It never asks for a key to your wallet. Another product can import it without importing this website.

  1. Step 1

    Point at the API

    Give the SDK a base URL. The secret, if you have one, stays in the environment.

  2. Step 2

    Ask for a quote

    Send mints as addresses and the amount as a base-unit string.

  3. Step 3

    Read the error

    A missing provider is a code, not a made-up output amount.

  4. Step 4

    Leave signing alone

    Build comes later, unsigned, and only after a quote actually exists.

import { LightWire } from "@gundrink/light-wire";

const lightWire = new LightWire({
  baseUrl: process.env.LIGHT_WIRE_API_URL,
});

const quote = await lightWire.createQuote({
  cluster: "devnet",
  inputMint,
  outputMint,
  amount: "1000000",
  slippageBps: 50,
});
// an estimate, not a fill

The road ahead

Four phases, no promises on the clock

Order matters here, not dates. A phase opens when the one before it is solid.

  1. Phase 1

    Foundations

    The site, the API health check, and the public SDK package are in the workspace.

    pending

  2. Phase 2

    Quotes

    A routing adapter can attach when a provider is configured. Until then the quote route fails closed.

    pending

  3. Phase 3

    Inspection

    Mint and program reads wait on an RPC. Without one, the inspector says so.

    pending

  4. Phase 4

    Wider use

    Mainnet writes stay off. Better features are on the way. No date is promised.

    pending