/install buff-roundup
Buff — Round-Up Investing Protocol
Buff rounds up every Solana transaction and auto-invests the spare change into crypto assets. All fees are enforced server-side — the SDK is a thin API client with no sensitive logic.
Quick Start
npm install buff-protocol-sdk
import { Buff } from "buff-protocol-sdk"
const buff = new Buff({
apiKey: process.env.BUFF_API_KEY,
plan: "sprout",
investInto: "BTC",
})
// Calculate a round-up
const breakdown = await buff.calculateRoundUp(4.73)
// $4.73 → $4.80 = $0.07 round-up
// Get wrap instructions (server builds transfer instructions with fees)
const { instructions, breakdown } = await buff.getWrapInstructions(
27.63, userPubkey, buffWalletPubkey
)
// Append instructions to your transaction, sign, send
Auto-Invest
// Check if threshold reached
const acc = await buff.getAccumulator(walletPubkey)
// Build swap transactions (server-side via Jupiter)
const result = await buff.buildSwap(walletPubkey)
if (result.ready) {
for (const swap of result.transactions) {
// Sign the transaction, then execute
await buff.executeSwap(signedTx)
}
}
Multi-Asset Allocation
buff.setAllocations([
{ asset: "BTC", pct: 60 },
{ asset: "ETH", pct: 40 },
])
Plan Tiers
| Plan | Rounds to | Fee |
|---|---|---|
| Seed | $0.05 | 1.00% |
| Sprout | $0.10 | 0.75% |
| Tree | $0.50 | 0.50% |
| Forest | $1.00 | 0.25% |
REST API
No SDK needed — any language, any agent. Base URL: https://buff.finance
Public Endpoints (no auth required)
# Get auth message to sign
curl https://buff.finance/api/auth
# Get plan tiers and config
curl https://buff.finance/api/plans
# Get live crypto prices
curl https://buff.finance/api/price
# Get portfolio for any wallet
curl https://buff.finance/api/portfolio/WALLET_ADDRESS
# Check accumulator (balance vs threshold)
curl "https://buff.finance/api/accumulator/WALLET_ADDRESS?threshold=5"
# Get transaction history
curl "https://buff.finance/api/activity?address=WALLET_ADDRESS&limit=20"
Generate API Key (no pre-existing key needed)
# 1. Sign "Buff API Authentication" with your Solana keypair
# 2. Send wallet + signature to generate your key
curl -X POST https://buff.finance/api/keys/generate \
-H "Content-Type: application/json" \
-d '{"wallet": "YOUR_PUBKEY", "signature": "BASE64_SIGNATURE"}'
# Response: { "ok": true, "data": { "apiKey": "...", "wallet": "..." } }
# Use both x-api-key and x-wallet headers on all authenticated requests
Authenticated Endpoints (require x-api-key + x-wallet, or x-wallet + x-signature)
# Calculate round-up
curl -X POST https://buff.finance/api/roundup \
-H "x-api-key: YOUR_KEY" \
-d '{"txValueUsd": 27.63, "plan": "tree"}'
# Get wrap instructions (server builds transfer with fees enforced)
curl -X POST https://buff.finance/api/wrap \
-H "x-api-key: YOUR_KEY" \
-d '{"txValueUsd": 27.63, "userPubkey": "...", "buffWalletPubkey": "..."}'
# Get Jupiter swap quote
curl -X POST https://buff.finance/api/swap/quote \
-H "x-api-key: YOUR_KEY" \
-d '{"inputLamports": 100000000, "targetAsset": "BTC"}'
# Build swap transaction (server-side via Jupiter)
curl -X POST https://buff.finance/api/swap/build \
-H "x-api-key: YOUR_KEY" \
-d '{"buffWalletPubkey": "...", "targetAsset": "BTC", "threshold": 5}'
# Execute signed swap transaction
curl -X POST https://buff.finance/api/swap/execute \
-H "x-api-key: YOUR_KEY" \
-d '{"signedTransaction": "base64-signed-tx", "network": "mainnet-beta"}'
# Derive Buff wallet from signature
curl -X POST https://buff.finance/api/wallet/derive \
-d '{"signature": "base64-or-hex-signature"}'
# Register an agent
curl -X POST https://buff.finance/api/agent/register \
-H "x-api-key: YOUR_KEY" \
-d '{"publicKey": "...", "agentId": "my-agent"}'
Interactive API Playground
Try all endpoints live at: https://buff.finance/docs/api/rest
Security
- All fee calculation and treasury addresses are server-side only
- The SDK contains zero sensitive logic — it's just HTTP calls
- No funds are moved without explicit user signing
- Fees cannot be bypassed — the server builds all transfer instructions
Verifying Server-Built Transactions
Before signing any transaction returned by the Buff API, agents and developers should verify:
- Deserialize the instructions returned by
/api/wrap(base64 JSON containing programId, keys, data) - Check that transfers only go to your Buff wallet (user investment) and the known Buff treasury (
4pWnqVxtSfrMo2XK6AarW3rDNoN7UfAMEyHF8Y9KZGHf) - Verify amounts match the breakdown —
userInvestmentLamports+buffFeeLamportsshould equalroundUpLamports - For swaps, verify the unsigned transaction from
/api/swap/buildcontains only Jupiter swap instructions for the expected token pair and amount - Use a scoped/rotatable API key and test with small amounts first
- Compare the breakdown from
/api/roundup(informational) with/api/wrap(executable) — they should match for the same inputs
Links
- Docs: https://buff.finance/docs
- Dashboard: https://buff.finance/dashboard
- API Reference: https://buff.finance/docs/api/rest
- GitHub: https://github.com/nightcode112/Buff
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install buff-roundup - After installation, invoke the skill by name or use
/buff-roundup - Provide required inputs per the skill's parameter spec and get structured output
What is Buff Round-Up Investing?
Auto-invest spare change from every transaction. Rounds up payments to the nearest dollar and invests the difference into BTC, ETH, or SOL via Jupiter on Sol... It is an AI Agent Skill for Claude Code / OpenClaw, with 252 downloads so far.
How do I install Buff Round-Up Investing?
Run "/install buff-roundup" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Buff Round-Up Investing free?
Yes, Buff Round-Up Investing is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Buff Round-Up Investing support?
Buff Round-Up Investing is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Buff Round-Up Investing?
It is built and maintained by Kay (@nightcode112); the current version is v2.2.0.