<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>OPSTOCK - Blog</title>
    <subtitle>The best way to buy tokenized stocks and ETFs on Ethereum, from a dollar, held in your own wallet, with no seed phrase and no gas.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://opcode.fi/blog/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://opcode.fi/blog/"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-08-06T00:00:00+00:00</updated>
    <id>https://opcode.fi/blog/atom.xml</id>
    <entry xml:lang="en">
        <title>The address book</title>
        <published>2026-08-06T00:00:00+00:00</published>
        <updated>2026-08-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            OPSTOCK
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://opcode.fi/blog/address-book/"/>
        <id>https://opcode.fi/blog/address-book/</id>
        
        <content type="html" xml:base="https://opcode.fi/blog/address-book/">&lt;p&gt;Moving money out of a wallet usually means pasting an address and hoping. One wrong character and it is gone.&lt;&#x2F;p&gt;
&lt;p&gt;OPSTOCK now keeps an address book. Check an address once, save it, then pick it from a list.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-it-is&quot;&gt;What it is&lt;&#x2F;h2&gt;
&lt;p&gt;One book of labelled addresses on your account. Each entry has a label, an address, and a scope. It lives with the account rather than the browser, so it is there on any device you sign into.&lt;&#x2F;p&gt;
&lt;p&gt;Withdrawals go to a saved address. The withdraw screen has no field to paste into, so an address you have not saved cannot receive a withdrawal. Until you save one, the control reads &quot;No saved addresses&quot;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;scope-decides-what-an-address-can-receive&quot;&gt;Scope decides what an address can receive&lt;&#x2F;h2&gt;
&lt;p&gt;You set a scope when you save the address: withdrawals, trades, or both. It is enforced strictly. An address saved for withdrawals cannot receive a trade. An address saved for trades cannot receive a withdrawal.&lt;&#x2F;p&gt;
&lt;p&gt;What kind of transfer it is comes from the order itself, not from the app saying so. A withdrawal is a USDC to USDC order, and that is what the scope is checked against.&lt;&#x2F;p&gt;
&lt;p&gt;So a cold wallet you only ever withdraw to can be saved for withdrawals alone, and nothing else will route to it.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;a-trade-can-land-in-another-wallet&quot;&gt;A trade can land in another wallet&lt;&#x2F;h2&gt;
&lt;p&gt;Pick a recipient for a trade and that address becomes the receiver of the order you sign. The token you bought settles on-chain to that wallet, in the same transaction that fills the order. There is no second transfer afterwards.&lt;&#x2F;p&gt;
&lt;p&gt;The picker opens with &quot;My wallet&quot; first, so sending to yourself stays the default.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;every-change-is-signed-from-your-wallet&quot;&gt;Every change is signed from your wallet&lt;&#x2F;h2&gt;
&lt;p&gt;Saving an address takes more than a click.&lt;&#x2F;p&gt;
&lt;p&gt;A confirmation opens first. It is titled &quot;Confirm address&quot;, badged &quot;External address&quot;, and it reads: &quot;You are saving an address that is not your wallet. Check every character before you save it.&quot; The address is set in mono with the first eight and last eight characters highlighted. A checkbox reads &quot;I checked this address is correct.&quot; The &quot;Confirm and continue&quot; button stays disabled until you tick it.&lt;&#x2F;p&gt;
&lt;p&gt;If you have MFA enrolled, OPSTOCK asks for it again before the signature.&lt;&#x2F;p&gt;
&lt;p&gt;Then your wallet signs. The server issues a short-lived challenge, valid for 300 seconds. You sign an EIP-712 message covering the owner, the operation, the address, the scope, the label, and that challenge. The label and the scope sit inside the signature, so neither can be edited later without breaking it. The signature is stored with the entry.&lt;&#x2F;p&gt;
&lt;p&gt;Removing an address is signed the same way.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-it-is-built-like-this&quot;&gt;Why it is built like this&lt;&#x2F;h2&gt;
&lt;p&gt;Sessions get stolen. Signing keys are harder to take. Because saving an address needs a signature from your wallet key, a stolen session on its own cannot add a payout address or point an existing one somewhere else.&lt;&#x2F;p&gt;
&lt;p&gt;That signature is then checked again every time funds are about to move: by the app before it will offer an entry, by the API when it quotes, by the API again when the order is submitted, and by the settlement service on its own. Four checks. An entry that does not verify against your wallet is hidden rather than offered, and the list says so: &quot;Some saved addresses could not be verified for this wallet and are hidden.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;That makes the book tamper-evident, not private. Labels and addresses sit on our servers in plain text, and we can read them. What the signature gives you is that nothing gets into the book, or changes inside it, without your key.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;using-it&quot;&gt;Using it&lt;&#x2F;h2&gt;
&lt;p&gt;Open the account menu and choose Address book.&lt;&#x2F;p&gt;
&lt;p&gt;Saving one takes a label, like &quot;Cold wallet&quot;, the address, and what it is for. Addresses are validated against the EIP-55 checksum. A label is required. The same address cannot be saved twice. Your own wallet cannot be saved either, since it is always available.&lt;&#x2F;p&gt;
&lt;p&gt;When you send, the picker is titled &quot;Send to&quot; and its search box matches on label or address. Each row can copy the address, show or hide it, or remove it. Every address in the book is an Ethereum mainnet address.&lt;&#x2F;p&gt;
&lt;p&gt;Check an address carefully once. After that you pick it from a list.&lt;&#x2F;p&gt;
&lt;p&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;opcode.fi&#x2F;blog&#x2F;opcode-beta&#x2F;&quot;&gt;beta post&lt;&#x2F;a&gt; walks the rest of the flow, from your first quote to Ethereum settlement.&lt;&#x2F;p&gt;
&lt;p&gt;Start at &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;app.opcode.fi&#x2F;&quot;&gt;app.opcode.fi&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Your agent trades. Any signer you want.</title>
        <published>2026-08-06T00:00:00+00:00</published>
        <updated>2026-08-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            OPSTOCK
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://opcode.fi/blog/mcp-server/"/>
        <id>https://opcode.fi/blog/mcp-server/</id>
        
        <content type="html" xml:base="https://opcode.fi/blog/mcp-server/">&lt;p&gt;OPSTOCK has an MCP server now. Run it next to your AI assistant and the assistant can trade: listed tokenized stocks and ETFs, bought and sold with USDC on Ethereum. Ask it to buy something and it buys it.&lt;&#x2F;p&gt;
&lt;p&gt;It runs on your own machine, against your own wallet.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-tools&quot;&gt;The tools&lt;&#x2F;h2&gt;
&lt;p&gt;The surface is small. Find an asset and check whether it can trade right now. Price it. Trade it. Follow the order to settlement. Read prices and balances. Move money out, to an address you vetted first.&lt;&#x2F;p&gt;
&lt;p&gt;Buying, selling and withdrawing all work. Real trades settled on Ethereum mainnet while it was being built.&lt;&#x2F;p&gt;
&lt;p&gt;Trading follows the hours of the market behind each asset, and availability varies by jurisdiction.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;any-signer-you-want&quot;&gt;Any signer you want&lt;&#x2F;h2&gt;
&lt;p&gt;A standard encrypted keystore file works out of the box. Point the server at it and it signs there.&lt;&#x2F;p&gt;
&lt;p&gt;If you want a different arrangement, you can have one. Two things are hooked separately from the trading code: where the password comes from, and whether a given signature is allowed to happen at all. Replace either one on its own. A hardware wallet, an HSM, a remote signer or something you wrote yourself drops in the same way, and the code that trades does not change.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;every-trade-waits-for-you&quot;&gt;Every trade waits for you&lt;&#x2F;h2&gt;
&lt;p&gt;The agent stages a trade and signs nothing until you say so. What you approve is a guaranteed minimum received rather than a price, so you are never racing a quote and taking your time cannot cost you anything. An approval is good for exactly one trade.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-first-release&quot;&gt;The first release&lt;&#x2F;h2&gt;
&lt;p&gt;This is a first release, and it is beta, like the rest of OPSTOCK right now. The code is at &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;OPSTOCK-fi&#x2F;mcp-OPSTOCK&quot;&gt;github.com&#x2F;OPSTOCK-fi&#x2F;mcp-OPSTOCK&lt;&#x2F;a&gt;, under MIT.&lt;&#x2F;p&gt;
&lt;p&gt;It trades on Ethereum mainnet, through the same quotes and the same settlement as the app. The &lt;a href=&quot;https:&#x2F;&#x2F;opcode.fi&#x2F;blog&#x2F;opcode-beta&#x2F;&quot;&gt;beta post&lt;&#x2F;a&gt; walks that flow as a person takes it.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>fund your account with a card</title>
        <published>2026-08-05T00:00:00+00:00</published>
        <updated>2026-08-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            OPSTOCK
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://opcode.fi/blog/fund-with-a-card/"/>
        <id>https://opcode.fi/blog/fund-with-a-card/</id>
        
        <content type="html" xml:base="https://opcode.fi/blog/fund-with-a-card/">&lt;p&gt;Getting money on-chain used to be the hard part. Open an account at an exchange, wait on verification, buy, withdraw to the right network, then come back and start over. Most people quit somewhere in the middle.&lt;&#x2F;p&gt;
&lt;p&gt;You can now buy USDC with a card inside OPSTOCK.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;buy-usdc-with-a-card&quot;&gt;Buy USDC with a card&lt;&#x2F;h2&gt;
&lt;p&gt;Sign up with email and accept the terms. That is the whole setup. Card funding works only on an account you sign in to with email or a passkey.&lt;&#x2F;p&gt;
&lt;p&gt;Open the account menu, choose Deposit, then choose Fiat. Checkout opens in a pop-up window, so allow pop-ups for the site. Pick how you want to pay, set the amount, and confirm.&lt;&#x2F;p&gt;
&lt;p&gt;Payment methods, limits, and country coverage come from the payment provider, not from us. Card funding is off where OPSTOCK is not available.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;it-arrives-ready-to-trade&quot;&gt;It arrives ready to trade&lt;&#x2F;h2&gt;
&lt;p&gt;You get USDC on Ethereum mainnet, sent to the wallet OPSTOCK created for you. Nothing to bridge. No address to paste.&lt;&#x2F;p&gt;
&lt;p&gt;It usually takes a few minutes. OPSTOCK tells you when the money lands, and the balance is there when you go to trade. If you close the checkout window after paying, the deposit still shows up once it clears.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;taking-money-out&quot;&gt;Taking money out&lt;&#x2F;h2&gt;
&lt;p&gt;Card funding adds money only. To take money out, withdraw USDC to an Ethereum address from the same menu. Cashing out to a bank is not available yet.&lt;&#x2F;p&gt;
&lt;p&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;opcode.fi&#x2F;blog&#x2F;opcode-beta&#x2F;&quot;&gt;beta post&lt;&#x2F;a&gt; walks the rest of the flow, from your first quote to Ethereum settlement.&lt;&#x2F;p&gt;
&lt;p&gt;Start at &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;app.opcode.fi&#x2F;&quot;&gt;app.opcode.fi&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>OPSTOCK is now a Bloom petal</title>
        <published>2026-08-05T00:00:00+00:00</published>
        <updated>2026-08-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            OPSTOCK
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://opcode.fi/blog/opcode-petal-for-bloom/"/>
        <id>https://opcode.fi/blog/opcode-petal-for-bloom/</id>
        
        <content type="html" xml:base="https://opcode.fi/blog/opcode-petal-for-bloom/">&lt;p&gt;Bloom is a wallet built for AI agents. It mounts an Ethereum wallet as a folder, so an agent reads state and stages actions with ordinary file commands, while the keys stay outside that folder in an encrypted store. The apps that live in there are called petals. OPSTOCK ships one now.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-your-agent-can-do&quot;&gt;What your agent can do&lt;&#x2F;h2&gt;
&lt;p&gt;Ask for a market, a price, or a position in plain language, and the agent reads it out of the folder: search the catalog by name, check whether an asset can trade right now, pull a chart, read what a wallet holds. Those reads need no account and no session.&lt;&#x2F;p&gt;
&lt;p&gt;Trading needs both. The agent signs the wallet in and accepts terms once, then buys and sells with USDC and withdraws USDC to an address you have vetted.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;you-approve-in-a-browser&quot;&gt;You approve, in a browser&lt;&#x2F;h2&gt;
&lt;p&gt;It prepares each trade, and Bloom signs only after you approve in the browser. The staged trade shows every leg and its all-in cost while it waits for you.&lt;&#x2F;p&gt;
&lt;p&gt;Nothing runs unattended. Every trade waits for a person, and it does not wait long: you have about 45 seconds from the moment the agent stages one, because the quote behind it expires. Past that the agent prices it again and asks again.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;a-basket-approved-once&quot;&gt;A basket, approved once&lt;&#x2F;h2&gt;
&lt;p&gt;&quot;Put $300 into Apple, Microsoft and Nvidia, evenly.&quot; The agent prices all three legs and stages them together, and you approve that plan once. The app takes one trade at a time. Selling a token for the first time is approved on its own, since the allowance for it is granted in the same breath.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-it-does-not-do-yet&quot;&gt;What it does not do yet&lt;&#x2F;h2&gt;
&lt;p&gt;This is the first release and it is beta. Bloom is early software too. There is no scheduled buying and no trading while you are away. USDC is the only token the petal will withdraw, so sell a position before you move it out. It runs against Ethereum mainnet.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;getting-it&quot;&gt;Getting it&lt;&#x2F;h2&gt;
&lt;p&gt;Bloom installs a few petals of its own, and OPSTOCK is not one of them yet, so this one installs from its release archive. The code and the archive are in &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;OPSTOCK-fi&#x2F;bloom-petal-OPSTOCK&quot;&gt;the petal repo&lt;&#x2F;a&gt;, together with a plain list of what is still unverified. Bloom itself is at &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;bloom.directory&quot;&gt;bloom.directory&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Your dollars do not have to sit still</title>
        <published>2026-08-05T00:00:00+00:00</published>
        <updated>2026-08-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            OPSTOCK
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://opcode.fi/blog/savings-dollars/"/>
        <id>https://opcode.fi/blog/savings-dollars/</id>
        
        <content type="html" xml:base="https://opcode.fi/blog/savings-dollars/">&lt;h2 id=&quot;savings-dollars-now-on-OPSTOCK&quot;&gt;Savings dollars, now on OPSTOCK&lt;&#x2F;h2&gt;
&lt;p&gt;Two to start. sUSDS is the savings version of USDS, Sky&#x27;s dollar. sUSDe is the savings version of USDe, Ethena&#x27;s dollar.&lt;&#x2F;p&gt;
&lt;p&gt;Neither one pays you a dividend to claim. The token itself is worth more of its underlying dollar over time, so the balance sitting in your wallet does the earning. The rate is variable and set by the protocol behind each token, not by OPSTOCK. You can check where they stand at &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;spark.fi&quot;&gt;spark.fi&lt;&#x2F;a&gt; and &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;ethena.fi&quot;&gt;ethena.fi&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;a-dollar-swap-costs-0-01&quot;&gt;A dollar swap costs 0.01%&lt;&#x2F;h2&gt;
&lt;p&gt;OPSTOCK charges a flat 0.01% when both sides of a swap are dollar stablecoins. That is one basis point, or 10 cents on a $1,000 swap. The standard trading fee is 0.25%, so a dollar swap is charged a twenty-fifth of it.&lt;&#x2F;p&gt;
&lt;p&gt;You do not need to hold OPSTOCK for that rate. The stablecoin fee replaces the tiered one instead of stacking with it, so every account pays the same 0.01%. An account discount still applies on top, and the charge lands below a basis point rather than rounding away.&lt;&#x2F;p&gt;
&lt;p&gt;Settling on Ethereum has a cost. The quote shows it separately from the fee, as always.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;no-market-hours-to-wait-for&quot;&gt;No market hours to wait for&lt;&#x2F;h2&gt;
&lt;p&gt;A tokenized stock follows the clock of the market behind it. These do not. Cash can move into savings on a Sunday night and be back in USDC before the open.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;getting-a-good-price&quot;&gt;Getting a good price&lt;&#x2F;h2&gt;
&lt;p&gt;On every quote OPSTOCK compares the direct route into the token against the open market, then takes whichever leaves you with more after fees and gas. Before you sign, the quote shows what you receive, the trading fee, and the settlement cost separately.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-to-know&quot;&gt;What to know&lt;&#x2F;h2&gt;
&lt;p&gt;The yield is variable and can change. A savings token can trade a little away from its value in the underlying dollar, and an exit can route through the market rather than the issuer, so what you receive depends on the routes open at that moment. Availability varies by jurisdiction.&lt;&#x2F;p&gt;
&lt;p&gt;Start at &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;app.opcode.fi&#x2F;&quot;&gt;app.opcode.fi&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>OPSTOCK beta is live</title>
        <published>2026-07-29T00:00:00+00:00</published>
        <updated>2026-08-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            OPSTOCK
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://opcode.fi/blog/opcode-beta/"/>
        <id>https://opcode.fi/blog/opcode-beta/</id>
        
        <content type="html" xml:base="https://opcode.fi/blog/opcode-beta/">&lt;h2 id=&quot;browse-markets&quot;&gt;Browse markets&lt;&#x2F;h2&gt;
&lt;p&gt;Browse tokenized stocks and ETFs before you open an account. Search by company or ticker, open a market, and review its details before deciding what to trade.&lt;&#x2F;p&gt;
&lt;p&gt;Trading hours follow the market behind each asset. The app shows market availability as you explore.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;open-your-account&quot;&gt;Open your account&lt;&#x2F;h2&gt;
&lt;p&gt;Sign up with email. OPSTOCK creates an embedded wallet with your account. The wallet holds the USDC you fund and the stock or ETF tokens you receive.&lt;&#x2F;p&gt;
&lt;p&gt;After signing up, add a passkey to use on your phone or computer next time.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;fund-and-trade-with-usdc&quot;&gt;Fund and trade with USDC&lt;&#x2F;h2&gt;
&lt;p&gt;Copy your Ethereum address from the app and send USDC on Ethereum mainnet. Check the network and address carefully before sending. Once the transfer arrives, your balance updates in the app.&lt;&#x2F;p&gt;
&lt;p&gt;Choose a market, select buy or sell, and enter an amount. Trades start from $1. A buy uses USDC and receives a stock or ETF token. A sell uses a holding in your wallet and receives USDC.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;review-the-quote&quot;&gt;Review the quote&lt;&#x2F;h2&gt;
&lt;p&gt;Before you sign, the quote shows what you receive, the trading fee, and the settlement cost separately. Review the full quote.&lt;&#x2F;p&gt;
&lt;p&gt;Quotes reflect current conditions and remain available for a limited time. If a quote expires, request a fresh one and review it again.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;track-ethereum-settlement&quot;&gt;Track Ethereum settlement&lt;&#x2F;h2&gt;
&lt;p&gt;After you sign, OPSTOCK tracks the order as it moves through Ethereum settlement. Follow its status in the app or return to your trade history later.&lt;&#x2F;p&gt;
&lt;p&gt;When settlement completes, the stock or ETF token from a buy, or the USDC from a sell, appears in your embedded wallet. Your trade history keeps the order and its final status in view.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;withdraw-usdc&quot;&gt;Withdraw USDC&lt;&#x2F;h2&gt;
&lt;p&gt;You can withdraw that USDC to another Ethereum address. Save that address in your &lt;a href=&quot;https:&#x2F;&#x2F;opcode.fi&#x2F;blog&#x2F;address-book&#x2F;&quot;&gt;address book&lt;&#x2F;a&gt; first, then choose it in the withdraw screen, enter an amount, and confirm.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;availability&quot;&gt;Availability&lt;&#x2F;h2&gt;
&lt;p&gt;Trading availability varies by jurisdiction and market hours. Review the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;app.opcode.fi&#x2F;#&#x2F;terms&quot;&gt;Terms of Use&lt;&#x2F;a&gt; and &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;app.opcode.fi&#x2F;#&#x2F;privacy-policy&quot;&gt;Privacy Policy&lt;&#x2F;a&gt; before trading.&lt;&#x2F;p&gt;
&lt;p&gt;Start at &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;app.opcode.fi&#x2F;&quot;&gt;app.opcode.fi&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
