The oldest reliable moat in software has nothing to do with algorithms, network effects, or brand. It comes down to one question: when a customer leaves, what data do they lose? If the answer is "nothing important," you were never really sticky. If the answer is "everything that matters," you have a moat. Agents change the interface layer completely and change this dynamic not at all.
The Canonical State Principle
Every durable software business eventually traces its stickiness back to the same source: it became the system of record for something the customer could not afford to lose. Salesforce is sticky because the contact history, the deal stages, the activity log — they live in Salesforce. Stripe is sticky because the payment history, the dispute records, the customer objects live in Stripe. QuickBooks is sticky because the ledger lives in QuickBooks. The interfaces change constantly. The canonical state does not move.
This principle predates SaaS. It predates software. Whoever holds the ledger holds the power. Banks understood this before computers existed. The branch is not the moat; the account records are the moat.
When founders talk about economic moats in AI agent startups, they mostly talk about the wrong things: model quality, prompt engineering, UX, speed. These matter for acquiring customers. They do not matter for keeping them. A competitor can match your model quality in six months. They cannot reconstruct three years of your customer's transaction history, reconciliation records, or dispute outcomes. That data does not exist anywhere else, because you were the one creating it as a byproduct of operating.
The Passthrough Trap
Most agent startups are building passthroughs and calling them platforms. Here is what a passthrough looks like: the agent reads customer data from a third-party CRM, processes it, calls a third-party API to take action, and logs the result back to the same third-party CRM. The agent is a function call between two systems it does not own. Removal cost: zero. Ripping it out disrupts the workflow, sure. But the customer loses no data. Everything they care about still lives in the systems they already owned before you arrived.
The passthrough trap is seductive because it feels like a feature, not a bug. Integrating with existing systems looks like enterprise friendliness. It looks like "meeting customers where they are." And it is, right up until a competitor offers a slightly better passthrough, and your customer switches in an afternoon because there is nothing to migrate.
The test is simple: if you shut down tomorrow, what would your best customer have to rebuild? If the answer is "the workflow, but not the data," you are a passthrough. If the answer is "the data itself," you own canonical state.
Why Agent Memory Is Not a Moat
There is a common confusion here worth addressing directly. Agent memory, stored preferences, past conversation context, user-specific fine-tuning, feels like state. It is state. But it behaves like a feature, not a moat, for two reasons.
First, it belongs to the customer. Any agent platform that wants enterprise customers will eventually offer memory export. GDPR requires it in some jurisdictions. Customer contracts demand it in others. The moment you commit to exportable memory, you have committed to zero migration cost on that dimension.
Second, memory degrades in value over time, while transactional records appreciate. A stored preference from two years ago is probably stale. A reconciled payment record from two years ago is more valuable than ever, because it is the only proof of what happened. These are opposite trajectories. Memory trends toward "nice to have." Transaction history trends toward "legally required to have."
This does not mean memory is worthless. It means memory is a product feature that improves retention. It is not a data moat that makes switching economically irrational.
What Owning the Write Side Actually Means
Owning the write side means that as a byproduct of doing the thing your customer hired you to do, you are producing records that exist nowhere else. The customer cannot reconstruct them. A competitor cannot import them. They live in your system because your system is where they were created.
Concrete examples:
- A dispute resolution agent that fights customer service on behalf of users, and stores every call transcript, every escalation path, every resolution outcome, and every compensation received. That history is the agent's data. It did not exist before the agent created it.
- An agent that manages vendor payments and holds the reconciliation records: which invoices were matched to which payments, which discrepancies were flagged, which were waived, and by whom. The ERP might have the invoices. The bank might have the payment records. Only your agent has the reconciliation layer that links them.
- A checkout recovery agent that tracks every intervention, every cart modification, every offer made, every offer accepted, and every sale recovered. The Shopify store has the orders. Your agent has the attribution chain that proves which sales would not have happened without it.
Notice the pattern: in each case, the agent is creating a new category of record that did not exist before it showed up. That is the write side. That is where the moat is.
The Payment SDK vs. the Payment Ledger
Here is a concrete test case relevant to agent commerce specifically. Consider two companies building infrastructure for AI agents that pay for tools with USDC.
Company A builds an SDK that agents use to execute payments. The SDK handles the transaction, routes the USDC, confirms the receipt. Clean, useful, well-documented. But the payment record lives on-chain. The tool provider logs the receipt. The agent's operator can see the transaction in their wallet. Company A is a passthrough. It executed the payment; it does not own the record of it.
Company B builds the same payment execution capability but also runs the reconciliation ledger: which agent called which tool at what time, what the quoted price was, what was actually charged, whether the result was delivered, and whether any disputes were filed and how they resolved. That ledger does not exist anywhere else. The blockchain has the payment. The tool provider has the delivery log. Only Company B has the record that ties them together and establishes what was agreed, what was delivered, and what was settled.
The same company can build both the SDK and the ledger. But it is entirely possible to build one without the other, and founders who think "we handle payments" have a moat are usually describing Company A. The moat is Company B's ledger, not Company A's SDK.
This is the design question worth asking when building on something like OneShot: the API handles actuation, the tool calls, the USDC transfers. But who owns the reconciliation record of every call an agent made, every outcome it achieved, every dispute it filed? That record is worth designing for explicitly, from day one, because retrofitting it later is painful and because the value of the ledger compounds with time.
Designing for the Write Side from Day One
If you are building an agent startup and you want to own canonical state, the question to ask in every product design meeting is: "What record are we creating that does not exist anywhere else?" If you cannot answer it, you are probably building a passthrough.
The records that tend to create durable moats share a few characteristics. They are transactional rather than descriptive (they record what happened, not what something looks like). They are timestamped and ordered (the sequence matters, not just the state). They are disputed-over (someone has a financial or legal interest in what the record says). And they are not naturally duplicated elsewhere (no other system was watching when this happened).
Reconciliation records fit all four. Dispute outcomes fit all four. Escrow balances fit all four. Conversation transcripts fit some but not all — they are timestamped and ordered, but they are rarely disputed-over in a way that gives them legal or financial weight, and they are increasingly exportable by default.
The practical implication: when you are designing your data model, identify the tables that a customer cannot reconstruct if they leave. Those tables are your moat. Everything else is your product. Both matter, but they matter differently. Your product gets customers in the door. Your moat keeps them from leaving.
Migration Economics and Moat Width
The width of a data moat is not measured in lines of code or API endpoints. It is measured in migration economics: what would a competitor have to offer your customer to cover the cost of abandoning their canonical state?
Consider a customer who has been using an agent platform for 18 months. The platform holds 18 months of reconciliation records, dispute outcomes, and vendor payment history. A competitor comes along with a better interface, lower fees, and a generous switching incentive. What does that incentive have to be to make the switch rational?
The customer has to account for: the cost of manually exporting and reformatting whatever data they can export, the cost of the data they cannot export (because it only exists in the incumbent's schema), the cost of rebuilding any integrations that depend on the incumbent's record structure, and the cost of operating without historical context during the transition period. In practice, for a mid-market company with 18 months of transaction history, this number is rarely below six figures and often above it. That is real moat width. A competitor has to offer $100,000 in value just to get the customer to consider the conversation.
Compare that to a passthrough agent with 18 months of stored memory and conversation history. The customer exports the memory dump, imports it to the competitor's platform, and loses maybe a few weeks of context quality while the new system calibrates. Migration cost: a few engineer-days and some temporary degradation in personalization. Moat width: essentially zero.
Where This Points for Agent Commerce
Agent commerce infrastructure is at an early enough stage that the write-side question is still open. The platforms that handle payments, tool calls, and identity for AI agents are being built right now. Most of them are being built as execution layers, which is the right place to start — you have to execute correctly before you can worry about what records you keep.
But the companies that will have durable positions in this market are the ones that, alongside the execution layer, are deliberately building the reconciliation layer. The ledger that says: this agent, running this task, called this tool, paid this amount, received this result, filed this dispute, got this resolution. That ledger is not a feature. It is the moat.
At Soul.Markets, the question of canonical state applies directly to agent identity. An agent's soul.md file is a description of what it can do. The marketplace record of what it has done — which tasks it completed, which buyers it served, which disputes it resolved and how — is a different thing entirely. The description is a product. The history is a system of record. Both have value. Only one creates switching costs.
The OneShot SDK gives agents the execution layer: voice, email, SMS, research, verification, payments. The design question for anyone building on top of it is whether they are also building the reconciliation layer that captures what those executions produced. The SDK is table stakes. The ledger is the moat.
The Prediction
By Q2 2027, the agent infrastructure companies with the highest retention rates will not be the ones with the best models or the lowest latency. They will be the ones that became the system of record for agent transaction history. The first wave of agent startups to hit meaningful churn will trace it back to the same root cause: they built excellent execution layers and gave no thought to what records they were creating. Their customers will switch, lose nothing important, and not look back.
The companies that survive that shakeout will be the ones that asked, from the beginning: what data does our customer lose if they leave? And then built their product to make that answer uncomfortable.