<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Operational Security — tagged coverage - FogChain</title>
	<atom:link href="https://www.fogment.com/tags/operational-security/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.fogment.com/tags/operational-security/</link>
	<description>Blockchain news, exchange data and press releases — independently verified.</description>
	<lastBuildDate>Tue, 27 Oct 2026 23:22:07 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>

<image>
	<url>https://www.fogment.com/wp-content/uploads/2026/10/cropped-39cb25f161f59e8c-raccoon-6-32x32.png</url>
	<title>Operational Security — tagged coverage - FogChain</title>
	<link>https://www.fogment.com/tags/operational-security/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Hot Wallet Limits: How Much Is Too Much</title>
		<link>https://www.fogment.com/hot-wallet-limits/</link>
					<comments>https://www.fogment.com/hot-wallet-limits/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Tue, 27 Oct 2026 23:22:07 +0000</pubDate>
				<category><![CDATA[Wallets]]></category>
		<category><![CDATA[Balance Split]]></category>
		<category><![CDATA[Cold Storage]]></category>
		<category><![CDATA[Hot Wallet]]></category>
		<category><![CDATA[Loss Tolerance]]></category>
		<category><![CDATA[Operational Security]]></category>
		<category><![CDATA[Risk Management]]></category>
		<category><![CDATA[Self Custody]]></category>
		<category><![CDATA[Spending Wallet]]></category>
		<category><![CDATA[Wallet Security]]></category>
		<category><![CDATA[Wallet Sizing]]></category>
		<guid isPermaLink="false">https://www.fogment.com/hot-wallet-limits/</guid>

					<description><![CDATA[<p>The workable answer to how much to keep in hot wallet is an amount you could lose twice without changing your plans. Most people answer it with a feeling instead, [&#8230;]</p>
<p>The post <a href="https://www.fogment.com/hot-wallet-limits/">Hot Wallet Limits: How Much Is Too Much</a> appeared first on <a href="https://www.fogment.com">FogChain</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The workable answer to how much to keep in hot wallet is an amount you could lose twice without changing your plans. Most people answer it with a feeling instead, and the feeling scales with the balance rather than with the risk.</p>
<p>Getting how much to keep in hot wallet right is a sizing problem, not a security problem. Security decides whether the wallet can be drained; sizing decides whether that day is an inconvenience or an exit from the asset class.</p>
<ul>
<li><strong>The number is a loss tolerance, not a percentage.</strong> A fixed five percent means a bigger loss every time the portfolio grows.</li>
<li><strong>Size against spending, not holdings.</strong> The wallet exists to move funds, so the spend rate sets the useful balance.</li>
<li><strong>Compromise is fast and total.</strong> There is no partial drain and no chargeback, so the loss is the whole balance on the day it happens.</li>
<li><strong>Friction has a price too.</strong> Moving everything offline has a real time cost, and pretending otherwise produces a wallet people stop using correctly.</li>
</ul>
<h2>The limit is a loss tolerance, not a percentage</h2>
<p>A percentage feels prudent and behaves badly. If you keep ten percent hot and the portfolio doubles, the hot balance doubles with it, and the amount at risk grows without anyone deciding that it should. The wallet did not become safer or more necessary; the arithmetic just moved.</p>
<p>A tolerance is a fixed number in the currency you actually spend. It is the amount whose loss you would notice, absorb, and continue from. That number changes when your income changes, not when the price does.</p>
<p>This is also why the useful question is not &#8220;what proportion&#8221; but &#8220;what would I do the morning after&#8221;. If the answer is that you would keep operating, the balance is sized correctly. If the answer involves borrowing or cancelling something, it is not.</p>
<div class="fog-table not-prose my-6 overflow-x-auto rounded-2xl border border-ink-200/70 bg-surface" data-fog-table><table>
<thead>
<tr>
<th>Where funds sit</th>
<th>What it is for</th>
<th>Time to spend</th>
<th>Cost of a compromise</th>
</tr>
</thead>
<tbody>
<tr>
<td>Phone hot wallet</td>
<td>Daily spending, small transfers, test transactions</td>
<td>Seconds</td>
<td>The entire balance, immediately</td>
</tr>
<tr>
<td>Browser extension wallet</td>
<td>Interacting with applications</td>
<td>Seconds</td>
<td>The entire balance, plus any live approvals</td>
</tr>
<tr>
<td>Second hot wallet on a separate device</td>
<td>Segregating activity by purpose</td>
<td>Minutes</td>
<td>Only the balance in that wallet</td>
</tr>
<tr>
<td>Hardware signer</td>
<td>Holdings you are not moving this month</td>
<td>Minutes, with a device present</td>
<td>The transaction you approve, not the key</td>
</tr>
<tr>
<td>Offline backup tier</td>
<td>Funds you may not touch for a year</td>
<td>Hours to days</td>
<td>Nothing, unless the approval flow is subverted</td>
</tr>
</tbody>
</table></div>
<h2>Three ways to size how much to keep in hot wallet</h2>
<p>Each method produces a number. Where they disagree, take the smallest, because the disagreement is usually about optimism rather than about facts.</p>
<h3>The burn-rate method</h3>
<p>Take what you actually spend from the wallet in a month and divide by thirty. Multiply by the number of days you want to cover before you next top up. Two weeks of cover is a common target, because it survives a holiday and a forgotten top-up without forcing an emergency transfer from cold storage at a bad moment.</p>
<h3>The largest-transaction method</h3>
<p>Size to three times your largest routine transaction. If you regularly move a few hundred in a single transfer, the wallet should hold enough to do that twice with margin, so that a single failure does not leave the next payment stranded. This method produces a larger number than the burn rate when your transfers are lumpy.</p>
<h3>The single-signature method</h3>
<p>Ask what one signature could move if you approved the wrong thing while tired. A hot wallet has no second confirmation, so the answer is the balance. If that number makes you uncomfortable, it is too large, regardless of what the other methods say.</p>
<h2>A worked example</h2>
<p>Assume a portfolio worth $18,000, monthly spending from the wallet of $600, and a largest routine transfer of $400. The burn-rate method gives $20 a day, so fourteen days of cover is $280, rounded to $300. The largest-transaction method gives three times $400, or $1,200. The two numbers differ by $900, and choosing between them is a decision about friction rather than about security.</p>
<p>Price the friction first. A cold signing session takes about fifteen minutes once the device, cable and app are all in the right place. At three sessions a month that is 45 minutes, or roughly $22 at a $30 hourly rate. Over a year, that is about $270 of your time.</p>
<p>Now price the risk. Suppose you judge a drain of the hot wallet to be a one-in-twenty event in a given year. The extra $900 kept hot therefore costs about $45 a year in expected loss. The comparison is $45 of expected loss against $270 of saved time, which argues for the larger balance, and the argument holds until the loss estimate or the time estimate changes.</p>
<p>Two things break the comparison. The first is the tail: a drain is total and immediate, while the time cost is spread evenly and quietly, so the two feel nothing alike on the day. The second is that the estimate of a one-in-twenty year is a guess, and people systematically underestimate it after a quiet year. If the true rate were one in five, the expected loss becomes $180 and the gap narrows sharply.</p>
<blockquote><p>Size the hot wallet to the amount you would still be calm about the morning after, then keep the rest where a single mistake cannot reach it.</p></blockquote>
<h2>What changes how much to keep in hot wallet</h2>
<p>The number moves for reasons that have little to do with price, and reviewing it on a schedule beats reviewing it after an incident.</p>
<h3>How often you actually transact</h3>
<p>Someone paying for things weekly needs a larger float than someone who moves funds twice a quarter. Track a month of real activity before setting the number, because remembered habits are usually busier than actual ones.</p>
<h3>What the wallet is connected to</h3>
<p>A wallet that only sends to addresses you have saved has a smaller attack surface than one that approves contracts on new sites every week. The second kind should hold less, and should be a separate wallet from the first kind rather than the same one used for both.</p>
<h3>How fast you can top up</h3>
<p>If replenishing means a two-day transfer from cold storage, the hot balance needs more headroom. If it means a card purchase or an incoming payment, less. Speed of replenishment is the reason the burn-rate method uses days rather than a fixed amount.</p>
<p>The post <a href="https://www.fogment.com/hot-wallet-limits/">Hot Wallet Limits: How Much Is Too Much</a> appeared first on <a href="https://www.fogment.com">FogChain</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.fogment.com/hot-wallet-limits/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>API Keys: Permissions and Leaks</title>
		<link>https://www.fogment.com/api-key-permissions/</link>
					<comments>https://www.fogment.com/api-key-permissions/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Tue, 27 Oct 2026 23:21:57 +0000</pubDate>
				<category><![CDATA[Exchanges]]></category>
		<category><![CDATA[Access Control]]></category>
		<category><![CDATA[Api Permissions]]></category>
		<category><![CDATA[Automated Trading]]></category>
		<category><![CDATA[Credential Security]]></category>
		<category><![CDATA[Crypto Exchanges]]></category>
		<category><![CDATA[Exchange Api Key]]></category>
		<category><![CDATA[Ip Allowlisting]]></category>
		<category><![CDATA[Key Rotation]]></category>
		<category><![CDATA[Operational Security]]></category>
		<category><![CDATA[Trading Bots]]></category>
		<guid isPermaLink="false">https://www.fogment.com/api-key-permissions/</guid>

					<description><![CDATA[<p>An exchange API key is a credential that lets software trade on your behalf. It is not a password and it should never behave like one: no withdrawal rights, no [&#8230;]</p>
<p>The post <a href="https://www.fogment.com/api-key-permissions/">API Keys: Permissions and Leaks</a> appeared first on <a href="https://www.fogment.com">FogChain</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>An exchange API key is a credential that lets software trade on your behalf. It is not a password and it should never behave like one: no withdrawal rights, no unlimited scope, no reuse across services.</p>
<p>Most losses attributed to an exchange API key do not come from a sophisticated break of the venue&#8217;s security. They come from a key that was too powerful for its job and was then copied somewhere it should not have been. Permissions and storage decide the damage; the incident is usually just the trigger.</p>
<ul>
<li>Grant the smallest permission set that makes the strategy work, and never enable withdrawals on a trading key.</li>
<li>Use IP allowlisting where the venue supports it; it turns a stolen key into a useless string.</li>
<li>One key per service, so revocation is surgical and usage is attributable.</li>
<li>Assume any key pasted into a chat, screenshot or repository is already compromised.</li>
</ul>
<h2>What permissions an exchange API key can carry</h2>
<p>Most venues expose a small menu: read, spot trade, futures trade, transfer, withdraw. Each one is a separate risk decision, and they are rarely independent in practice.</p>
<p>Read is often treated as harmless. It is not. Read access exposes balances, positions, order history and sometimes deposit addresses and account identifiers. That is a map of your account, useful to anyone planning a social-engineering approach or tracking how much you hold. Treat read as sensitive, just less immediately destructive than trade.</p>
<h3>Trade permission is not one permission</h3>
<p>Trade access lets software place, amend and cancel orders. On venues with derivatives, it can also change leverage and margin mode, which changes how quickly a position can be liquidated without any further trade being placed.</p>
<p>That is why leverage and margin settings deserve their own attention. A key that cannot withdraw but can set leverage to the maximum is still a key that can lose the account. Some venues let you restrict this; check whether yours does.</p>
<h3>Withdrawal and transfer are the ones that end accounts</h3>
<p>Withdrawal permission moves assets off the venue. Transfer permission moves them between accounts, including to an address you do not control if the venue allows internal transfers by key.</p>
<p>Neither is needed for trading. Automated strategies need to trade, read balances, and occasionally check status. They do not need to withdraw. If a workflow genuinely requires automated withdrawals, the correct pattern is a separate key used by a separate process with its own allowlist, not a broader permission on the trading key.</p>
<h2>Designing an exchange API key policy that limits damage</h2>
<p>Good policy answers one question: if this key leaks right now, what is the worst that can happen before I revoke it?</p>
<p>If the answer is &#8220;it can trade my whole balance at maximum leverage&#8221;, the key is over-scoped regardless of how careful you are with storage. If the answer is &#8220;it can place orders up to a fixed notional on one sub-account and nothing else&#8221;, the leak is survivable.</p>
<div class="fog-table not-prose my-6 overflow-x-auto rounded-2xl border border-ink-200/70 bg-surface" data-fog-table><table>
<thead>
<tr>
<th>Permission</th>
<th>Needed for trading</th>
<th>Worst case if leaked</th>
</tr>
</thead>
<tbody>
<tr>
<td>Read balances and positions</td>
<td>Yes, usually</td>
<td>Exposure of holdings and account structure</td>
</tr>
<tr>
<td>Spot trade</td>
<td>Yes</td>
<td>Adverse trades, fee drain, forced liquidation of spot collateral</td>
</tr>
<tr>
<td>Futures trade and leverage change</td>
<td>Only for derivatives</td>
<td>Position opened at maximum leverage, rapid liquidation</td>
</tr>
<tr>
<td>Internal transfer</td>
<td>Rarely</td>
<td>Balance moved to another account or address</td>
</tr>
<tr>
<td>Withdraw</td>
<td>No</td>
<td>Assets removed from the venue entirely</td>
</tr>
</tbody>
</table></div>
<blockquote><p>A key is a promise about what software may do. Every extra permission is a promise you made to a program that cannot read the context you had in mind.</p></blockquote>
<h2>Where exchange API key secrets leak in practice</h2>
<p>They leak through ordinary engineering habits, not exotic attacks: a repository that was public for twenty minutes, a screenshot in a support ticket, a log line that printed the request headers, a shared laptop, an old CI variable nobody rotated.</p>
<p>Three habits remove most of this. Keep secrets out of source control entirely and use environment variables or a secret manager. Never print request headers, even at debug level, and scrub them from error reports. Assume anything visible on a screen may end up in an image someone else sees.</p>
<h3>Storage rules that survive a mistake</h3>
<p>Store keys where the process can read them and nowhere else. On a server, that means file permissions restricted to the service user, not a world-readable config file. On a workstation, that means an encrypted store, not a note-taking app.</p>
<p>Rotation is the other half. A key you have never rotated is a key whose exposure window is unbounded. Rotate on a schedule, and rotate immediately after any staff change, any laptop loss, and any moment you are unsure. Rotation should be boring enough that you actually do it.</p>
<h3>Detection: noticing before the balance is gone</h3>
<p>Most venues let you see last-used timestamps and, on some, IP addresses per key. Check them. A trading key that last authenticated from a region you have never operated in is an incident, not a curiosity.</p>
<p>Set alerts on the things that indicate misuse: order rate spikes, cancellations you did not send, position changes outside your strategy&#8217;s normal pattern, and failed authentication attempts. Alerting on your own balance is the last resort, not the first.</p>
<h2>Operating keys day to day</h2>
<ol>
<li>Create one key per service, named for the service, so usage is attributable at a glance.</li>
<li>Select only read and the specific trade permission the strategy uses; leave withdrawal and transfer off.</li>
<li>Apply an IP allowlist if the venue supports it, and keep it current when infrastructure changes.</li>
<li>Store the secret in a secret manager or environment variable, never in the repository.</li>
<li>Set a notional cap in your own code as well as any venue-side limit, so a bug cannot spend the balance.</li>
<li>Record creation date and owner, and rotate on a fixed schedule or after any suspected exposure.</li>
<li>Revoke rather than disable when a key is retired, and confirm it no longer authenticates.</li>
</ol>
<p>A worked check on exposure: a strategy with 4,000 units of collateral and a 2x leverage cap can lose at most 4,000 if positions are liquidated, but a leaked key that can raise leverage to 20x changes the ceiling entirely. Permission scope, not collateral, sets the real maximum loss.</p>
<h2>Incident response when a key is exposed</h2>
<p>Revoke first, investigate second. A key that is still valid while you read logs is still trading.</p>
<p>Then work outward: check orders and transfers in the exposure window, confirm whether IP restrictions were active, and rotate any other secret that shared the same storage or the same pipeline variable. Secrets have a habit of travelling in groups.</p>
<p>Finally, change the process that allowed the exposure. An incident that ends with a revocation and no process change will recur, usually within the same quarter, because the habit that caused it is still in place.</p>
<p>The post <a href="https://www.fogment.com/api-key-permissions/">API Keys: Permissions and Leaks</a> appeared first on <a href="https://www.fogment.com">FogChain</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.fogment.com/api-key-permissions/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
