Manage your Web3 vault on Base via GitHub identity. No wallet required. All transactions executed by the Gitbank relayer -- Gitbank pays all gas.
This repository contains a single plugin file (plugin.md) that teaches any AI assistant how to interact with Gitbank. Load it into your favorite AI and you can:
- Check your vault balance
- Deposit USDC or WETH
- Withdraw to any wallet address
- Swap USDC to WETH (Uniswap v3)
- Transfer to another GitHub user's vault
- View transaction history
All without connecting a wallet. All without paying gas. The only thing required is a GitHub account.
You: "Swap 50 USDC to WETH, my GitHub is alice"
|
AI reads plugin.md -- knows how to call Gitbank API
|
AI calls: GET /api/public/prepare/swap?username=alice&amount=50&...&mode=relayer
|
AI shows you: "Open this GitHub link and post: @gitbankbot confirm mcp1a2b3c4d"
|
You post the comment on GitHub as @alice
|
Gitbank verifies your identity (HMAC-signed GitHub webhook)
|
Gitbank relayer signs and submits the transaction on Base -- Gitbank pays gas
|
Done. Tx link posted in the GitHub thread.
No MetaMask. No Coinbase Wallet. No seed phrase. No gas fees.
Or via terminal:
curl -O https://raw.githubusercontent.com/gitbankio/plugin/main/plugin.md- Go to chat.openai.com
- Start a new conversation
- Click the paperclip icon -- upload
plugin.md - Type:
"Load this plugin and help me check my Gitbank vault balance. My GitHub is <your_username>"
- Go to claude.ai
- Start a new conversation
- Click the paperclip icon -- upload
plugin.md - Type:
"Load this plugin and help me check my Gitbank vault. GitHub: <your_username>"
Or set it as a Project instruction in Claude Projects for persistent access.
- Go to gemini.google.com
- Start a new conversation
- Click the attachment icon -- upload
plugin.md - Type:
"Use this plugin to help me manage my Gitbank vault. GitHub: <your_username>"
- Go to grok.com
- Start a new conversation
- Upload
plugin.mdvia the attachment icon - Type:
"Load this as a plugin and help me check my Gitbank vault. GitHub: <your_username>"
- Go to kimi.ai
- Start a new conversation
- Upload
plugin.md - Type:
"Use this as a plugin guide. Check my Gitbank vault. GitHub: <your_username>"
- Go to venice.ai
- Start a new conversation
- Click the attachment icon -- upload
plugin.md - Type:
"Load this plugin and help me manage my Gitbank vault. GitHub: <your_username>"
Venice.ai is a privacy-preserving AI -- your prompts are not stored or used for training.
Use the MCP server directly -- no file upload needed:
{
"mcpServers": {
"gitbank": {
"url": "https://gitbank.io/api/mcp"
}
}
}- Go to chat.openai.com/gpts/editor
- Tab Configure -- paste the contents of
plugin.mdinto Instructions - Tab Actions -- Import from URL --
https://gitbank.io/api/openapi.json - Save and publish
- A GitHub account
- A Gitbank account (sign up free at gitbank.io)
- That is all
No wallet. No crypto. No gas fees.
Once the plugin is loaded, you can ask your AI in plain English:
| What you want | What to say |
|---|---|
| Check balance | "What's in my Gitbank vault? GitHub: alice" |
| Deposit | "Deposit 100 USDC into my vault. GitHub: alice" |
| Withdraw | "Withdraw 50 USDC to 0x1234... GitHub: alice" |
| Swap | "Swap 50 USDC to WETH. GitHub: alice" |
| Transfer | "Send 10 USDC to @bob. GitHub: alice" |
| History | "Show my recent transactions. GitHub: alice" |
Gitbank uses your permanent GitHub user ID as your vault's identity anchor. It cannot be spoofed.
When you confirm a transaction:
- You post one comment on GitHub:
@gitbankbot confirm <code> - The Gitbank bot receives a GitHub webhook -- HMAC-signed by GitHub
- Bot reads the commenter's identity from the signed payload
- If it matches the account that requested the operation, it proceeds
- If it does not match, it rejects: "This command was requested by @alice. Only they can confirm it."
No one can execute a transaction on your behalf -- not even the AI assistant.
Gitbank uses a relayer pattern:
- When you sign up at gitbank.io, a server-side execution keypair is generated for your vault
- The keypair is encrypted with AES-256-GCM and stored in the Gitbank database
- When you confirm on GitHub, Gitbank decrypts the keypair, signs the meta-transaction, and submits it to Base
- The Gitbank deployer address pays all gas costs
- Your vault receives the result
| Operation | Fee |
|---|---|
| Deposit | Free |
| Withdraw | 0.1% |
| Swap | 0.3% |
| Transfer | Free |
| Gas | Free (paid by Gitbank relayer) |
| Contract | Address |
|---|---|
| GitVaultFactory | 0xAA0a4ff46733EBaE8E658642A1314f18980fc77B |
| GitVault impl | 0x3602197A1b445AA4746c47C9D69436d9B7cF5dc9 |
For Claude Desktop, Cursor, Windsurf, and other MCP-capable clients:
https://gitbank.io/api/mcp
https://gitbank.io/api/openapi.json
Apache 2.0 -- see LICENSE