Cover photo

Getting started with Spectra on the Stellar Network - Wallet, Bridge & Order Book Usage [Beginner Guide]

Spectra is deployed on the Stellar network. The deployment brings fixed-income markets to Stellar assets, traded through an order book. Yield that already accrues on the network becomes tradable at a rate its holder sets.

This guide is split into four parts. The first three are for users arriving from the Ethereum ecosystem, covering how to obtain a Stellar-native wallet and move tokens across. Existing Stellar users can go straight to part four.

→  1. Obtaining a Stellar-native wallet

→  2. Bridging from EVM to Stellar

→  3. Obtaining USDC on Stellar

→  4. Accessing Spectra on Stellar and placing a first PT and YT order

ℹ️ This guide links to wallets, bridges and exchanges operated by third parties across the Stellar ecosystem. Spectra doesn't control those interfaces or their terms, so worth checking what's on screen before confirming anything there. Nothing here is financial advice, and every transaction is the reader's own decision.

1. Obtaining a Stellar-native wallet

Completion time: approximately 5 minutes.

Freighter is a widely used wallet for the Stellar network. This guide is based on its browser extension throughout.

Official website: https://freighter.app

post image

Step 1. Create a new wallet

After installing the extension, the following screen is displayed.

post image

Select [Create new wallet] to continue.

Step 2. Create a password

post image

This password unlocks the wallet on this browser. Store it somewhere safe.

Step 3. Show the recovery phrase

Read the warnings, then select [Show recovery phrase].

post image

Step 4. Save the recovery phrase

post image

Save the phrase offline, on paper. It grants full access to the wallet and its funds, and it is the only way to restore the account in another browser. Nobody from Stellar, Freighter or Spectra will ever ask for it.

Step 5. Confirm the recovery phrase

post image

Re-enter the words in the order they were displayed in the previous step. The [Skip] option is available here, though confirming is what verifies the phrase was recorded correctly.

Step 6. Setup complete

post image

Step 7. Access the wallet

In the top right corner of the browser window, select the puzzle icon to find Freighter in the extensions dropdown. Pin it for easier access.

post image

Step 8. View the Stellar account

post image

The account now exists on the Stellar network and is ready to be funded.

2. Bridging from EVM to Stellar

This part covers moving funds from any popular Ethereum-based network to Stellar. We will use Allbridge.

Access via: https://allbridge.io

On the Allbridge homepage, select [Swap Native].

post image

This opens the page called Gas, where a popular asset such as ETH, USDC or EURC can be sent into XLM, the native token of Stellar.

Connect an EVM wallet such as MetaMask or Rabby.

post image

Enter the amount to bridge. We will go with $5, which covers the account reserve and leaves enough to work with in the sections below.

post image

Return to the Freighter wallet and copy the Stellar address from the dropdown.

post image

Paste the address into the output field on the Allbridge Gas interface.

post image

Select [Create transaction] to reach the summary step.

post image

Confirm the input and output addresses, then select [Send]. The EVM wallet prompts for confirmation.

post image

Once confirmed, a progress bar tracks the bridge, which takes around three minutes.

post image

This is the final message shown on that page once the transfer completes.

post image

Back in the wallet window, the bridged funds are visible.

post image

3. Obtaining USDC on Stellar

For this step we will use Aquarius, a popular DEX on the Stellar network.

Access via: https://aqua.network/swap/

post image

Select [Connect Wallet] to open the wallet selector.

post image

Choose the Stellar Wallets option, then pick Freighter from the list.

post image

Freighter prompts for a connection confirmation.

post image

Once connected, the swap is ready to be set up.

post image

Select USDC in the output token selector, then select [Add USDC Trustline].

A Stellar trustline is an explicit, account-level opt-in on the Stellar network. It allows a wallet to hold, receive and trade a specific non-native asset, such as USDC or custom tokens, from a designated issuer. Except for the native token XLM, a trustline is required before any wallet can accept an asset.

Adding a trustline is confirmed in Freighter the same way as any other Stellar transaction.

Once confirmed, enter an amount into the XLM input field to see the expected USDC output.

post image

Review the summary window and select [Confirm Swap].

post image

Aquarius returns the following messages once the swap confirms onchain.

post image

The newly acquired USDC is visible in the Freighter extension.

post image

4. Accessing Spectra on Stellar

Access the Spectra deployment on Stellar via: https://app.spectra.finance/stellar

This opens the list of fixed-term markets on Spectra, denominated in USDC and EURC, among others.

We will begin with Fixed Rates, the first entry under Products. Select the USDC market maturing Nov 01 2026 to open it.

What the market does

Before we start clicking, a minute on what Spectra does.

Assets that generate yield do so at a rate that moves. Take the market we will use for this walkthrough: USDC supplied to Blend, a lending platform on Stellar. Its rate ranged from 6% to 8.6% over the past 90 days, fluctuating with utilization. Holding the asset means accepting whatever the rate is on any given day.

post image

Source: https://defillama.com/yields/pool/ecf788e3-d2ef-4fdd-9ece-8a2d96226ddf?range=90d

Spectra turns that moving rate into something with a price. Each market has a maturity date and two instruments trading against it.

→  Principal Tokens (PT) carry the claim on the asset, redeemable one for one at maturity. Buying one below its redemption value fixes the outcome over a known period, whatever the underlying rate does afterwards.

→  Yield Tokens (YT) carry the variable yield accruing until that same date. Buying one takes the opposite side, gaining when the asset yields more than the market expected.

Two views of the same market, two sides of the same trade. One participant wants certainty on the rate, another wants exposure to where it goes, and the market prices the difference between them.

This is what the Spectra deployment brings to Stellar. Assets already generating yield on the network gain a market where that yield has a price and two sides anyone can take.

Today, every Spectra market on Stellar trades through an order book. Orders rest at the rate their owner set, and they fill when someone takes the other side. A swap purchase fills against those resting orders directly.

So there are two ways in.

→  Take the rate available on the book right now, in one transaction via the Swap option. That is what the next section covers.

→  Set our own rate and leave the order resting until someone meets it via the Limit option. That is the Pro Way, further down.

The Simple Path: obtaining our first Principal Token

We start on the Fixed Rate (PT) menu tab, with [Buy] and [Swap] selected in the trading panel. This is the default view when any market opens.

post image

The market header carries the fixed parameters: the maturity date, the token the market is quoted in, and the rate currently available on the book.

Type the amount to spend into the "You pay" field. We will go with a 1 USDC sample.

post image

The interface prices the order against the book and shows what we receive: 1.015533 PT-USDC. The lines below explain how it got there.

Fills: 1 order. The purchase is covered by a single order resting on the book.

Avg fill rate: 7.20% APY. The rate we lock in.

You spend: ≈ 0.998451 USDC. The amount actually debited for this fill.

From book: 100%. The entire fill came from orders resting on the book.

One notice sits above the button: paying with USDC wraps it into sw-USDC and fills in a single transaction. Spectra markets are built on interest-bearing tokens, and this one uses the wrapped USDC. Supplying plain USDC handles the wrapping inside the same transaction, so there is one signature to approve.

post image

Select [Fill from book].

That is it. We hold our first Principal Token, and the position is visible under [My Positions] in the bottom right panel.

In our example, at maturity on Nov 01 2026, each Principal Token is exchanged for 1 USDC, so our 1.015533 PT-USDC becomes 1.015533 USDC. Over the time left until that date, this works out to an annualized fixed rate of 7.20%. The rate is set the moment the transaction confirms and holds all the way to maturity, regardless of what the underlying Blend rate does in the meantime.

The panel on the right is the order book. Every row is an order someone left waiting, with the rate on the left and the size on the right. The number in the middle, 7.20%, is where the market currently sits. The upper half holds the orders available to buy into, and the row closest to that middle number carries the best rate, which is why our order filled at 7.20%.

Holding to maturity is the simple path, and nothing else is required to reach the fixed outcome. Before that date the Principal Token stays tradable. It can be sold back into the book at the prevailing rate at any point, or offered at a rate we choose using the [Limit] tool covered in the next section.

The Limit Order Way: Setting Our Own Rate

The [Swap] and [Limit] switch sits above every trading panel on Spectra Stellar. Swap takes the rate currently available on the book. Limit lets us set our own rate and wait for someone to meet it.

Both modes work everywhere: Principal Tokens and Yield Tokens, buying and selling. Four combinations, one panel.

For this walkthrough we will set our rate on Yield Tokens, which gives us a chance to cover the other instrument at the same time. Everything shown here works identically on the Fixed Rate (PT) tab.

Obtaining Yield Tokens

Yield Tokens carry the other half of the market. A Principal Token fixes the outcome. A Yield Token holds exposure to the variable yield of the asset until maturity, so it gains when the underlying rate runs above what the market priced in.

Switch to the Yield Leverage (YT) tab, then select [Limit] on the upper right of the trading panel.

post image

Notice the order book flips. It is the same set of orders seen from the other side, and the sizes match across both views. The direction of value reverses too: for Yield Tokens, a lower implied APY makes the YT cheaper.

One unit of the interest-bearing token stands behind one Principal Token and one Yield Token, which is why the two books hold the same orders at the same sizes. An order to buy PT is the same order as an offer to sell YT. The interface handles this in the background, so there is nothing to do here beyond switching tabs.

The tab is called Yield Leverage because a Yield Token gives multiplied exposure to a rate for a fraction of the cost of holding the asset. A small amount of USDC buys many YT, and that position collects the variable yield of the same number of underlying units until maturity. Nothing is borrowed and there is nothing to liquidate. The full amount committed is at risk if the rate settles below what the market priced in, since the Yield Token expires worthless at maturity once its yield has been paid out.

Setting our own rate

The panel carries three inputs.

Input. The amount of USDC we commit to the order. We will go with 1 USDC.

Buy YT at Implied APY. The rate we set ourselves. The implied APY could be understood as “what the market thinks the actual rate of the yield-generating asset should be”. A Yield Token gets cheaper as the implied APY goes down, so a buyer sets a number below the current market rate. We will go with 6%, and the interface confirms it improves on the market at 7.20%.

Expires in. How long the order stays live. We will set it for 1 week. The dropdown runs from minutes and hours through days and weeks, all the way to Until Maturity.

post image

Output (est.) shows what we receive if the order fills in full. At 6%, our 1 USDC would buy 77.899397 YT-USDC.

The two fields move together. Lowering the implied APY raises the output, because a cheaper Yield Token means the same 1 USDC buys more of them. Setting 5% instead of 6% would show a larger number in the output field, and 3% larger still.

That is the number we receive if someone accepts our terms.

This is the balance the [Limit] tool works on. A rate closer to the market fills sooner. A rate further from it yields a better outcome and a lower chance that somebody meets it before the order expires. Our 6% sits close to the 6.66% row already resting on the book, so the order has a genuine chance of filling within its week.

A resting order carries no price impact and no negative slippage at any size. It fills at the rate set, or it waits. This holds for an order of any size, which is what makes the tool useful well beyond the amounts in this guide.

Select [Place Order].

A confirmation window opens showing the two steps involved: Approve, then Place order. The progress marker sits on the first one, and Freighter prompts for confirmation.

post image

Approval grants the market access to the USDC we committed. The window advances to the second step and prompts again, this time to place the order itself.

Once both are confirmed, our order sits on the book at 6.00%, visible to everyone else in the market, waiting for someone to take the other side.

post image

Our order was placed in the lower half of the book. The upper half holds orders available to buy into, the lower half holds orders available to sell into, and a resting buy order waits there for a seller to meet it.

Tracking the order

The [My Orders] tab lists anything live. Active Orders carries the type, side, committed amount, implied APY, fill progress, status, and countdown to expiry. The [Cancel] action at the end of the row pulls the order off the book and frees the committed amount. Anything already filled, canceled, or expired moves to Past Orders.

Closing thoughts

We covered the full path from an empty browser to a resting order on the book.

→  A Stellar-native wallet, funded through a bridge from any EVM network

→  USDC obtained onchain and a trustline opened

→  A Principal Token bought at the rate available on the book, in one transaction

→  A Yield Token ordered at a rate we set ourselves

Two instruments, two ways in. Everything else on Spectra is a variation on what we just did.

The same market list holds USDC and EURC markets with different maturities, and more assets follow as the deployment grows. The [Buy] and [Sell] toggle works the same way in every direction, so a position can be exited the way it was entered. The [Limit] switch is available on both instruments and on both sides.

For anyone already holding a yield-bearing asset, the [Tokenize] button in the market header opens the manual path into both instruments at once.

Two things worth carrying forward.

A fixed rate is fixed at entry. Buying a Principal Token sets the outcome at maturity, regardless of what the underlying rate does afterward. Selling before that date happens at whatever the market pays at that time.

A resting order carries no price impact at any size. It fills at the rate set, or it waits. That holds for the amounts in this guide and for anything larger.

Where to go from here

→  The Stellar markets: https://app.spectra.finance/fixed-rate?network=stellar

→  Follow Spectra: https://twitter.com/spectra_finance

→  Questions: https://discord.com/invite/spectrafinance