Prerequisites
Before you can bridge funds to Lighter, you must first set up an account on lighter.exchange. Once your account is created, you can retrieve your account index to use as the recipient for deposits.API Access
Lighter can be accessed using the standard Relay API flow. To get started, review the execution steps documentation. When you’re ready to execute deposits or withdrawals, refer to the Get Quote API endpoint.If you’re integrating via the SDK, the Lighter wallet adapter wraps this flow — it resolves the user’s Lighter account index, manages the API key lifecycle, and submits the L2 transfer on your behalf.
Lighter-specific API Parameters
| Parameter | Input | Description |
|---|---|---|
| toChainId / fromChainId | 3586256 | Lighter Chain ID. Use toChainId for deposits and fromChainId for withdrawals. |
| recipient | Lighter account index | The Lighter account index to credit — not a wallet address. |
| user | Lighter account index | On withdrawals, the Lighter account index to debit. |
The
recipient parameter must be your Lighter account index, not your wallet address. See below for how to retrieve your account index.Getting Your Lighter Account Index
To deposit to Lighter, you need to use your Lighter account index as therecipient parameter. You can retrieve this using the Lighter API’s accountsByL1Address endpoint:
curl 'https://mainnet.zklighter.elliot.ai/api/v1/accountsByL1Address?l1_address=YOUR_WALLET_ADDRESS'
YOUR_WALLET_ADDRESS with your Ethereum wallet address. The response will include your accountIndex, which you should use as the recipient in your quote request.
For more details, see the Lighter API documentation.
How to deposit
curl 'https://api.relay.link/quote/v2' \
-H 'content-type: application/json' \
-d '{
"user": "0x03508bB71268BBA25ECaCC8F620e01866650532c",
"originChainId": 8453,
"destinationChainId": 3586256,
"originCurrency": "0x0000000000000000000000000000000000000000",
"destinationCurrency": "0",
"recipient": "509564",
"tradeType": "EXACT_INPUT",
"amount": "1000000000000000000"
}'
{
"steps":[
{
"id":"deposit",
"action":"Confirm transaction in your wallet",
"description":"Depositing funds to the relayer to execute the swap for USDC (Perp)",
"kind":"transaction",
"items":[
{
"status":"incomplete",
"data":{
"from":"0xf3d63166f0ca56c3c1a3508fce03ff0cf3fb691e",
"to":"0x4cd00e387622c35bddb9b4c962c136462338bc31",
"data":"0x49290c1c000000000000000000000000f3d63166f0ca56c3c1a3508fce03ff0cf3fb691eb86a968b9c157fc6ab0e30ac13b7c9e8fe5ed28007b43da606737bca5f00cf6d",
"value":"1000000000000000000",
"chainId":8453,
"gas":"32713",
"maxFeePerGas":"6500000",
"maxPriorityFeePerGas":"1000000"
},
"check":{
"endpoint":"/intents/status/v3?requestId=0x63bf829d9cead2d0dc94113cc368cdc2e2f25f4a9d5c24d4123002e83cf504c1",
"method":"GET"
}
}
],
"requestId":"0x63bf829d9cead2d0dc94113cc368cdc2e2f25f4a9d5c24d4123002e83cf504c1",
"depositAddress":""
}
],
"fees":{
"gas":{
"currency":{
"chainId":8453,
"address":"0x0000000000000000000000000000000000000000",
"symbol":"ETH",
"name":"Ether",
"decimals":18,
"metadata":{
"logoURI":"https://assets.relay.link/icons/1/light.png",
"verified":true
}
},
"amount":"160689399841",
"amountFormatted":"0.000000160689399841",
"amountUsd":"0.000372",
"minimumAmount":"160689399841"
},
"relayer":{
"currency":{
"chainId":8453,
"address":"0x0000000000000000000000000000000000000000",
"symbol":"ETH",
"name":"Ether",
"decimals":18,
"metadata":{
"logoURI":"https://assets.relay.link/icons/1/light.png",
"verified":true
}
},
"amount":"703637317433828",
"amountFormatted":"0.000703637317433828",
"amountUsd":"1.630976",
"minimumAmount":"703637317433828"
},
"relayerGas":{
"currency":{
"chainId":8453,
"address":"0x0000000000000000000000000000000000000000",
"symbol":"ETH",
"name":"Ether",
"decimals":18,
"metadata":{
"logoURI":"https://assets.relay.link/icons/1/light.png",
"verified":true
}
},
"amount":"0",
"amountFormatted":"0.0",
"amountUsd":"0",
"minimumAmount":"0"
},
"relayerService":{
"currency":{
"chainId":8453,
"address":"0x0000000000000000000000000000000000000000",
"symbol":"ETH",
"name":"Ether",
"decimals":18,
"metadata":{
"logoURI":"https://assets.relay.link/icons/1/light.png",
"verified":true
}
},
"amount":"703637317433828",
"amountFormatted":"0.000703637317433828",
"amountUsd":"1.630976",
"minimumAmount":"703637317433828"
},
"app":{
"currency":{
"chainId":8453,
"address":"0x0000000000000000000000000000000000000000",
"symbol":"ETH",
"name":"Ether",
"decimals":18,
"metadata":{
"logoURI":"https://assets.relay.link/icons/1/light.png",
"verified":true
}
},
"amount":"0",
"amountFormatted":"0.0",
"amountUsd":"0",
"minimumAmount":"0"
},
"subsidized":{
"currency":{
"chainId":8453,
"address":"0x0000000000000000000000000000000000000000",
"symbol":"ETH",
"name":"Ether",
"decimals":18,
"metadata":{
"logoURI":"https://assets.relay.link/icons/1/light.png",
"verified":true
}
},
"amount":"0",
"amountFormatted":"0.0",
"amountUsd":"0",
"minimumAmount":"0"
}
},
"details":{
"operation":"swap",
"sender":"0xf3d63166f0ca56c3c1a3508fce03ff0cf3fb691e",
"recipient":"509564",
"currencyIn":{
"currency":{
"chainId":8453,
"address":"0x0000000000000000000000000000000000000000",
"symbol":"ETH",
"name":"Ether",
"decimals":18,
"metadata":{
"logoURI":"https://assets.relay.link/icons/1/light.png",
"verified":true
}
},
"amount":"1000000000000000000",
"amountFormatted":"1.0",
"amountUsd":"2317.921203",
"minimumAmount":"1000000000000000000"
},
"currencyOut":{
"currency":{
"chainId":3586256,
"address":"0",
"symbol":"USDC (Perp)",
"name":"USD Coin (Perp)",
"decimals":6,
"metadata":{
"logoURI":"https://ethereum-optimism.github.io/data/USDC/logo.png",
"verified":true
}
},
"amount":"2312305224",
"amountFormatted":"2312.305224",
"amountUsd":"2311.766457",
"minimumAmount":"2266059120"
},
"refundCurrency":{
"currency":{
"chainId":8453,
"address":"0x0000000000000000000000000000000000000000",
"symbol":"ETH",
"name":"Ether",
"decimals":18,
"metadata":{
"logoURI":"https://assets.relay.link/icons/1/light.png",
"verified":true
}
},
"amount":"1000000000000000000",
"amountFormatted":"1.0",
"amountUsd":"2317.921203",
"minimumAmount":"1000000000000000000"
},
"totalImpact":{
"usd":"-6.154746",
"percent":"-0.27"
},
"swapImpact":{
"usd":"-4.523770",
"percent":"-0.20"
},
"expandedPriceImpact":{
"swap":{
"usd":"-4.743994"
},
"execution":{
"usd":"-0.02"
},
"relay":{
"usd":"-1.390752"
},
"app":{
"usd":"0"
},
"sponsored":{
"usd":"0"
}
},
"rate":"2312.305224",
"slippageTolerance":{
"origin":{
"usd":"0.000000",
"value":"0",
"percent":"0.00"
},
"destination":{
"usd":"46.004152",
"value":"46246104",
"percent":"1.99"
}
},
"timeEstimate":2,
"userBalance":"0",
"isFixedRate":false,
"route":{
"origin":{
"inputCurrency":{
"currency":{
"chainId":8453,
"address":"0x0000000000000000000000000000000000000000",
"symbol":"ETH",
"name":"Ether",
"decimals":18,
"metadata":{
"logoURI":"https://assets.relay.link/icons/1/light.png",
"verified":true
}
},
"amount":"1000000000000000000",
"amountFormatted":"1.0",
"amountUsd":"2317.921203",
"minimumAmount":"1000000000000000000"
},
"outputCurrency":{
"currency":{
"chainId":8453,
"address":"0x0000000000000000000000000000000000000000",
"symbol":"ETH",
"name":"Ether",
"decimals":18,
"metadata":{
"logoURI":"https://assets.relay.link/icons/1/light.png",
"verified":true
}
},
"amount":"1000000000000000000",
"amountFormatted":"1.0",
"amountUsd":"2317.921203",
"minimumAmount":"1000000000000000000"
},
"router":"relay"
},
"destination":{
"inputCurrency":{
"currency":{
"chainId":3586256,
"address":"0",
"symbol":"USDC (Perp)",
"name":"USD Coin (Perp)",
"decimals":6,
"metadata":{
"logoURI":"https://ethereum-optimism.github.io/data/USDC/logo.png",
"verified":true
}
},
"amount":"2312305224",
"amountFormatted":"2312.305224",
"amountUsd":"2311.766457",
"minimumAmount":"2266059120"
},
"outputCurrency":{
"currency":{
"chainId":3586256,
"address":"0",
"symbol":"USDC (Perp)",
"name":"USD Coin (Perp)",
"decimals":6,
"metadata":{
"logoURI":"https://ethereum-optimism.github.io/data/USDC/logo.png",
"verified":true
}
},
"amount":"2312305224",
"amountFormatted":"2312.305224",
"amountUsd":"2311.766457",
"minimumAmount":"2266059120"
},
"router":"relay"
}
}
},
"protocol":{
"v2":{
"orderId":"0xb86a968b9c157fc6ab0e30ac13b7c9e8fe5ed28007b43da606737bca5f00cf6d",
"orderData":{
"version":"v1",
"solverChainId":"base",
"solver":"0xf70da97812cb96acdf810712aa562db8dfa3dbef",
"salt":"0xa1fc4e8df304b84b48fe04ec56e5e131e3a2dff4760d792845069edadd1c30f3",
"inputs":[
{
"payment":{
"chainId":"base",
"currency":"0x0000000000000000000000000000000000000000",
"amount":"1000000000000000000",
"weight":"1"
},
"refunds":[
{
"chainId":"base",
"recipient":"0xf3d63166f0ca56c3c1a3508fce03ff0cf3fb691e",
"currency":"0x0000000000000000000000000000000000000000",
"minimumAmount":"0",
"deadline":1777644048,
"extraData":"0x000000000000000000000000b92fe925dc43a0ecde6c8b1a2709c170ec4fff4f"
},
{
"chainId":"lighter",
"recipient":"509564",
"currency":"0",
"minimumAmount":"0",
"deadline":1777644048,
"extraData":"0x"
}
]
}
],
"output":{
"chainId":"lighter",
"payments":[
{
"recipient":"509564",
"currency":"0",
"minimumAmount":"2266059120",
"expectedAmount":"2312305224"
}
],
"calls":[
],
"deadline":1777644048,
"extraData":"0x"
},
"fees":[
]
},
"paymentDetails":{
"chainId":"base",
"depository":"0x4cd00e387622c35bddb9b4c962c136462338bc31",
"currency":"0x0000000000000000000000000000000000000000",
"amount":"1000000000000000000"
}
}
}
}
originChainId: 8453- Depositing from BasedestinationChainId: 3586256- Lighter chain IDrecipient: "509564"- Your Lighter account index (replace with your actual account index)
How to withdraw
curl 'https://api.relay.link/quote/v2' \
-H 'content-type: application/json' \
-d '{
"user": "509564",
"originChainId": 3586256,
"destinationChainId": 8453,
"originCurrency": "0",
"destinationCurrency": "0x0000000000000000000000000000000000000000",
"recipient": "0x03508bB71268BBA25ECaCC8F620e01866650532c",
"tradeType": "EXACT_INPUT",
"amount": "1000000"
}'
{
"steps": [
{
"id": "deposit",
"action": "Confirm transaction in your wallet",
"description": "Depositing funds to the relayer to execute the swap for ETH",
"kind": "transaction",
"items": [
{
"status": "incomplete",
"data": {
"action": {
"type": "transfer",
"parameters": {
"toAccountIndex": 723071,
"assetIndex": 3,
"fromRouteType": 0,
"toRouteType": 0,
"amount": 1000000,
"usdcFee": 3000000,
"memo": "0xfc88e4016659ca122b91dae1aedbb9038e09693a7ce33a1ed1a053d71bdb6aa2"
}
}
},
"check": {
"endpoint": "/intents/status/v3?requestId=0x67ef65da60de7815d1fa42546dbee934b97d67f18bf5eb536ab616449a436aa3",
"method": "GET"
}
}
],
"requestId": "0x67ef65da60de7815d1fa42546dbee934b97d67f18bf5eb536ab616449a436aa3",
"depositAddress": ""
}
],
"fees": {
"gas": {
"currency": {
"chainId": 3586256,
"address": "0",
"symbol": "USDC (Perp)",
"name": "USD Coin (Perp)",
"decimals": 6,
"metadata": {
"logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png",
"verified": true
}
},
"amount": "3000000",
"amountFormatted": "3.0",
"amountUsd": "2.999505",
"minimumAmount": "3000000"
},
"relayer": {
"currency": {
"chainId": 3586256,
"address": "0",
"symbol": "USDC (Perp)",
"name": "USD Coin (Perp)",
"decimals": 6,
"metadata": {
"logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png",
"verified": true
}
},
"amount": "22319",
"amountFormatted": "0.022319",
"amountUsd": "0.022315",
"minimumAmount": "22319"
},
"relayerGas": {
"currency": {
"chainId": 3586256,
"address": "0",
"symbol": "USDC (Perp)",
"name": "USD Coin (Perp)",
"decimals": 6,
"metadata": {
"logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png",
"verified": true
}
},
"amount": "1518",
"amountFormatted": "0.001518",
"amountUsd": "0.001518",
"minimumAmount": "1518"
},
"relayerService": {
"currency": {
"chainId": 3586256,
"address": "0",
"symbol": "USDC (Perp)",
"name": "USD Coin (Perp)",
"decimals": 6,
"metadata": {
"logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png",
"verified": true
}
},
"amount": "20801",
"amountFormatted": "0.020801",
"amountUsd": "0.020798",
"minimumAmount": "20801"
},
"app": {
"currency": {
"chainId": 3586256,
"address": "0",
"symbol": "USDC (Perp)",
"name": "USD Coin (Perp)",
"decimals": 6,
"metadata": {
"logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png",
"verified": true
}
},
"amount": "0",
"amountFormatted": "0.0",
"amountUsd": "0",
"minimumAmount": "0"
},
"subsidized": {
"currency": {
"chainId": 3586256,
"address": "0",
"symbol": "USDC (Perp)",
"name": "USD Coin (Perp)",
"decimals": 6,
"metadata": {
"logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png",
"verified": true
}
},
"amount": "0",
"amountFormatted": "0.0",
"amountUsd": "0",
"minimumAmount": "0"
}
},
"details": {
"operation": "swap",
"sender": "509564",
"recipient": "0x03508bB71268BBA25ECaCC8F620e01866650532c",
"currencyIn": {
"currency": {
"chainId": 3586256,
"address": "0",
"symbol": "USDC (Perp)",
"name": "USD Coin (Perp)",
"decimals": 6,
"metadata": {
"logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png",
"verified": true
}
},
"amount": "1000000",
"amountFormatted": "1.0",
"amountUsd": "0.999835",
"minimumAmount": "1000000"
},
"currencyOut": {
"currency": {
"chainId": 8453,
"address": "0x0000000000000000000000000000000000000000",
"symbol": "ETH",
"name": "Ether",
"decimals": 18,
"metadata": {
"logoURI": "https://assets.relay.link/icons/1/light.png",
"verified": true
}
},
"amount": "422039092891785",
"amountFormatted": "0.000422039092891785",
"amountUsd": "0.977171",
"minimumAmount": "404777693992511"
},
"refundCurrency": {
"currency": {
"chainId": 3586256,
"address": "0",
"symbol": "USDC (Perp)",
"name": "USD Coin (Perp)",
"decimals": 6,
"metadata": {
"logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png",
"verified": true
}
},
"amount": "1000000",
"amountFormatted": "1.0",
"amountUsd": "0.999835",
"minimumAmount": "1000000"
},
"totalImpact": {
"usd": "-0.022664",
"percent": "-2.27"
},
"swapImpact": {
"usd": "-0.000349",
"percent": "-0.03"
},
"expandedPriceImpact": {
"swap": {
"usd": "-0.000548"
},
"execution": {
"usd": "-0.021517"
},
"relay": {
"usd": "-0.000599"
},
"app": {
"usd": "0"
},
"sponsored": {
"usd": "0"
}
},
"rate": "0.000422039092891785",
"slippageTolerance": {
"origin": {
"usd": "0.000000",
"value": "0",
"percent": "0.00"
},
"destination": {
"usd": "0.039869",
"value": "17261398899274",
"percent": "4.08"
}
},
"timeEstimate": 3,
"userBalance": "0",
"isFixedRate": false,
"route": {
"origin": {
"inputCurrency": {
"currency": {
"chainId": 3586256,
"address": "0",
"symbol": "USDC (Perp)",
"name": "USD Coin (Perp)",
"decimals": 6,
"metadata": {
"logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png",
"verified": true
}
},
"amount": "1000000",
"amountFormatted": "1.0",
"amountUsd": "0.999835",
"minimumAmount": "1000000"
},
"outputCurrency": {
"currency": {
"chainId": 3586256,
"address": "0",
"symbol": "USDC (Perp)",
"name": "USD Coin (Perp)",
"decimals": 6,
"metadata": {
"logoURI": "https://ethereum-optimism.github.io/data/USDC/logo.png",
"verified": true
}
},
"amount": "1000000",
"amountFormatted": "1.0",
"amountUsd": "0.999835",
"minimumAmount": "1000000"
},
"router": "relay"
},
"destination": {
"inputCurrency": {
"currency": {
"chainId": 8453,
"address": "0x0000000000000000000000000000000000000000",
"symbol": "ETH",
"name": "Ether",
"decimals": 18,
"metadata": {
"logoURI": "https://assets.relay.link/icons/1/light.png",
"verified": true
}
},
"amount": "422039092891785",
"amountFormatted": "0.000422039092891785",
"amountUsd": "0.977171",
"minimumAmount": "404777693992511"
},
"outputCurrency": {
"currency": {
"chainId": 8453,
"address": "0x0000000000000000000000000000000000000000",
"symbol": "ETH",
"name": "Ether",
"decimals": 18,
"metadata": {
"logoURI": "https://assets.relay.link/icons/1/light.png",
"verified": true
}
},
"amount": "422039092891785",
"amountFormatted": "0.000422039092891785",
"amountUsd": "0.977171",
"minimumAmount": "404777693992511"
},
"router": "relay"
}
}
},
"protocol": {
"v2": {
"orderId": "0xfc88e4016659ca122b91dae1aedbb9038e09693a7ce33a1ed1a053d71bdb6aa2",
"orderData": {
"version": "v1",
"solverChainId": "base",
"solver": "0xf70da97812cb96acdf810712aa562db8dfa3dbef",
"salt": "0x686091e7a544ba90af1b4d25ee805b7520b7a1f76bea9097503d3565ef099c27",
"inputs": [
{
"payment": {
"chainId": "lighter",
"currency": "0",
"amount": "1000000",
"weight": "1"
},
"refunds": [
{
"chainId": "lighter",
"recipient": "509564",
"currency": "0",
"minimumAmount": "0",
"deadline": 1777647416,
"extraData": "0x"
},
{
"chainId": "base",
"recipient": "0x03508bB71268BBA25ECaCC8F620e01866650532c",
"currency": "0x0000000000000000000000000000000000000000",
"minimumAmount": "0",
"deadline": 1777647416,
"extraData": "0x000000000000000000000000b92fe925dc43a0ecde6c8b1a2709c170ec4fff4f"
}
]
}
],
"output": {
"chainId": "base",
"payments": [
{
"recipient": "0x03508bB71268BBA25ECaCC8F620e01866650532c",
"currency": "0x0000000000000000000000000000000000000000",
"minimumAmount": "404777693992511",
"expectedAmount": "422039092891785"
}
],
"calls": [],
"deadline": 1777647416,
"extraData": "0x000000000000000000000000b92fe925dc43a0ecde6c8b1a2709c170ec4fff4f"
},
"fees": []
},
"paymentDetails": {
"chainId": "lighter",
"depository": "723071",
"currency": "0",
"amount": "1000000"
}
}
}
}
{
"data": {
"action": {
"type": "transfer",
"parameters": {
"toAccountIndex": 723071,
"assetIndex": 3,
"fromRouteType": 0,
"toRouteType": 0,
"amount": 1000000,
"usdcFee": 3000000,
"memo": "0xfc88e4016659ca122b91dae1aedbb9038e09693a7ce33a1ed1a053d71bdb6aa2"
}
}
}
}
data.action are:
| Property | Type | Description |
|---|---|---|
| type | string | The Lighter action to perform. For withdrawals this is always transfer. |
| toAccountIndex | number | The Lighter account index to transfer funds to (the relayer’s account that executes the fill). |
| assetIndex | number | Identifier of the asset being transferred on Lighter (e.g. 3 for USDC). |
| fromRouteType | number | The route type to debit from on the sender’s Lighter account. |
| toRouteType | number | The route type to credit on the recipient Lighter account. |
| amount | number | Amount of the asset to transfer, in the asset’s smallest unit. |
| usdcFee | number | Fee paid in USDC, in the asset’s smallest unit, covering Lighter execution costs. |
| memo | string | Hex-encoded Relay requestId used to correlate the Lighter transfer with the Relay order. |
SDK
To use the SDK with Lighter, install and configure the Lighter wallet adapter.yarn add @relayprotocol/relay-lighter-wallet-adapter @relayprotocol/relay-sdk viem
accountApiKey, or storage paths), you also need the Lighter SDK:
yarn add @relay-protocol/lighter-ts-sdk