
The button that started a platform – now processing real transactions across five blockchains
I have a confession: 97% of my production crypto platform was written by AI agents.
The catch? I’m a Python developer who’s never written a line of TypeScript.
I had been sitting on the same idea for years. Every time I contributed to an open-source project and wished I could tip the maintainer a few dollars, I’d think: “Someone should make a simple crypto button for GitHub READMEs.”
But I was a Python developer. Frontend? JavaScript frameworks? Blockchain integrations? That toolkit lived in a universe parallel to mine — one I could see but never quite reach.
Then something clicked when I first started using LLMs in 2023.
The first time I asked Claude to write a complete TypeScript function and copy-pasted it into my IDE, something shifted. This wasn’t an answer to a prompt. This was delegation.
Months later, when Anthropic released the Model Context Protocol (MCP) in November 2024, I had one of those weird intuitive hits: “What if I use the first GitHub MCP to actually ship code for me?”
Here’s what that looked like in practice:
Me: Build wallet connect integration that opens Phantom for Solana, MetaMask for Ethereum
Agent: [Generates 200 lines of wallet detection and connection code]
Me: [Tests] Phantom UI isn’t appearing. Force it to show.
Agent: [Updates with disconnect logic and UI-forcing parameters]
// Force disconnect first to ensure fresh connection if (window.solana && window.solana.isConnected) { await window.solana.disconnect(); } // Connect with UI-forcing parameters const resp = await window.solana.connect({ onlyIfTrusted: false, // Critical: false ensures UI appears _forceUI: Math.random().toString() // Prevents caching });
The idea had been waiting patiently for years. AI finally gave me permission to build it.
My background was almost 15 years of Python. BeautifulSoup scrapers, Django APIs, data pipelines — I could orchestrate data from any source to any destination.
But modern crypto meant JavaScript wallets. Arrays of supported networks. Blockchain integrations that changed monthly. The gap between concept and execution had widened from meh to impossible.
So I didn’t try to close the gap. I orchestrated across it.
Months after that first Claude conversation, tip.md went live with three blockchains: Ethereum, Solana, and Bitcoin Lightning.
The early version wasn’t elegant. I’d describe features in detail, watch AI agents chase their tails through wallet integration libraries, catch them when the loops became obvious, then restate the goal with tighter constraints. Repeat until functional.
A typical debugging session went like this:
Me: Build wallet connect integration that opens both Phantom and MetaMask
Agent: [Generates code that opens both wallets simultaneously]
Me: That breaks everything. Only open the wallet for the current chain
Agent: [Generates code that only opens MetaMask]
Me: [Checks Solana functionality] Now Solana doesn’t work. Make Phantom work for Solana
Agent: [Breaks Ethereum again]
[Repeat 14 times]
I kept detailed notes during development. The pattern was always the same: I’d describe what “working” meant, and AI would generate the implementation through dozens of iterations.
It wasn’t efficient. But it worked. And ±100 developers started using those functional tip buttons within weeks.

What felt impossible as a Python developer became solvable once I had AI agents handling the complexity.
I had a clear philosophy from day one: do one thing, but do it perfectly. The UX had to be frictionless — as few clicks as possible between seeing a tip button and completing a tip.
This constraint forced three decisions:
No account required - Wallet connection bypasses registration friction
Multi-chain from day one - Users keep their native ecosystem habits
No custody - Wallet-to-wallet eliminates trust concerns around fund holding
The early MVP was good - clean interfaces, working tip flows across Ethereum, Solana, and Bitcoin. Technical debt lived in the background, but tips actually worked.
The biggest surprise came when things actually worked.
After launching the Farcaster miniapp in June, I woke up to 3,000 registered developers. Not impressive by startup standards, but enough to break my mental model of what this thing could become.
The timing was perfect by complete accident. I had rebuilt a miniapp from scratch using the Farcaster SDK, and it launched simultaneously with Solana support on Farcaster. My multi-chain miniapp happened to be among the first.
I only knew this because I met Linda Xie from Farcaster, who told me about the upcoming Solana integration. I only met Linda because I had something working to show her. I only spoke to her because initial users suggested I look into Farcaster. Action produces information.
As tip.md grew from 100 to 3,000+ users, my workflow evolved subtly but significantly:
Phase 1: Single Agent (Replit)
Describe feature exhaustively
Let agent write implementation
Manually test, catch edge cases
Restate narrower requirements
Phase 2: Better Specifications (Cursor)
Learned agents fail when libraries are complex (crypto + wallets = maximum complexity)
Pre-write test cases describing what “working” looks like
Accepted that 70% agent-generated code was actually amazing
Phase 3: Orchestration Patterns
Background agents handle parallel components
Detailed specs become the product definition
My job shifted from writing code to catching missing edge cases
The codebase now sits with 100s of files written largely by AI agents. The percentage of code I physically typed? Maybe 3%. Yet somehow this platform serves 5,500+ developers who’ve received 876 tips totaling $2,721.
“You didn’t write 97% of your codebase” sounds irresponsible until you understand what I actually do:
Instead of: Typing import solana-web3.js and debugging wallet connections
I now: Specify which wallets need connection, define success criteria (transaction completes, user can tip), and review whether the agent’s approach is reasonable vs. overly complex
Here’s a real example from my git history. When the /tip route was returning HTML instead of JSON, I told the agent: “Fix the routing issue - endpoints should return JSON not HTML.”
The agent created three comprehensive debugging documents:
DEBUG_COMPLETE.md (153 lines): Full analysis of the routing issue
FIX_SUMMARY.md (137 lines): Root cause and solution
X402_ROUTE_FIX_SUMMARY.md (153 lines): Network-specific implementation
The solution involved network-specific handlers for Base and Solana.
The agents still loop. They still suggest solutions that obviously won’t work in production. But I’ve learned to recognize those loops faster, redirect earlier, and preserve the energy I’d spend typing endless JavaScript.
If you’re a backend developer looking at the maddening complexity of modern stacks, here’s what works:
One core interaction flow, multiple blockchains. My MVP offered the same 3-click tip flow whether you chose Ethereum, Solana, or Bitcoin Lightning. The experience was consistent across all three chains — polished enough that 100 developers trusted it with real money immediately.
Define success before implementation. The biggest improvement in my agent coordination came when I started pre-writing tests describing what “this works” looks like. Agents navigate better with landmarks than wandering descriptions.
Embrace the loops. AI agents will go in circles. You’ll question if this approach even works. The skill is recognizing when they’re circling versus exploring valid alternatives.
Ship when core functionality works. tip.md’s Farcaster frame didn’t launch broken or ugly — I’d rebuilt it properly using their SDK, and the timing happened to align with Solana support launch. Functionality stayed smooth while technical debt lived under the hood.
Preserve what you understand. I handle backend logic, database design, and API orchestration. Agents handle crypto interactions, wallet integration, and TypeScript boilerplate. This means every layer has human oversight on the parts that matter most.
What I’ve learned six months after launch isn’t what I expected.
Technology works well. Transactions settle. Wallets connect. The UI feels smooth to users who find it.
But crypto adoption is like any other technology shift — people need time to adjust expectations and habits. Developers are used to sharing GitHub stars and one-off sponsorships. Moving to “tip buttons on repos” requires both creators asking naturally and supporters developing the giving habit.
This is both the blessing and curse of being crypto-native. The audience understands the value immediately when they engage. They’re just smaller than I’d expected, and growth happens through word-of-mouth in specific communities rather than broad mainstream adoption.
Six months ago, I had 15 years of Python experience and zero confidence in my ability to build modern crypto applications.
Today, I have 5.5k developers using a platform that bridges blockchain ecosystems in real-time.
The difference isn’t that I learned TypeScript. It’s that I got permission to build through relationships with AI agents who handle the parts I don’t understand.
Like everything: you need to know where you want to go, then let AI help you find the path to get there.
Every developer’s gap looks different. Yours might be:
Mobile development and App Store submission hell
Machine learning model deployment
Design system coherence
DevOps and infrastructure scaling
Whatever frontier skill keeps you from shipping that persistent idea
Mine happened to be the entire frontend/payments universe. What’s stopping you from building your impossible project?
Here’s my challenge to you: This week, pick one feature you’ve been avoiding. Describe it to an AI agent. Don’t write code. Just describe what success looks like. Watch what happens.
The bridge between your ideas and their execution finally exists. The question isn’t whether AI can ship complex projects. It’s whether you’ll give yourself permission to start building toward implementation.
The numbers: 5,520 registered developers, 876 crypto tips processed, $2,721 total tips distributed, hundreds of files orchestrated primarily by AI agents, one Python developer learning how to ship.
Ready to build your impossible project? The permission was there all along — AI just finally gave us the vocabulary to accept it.
Tip.md is public at tip.md. You can find my other AI-orchestrated experiments on GitHub. I share practical workflow insights on my Substack.
Thanks for reading xr0am's Substack! Subscribe for free to receive new posts and support my work.
<100 subscribers

The button that started a platform – now processing real transactions across five blockchains
I have a confession: 97% of my production crypto platform was written by AI agents.
The catch? I’m a Python developer who’s never written a line of TypeScript.
I had been sitting on the same idea for years. Every time I contributed to an open-source project and wished I could tip the maintainer a few dollars, I’d think: “Someone should make a simple crypto button for GitHub READMEs.”
But I was a Python developer. Frontend? JavaScript frameworks? Blockchain integrations? That toolkit lived in a universe parallel to mine — one I could see but never quite reach.
Then something clicked when I first started using LLMs in 2023.
The first time I asked Claude to write a complete TypeScript function and copy-pasted it into my IDE, something shifted. This wasn’t an answer to a prompt. This was delegation.
Months later, when Anthropic released the Model Context Protocol (MCP) in November 2024, I had one of those weird intuitive hits: “What if I use the first GitHub MCP to actually ship code for me?”
Here’s what that looked like in practice:
Me: Build wallet connect integration that opens Phantom for Solana, MetaMask for Ethereum
Agent: [Generates 200 lines of wallet detection and connection code]
Me: [Tests] Phantom UI isn’t appearing. Force it to show.
Agent: [Updates with disconnect logic and UI-forcing parameters]
// Force disconnect first to ensure fresh connection if (window.solana && window.solana.isConnected) { await window.solana.disconnect(); } // Connect with UI-forcing parameters const resp = await window.solana.connect({ onlyIfTrusted: false, // Critical: false ensures UI appears _forceUI: Math.random().toString() // Prevents caching });
The idea had been waiting patiently for years. AI finally gave me permission to build it.
My background was almost 15 years of Python. BeautifulSoup scrapers, Django APIs, data pipelines — I could orchestrate data from any source to any destination.
But modern crypto meant JavaScript wallets. Arrays of supported networks. Blockchain integrations that changed monthly. The gap between concept and execution had widened from meh to impossible.
So I didn’t try to close the gap. I orchestrated across it.
Months after that first Claude conversation, tip.md went live with three blockchains: Ethereum, Solana, and Bitcoin Lightning.
The early version wasn’t elegant. I’d describe features in detail, watch AI agents chase their tails through wallet integration libraries, catch them when the loops became obvious, then restate the goal with tighter constraints. Repeat until functional.
A typical debugging session went like this:
Me: Build wallet connect integration that opens both Phantom and MetaMask
Agent: [Generates code that opens both wallets simultaneously]
Me: That breaks everything. Only open the wallet for the current chain
Agent: [Generates code that only opens MetaMask]
Me: [Checks Solana functionality] Now Solana doesn’t work. Make Phantom work for Solana
Agent: [Breaks Ethereum again]
[Repeat 14 times]
I kept detailed notes during development. The pattern was always the same: I’d describe what “working” meant, and AI would generate the implementation through dozens of iterations.
It wasn’t efficient. But it worked. And ±100 developers started using those functional tip buttons within weeks.

What felt impossible as a Python developer became solvable once I had AI agents handling the complexity.
I had a clear philosophy from day one: do one thing, but do it perfectly. The UX had to be frictionless — as few clicks as possible between seeing a tip button and completing a tip.
This constraint forced three decisions:
No account required - Wallet connection bypasses registration friction
Multi-chain from day one - Users keep their native ecosystem habits
No custody - Wallet-to-wallet eliminates trust concerns around fund holding
The early MVP was good - clean interfaces, working tip flows across Ethereum, Solana, and Bitcoin. Technical debt lived in the background, but tips actually worked.
The biggest surprise came when things actually worked.
After launching the Farcaster miniapp in June, I woke up to 3,000 registered developers. Not impressive by startup standards, but enough to break my mental model of what this thing could become.
The timing was perfect by complete accident. I had rebuilt a miniapp from scratch using the Farcaster SDK, and it launched simultaneously with Solana support on Farcaster. My multi-chain miniapp happened to be among the first.
I only knew this because I met Linda Xie from Farcaster, who told me about the upcoming Solana integration. I only met Linda because I had something working to show her. I only spoke to her because initial users suggested I look into Farcaster. Action produces information.
As tip.md grew from 100 to 3,000+ users, my workflow evolved subtly but significantly:
Phase 1: Single Agent (Replit)
Describe feature exhaustively
Let agent write implementation
Manually test, catch edge cases
Restate narrower requirements
Phase 2: Better Specifications (Cursor)
Learned agents fail when libraries are complex (crypto + wallets = maximum complexity)
Pre-write test cases describing what “working” looks like
Accepted that 70% agent-generated code was actually amazing
Phase 3: Orchestration Patterns
Background agents handle parallel components
Detailed specs become the product definition
My job shifted from writing code to catching missing edge cases
The codebase now sits with 100s of files written largely by AI agents. The percentage of code I physically typed? Maybe 3%. Yet somehow this platform serves 5,500+ developers who’ve received 876 tips totaling $2,721.
“You didn’t write 97% of your codebase” sounds irresponsible until you understand what I actually do:
Instead of: Typing import solana-web3.js and debugging wallet connections
I now: Specify which wallets need connection, define success criteria (transaction completes, user can tip), and review whether the agent’s approach is reasonable vs. overly complex
Here’s a real example from my git history. When the /tip route was returning HTML instead of JSON, I told the agent: “Fix the routing issue - endpoints should return JSON not HTML.”
The agent created three comprehensive debugging documents:
DEBUG_COMPLETE.md (153 lines): Full analysis of the routing issue
FIX_SUMMARY.md (137 lines): Root cause and solution
X402_ROUTE_FIX_SUMMARY.md (153 lines): Network-specific implementation
The solution involved network-specific handlers for Base and Solana.
The agents still loop. They still suggest solutions that obviously won’t work in production. But I’ve learned to recognize those loops faster, redirect earlier, and preserve the energy I’d spend typing endless JavaScript.
If you’re a backend developer looking at the maddening complexity of modern stacks, here’s what works:
One core interaction flow, multiple blockchains. My MVP offered the same 3-click tip flow whether you chose Ethereum, Solana, or Bitcoin Lightning. The experience was consistent across all three chains — polished enough that 100 developers trusted it with real money immediately.
Define success before implementation. The biggest improvement in my agent coordination came when I started pre-writing tests describing what “this works” looks like. Agents navigate better with landmarks than wandering descriptions.
Embrace the loops. AI agents will go in circles. You’ll question if this approach even works. The skill is recognizing when they’re circling versus exploring valid alternatives.
Ship when core functionality works. tip.md’s Farcaster frame didn’t launch broken or ugly — I’d rebuilt it properly using their SDK, and the timing happened to align with Solana support launch. Functionality stayed smooth while technical debt lived under the hood.
Preserve what you understand. I handle backend logic, database design, and API orchestration. Agents handle crypto interactions, wallet integration, and TypeScript boilerplate. This means every layer has human oversight on the parts that matter most.
What I’ve learned six months after launch isn’t what I expected.
Technology works well. Transactions settle. Wallets connect. The UI feels smooth to users who find it.
But crypto adoption is like any other technology shift — people need time to adjust expectations and habits. Developers are used to sharing GitHub stars and one-off sponsorships. Moving to “tip buttons on repos” requires both creators asking naturally and supporters developing the giving habit.
This is both the blessing and curse of being crypto-native. The audience understands the value immediately when they engage. They’re just smaller than I’d expected, and growth happens through word-of-mouth in specific communities rather than broad mainstream adoption.
Six months ago, I had 15 years of Python experience and zero confidence in my ability to build modern crypto applications.
Today, I have 5.5k developers using a platform that bridges blockchain ecosystems in real-time.
The difference isn’t that I learned TypeScript. It’s that I got permission to build through relationships with AI agents who handle the parts I don’t understand.
Like everything: you need to know where you want to go, then let AI help you find the path to get there.
Every developer’s gap looks different. Yours might be:
Mobile development and App Store submission hell
Machine learning model deployment
Design system coherence
DevOps and infrastructure scaling
Whatever frontier skill keeps you from shipping that persistent idea
Mine happened to be the entire frontend/payments universe. What’s stopping you from building your impossible project?
Here’s my challenge to you: This week, pick one feature you’ve been avoiding. Describe it to an AI agent. Don’t write code. Just describe what success looks like. Watch what happens.
The bridge between your ideas and their execution finally exists. The question isn’t whether AI can ship complex projects. It’s whether you’ll give yourself permission to start building toward implementation.
The numbers: 5,520 registered developers, 876 crypto tips processed, $2,721 total tips distributed, hundreds of files orchestrated primarily by AI agents, one Python developer learning how to ship.
Ready to build your impossible project? The permission was there all along — AI just finally gave us the vocabulary to accept it.
Tip.md is public at tip.md. You can find my other AI-orchestrated experiments on GitHub. I share practical workflow insights on my Substack.
Thanks for reading xr0am's Substack! Subscribe for free to receive new posts and support my work.
Share Dialog
Share Dialog
3 comments
I was inspired by @joanwestenberg.eth and @scottwerner posts to finally share a bit of my thoughts and journey. Here's how I orchestrated AI agents to ship @tipdotmd as a Python dev. First of many on how I am actually building with AI. https://paragraph.com/@xr0am/how-claude-gave-me-permission-to-ship-a-python-devs-journey-from-ideas-to-5500-users
I enjoyed this!
Thanks man, glad you did !