Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
77262c0
DeBank API setup
harrydev44 Jan 11, 2025
3e9ec57
Subdomain
harrydev44 Jan 11, 2025
f4e4b56
Filter by owned chains
harrydev44 Jan 11, 2025
1340844
Protocols
harrydev44 Jan 11, 2025
290f01a
Token names
harrydev44 Jan 11, 2025
d26fee2
NFT token name
harrydev44 Jan 11, 2025
a16b28d
Tx details
harrydev44 Jan 11, 2025
1ab7754
Uniswap icon
harrydev44 Jan 11, 2025
8179af8
Remove interval
harrydev44 Jan 11, 2025
8c42455
Avatar
harrydev44 Jan 11, 2025
35567ac
Assets section
harrydev44 Jan 11, 2025
a586ea2
Price changes
harrydev44 Jan 11, 2025
75b9bd9
Style
harrydev44 Jan 11, 2025
84e4288
Style
harrydev44 Jan 11, 2025
1dc9cd9
Assets height
harrydev44 Jan 11, 2025
5b5b2db
Config
harrydev44 Jan 11, 2025
b280968
Revert "Config"
harrydev44 Jan 11, 2025
877b2a5
Update route.ts
harrydev44 Jan 11, 2025
afc807e
Update .gitignore
harrydev44 Jan 11, 2025
38282e3
Remove api.ts from gitignore
harrydev44 Jan 11, 2025
2f6867e
Add API config file with environment variable
harrydev44 Jan 11, 2025
8e77e57
Update dashboard.tsx
harrydev44 Jan 11, 2025
b892889
Update dashboard.tsx
harrydev44 Jan 11, 2025
bc1ccce
Update page.tsx
harrydev44 Jan 11, 2025
86c67c6
Update dashboard.tsx
harrydev44 Jan 11, 2025
f750ac9
Update dashboard.tsx
harrydev44 Jan 11, 2025
ed45b8e
Margins
harrydev44 Jan 11, 2025
29a5854
Skeleton
harrydev44 Jan 11, 2025
1cdf952
UI
harrydev44 Jan 11, 2025
bbd84b6
Align
harrydev44 Jan 11, 2025
4b41091
Update dashboard.tsx
harrydev44 Jan 11, 2025
a605f55
Assets
harrydev44 Jan 11, 2025
df119b6
Update dashboard.tsx
harrydev44 Jan 11, 2025
9a673cc
New service
harrydev44 Jan 11, 2025
75ed6d1
Examples
harrydev44 Jan 11, 2025
39f8a99
Update dashboard.tsx
harrydev44 Jan 11, 2025
409f6bf
Update dashboard.tsx
harrydev44 Jan 11, 2025
78feaad
Update dashboard.tsx
harrydev44 Jan 11, 2025
fed10e0
Update dashboard.tsx
harrydev44 Jan 11, 2025
883c617
ensure correct handling of API_KEYS.DEBANK and cleaned up query param…
AicroStrategy Jan 12, 2025
ce62ed2
fix hydration error + mouse tracking + loading screen // and layout +…
AicroStrategy Jan 12, 2025
b5caeb6
Update README.md
AicroStrategy Jan 12, 2025
1088c4f
Create vercel.json
AicroStrategy Jan 12, 2025
3c2d825
Update vercel.json
AicroStrategy Jan 12, 2025
7248d11
Delete vercel.json
AicroStrategy Jan 12, 2025
8b187c0
Create vercel.json
AicroStrategy Jan 12, 2025
326ca1e
Delete vercel.json
AicroStrategy Jan 12, 2025
941bb61
typo
AicroStrategy Jan 12, 2025
c374f73
docs button
AicroStrategy Jan 13, 2025
669076e
hero photo mod
AicroStrategy Jan 13, 2025
5dcda2c
hero photo mod
AicroStrategy Jan 13, 2025
3c921fe
loading screen skip
AicroStrategy Jan 13, 2025
43c665e
made the header a separate component
AicroStrategy Jan 14, 2025
9f4adf0
dark mode toggle
AicroStrategy Jan 14, 2025
3fd3947
Create vercel.json
AicroStrategy Jan 14, 2025
deb8e23
replaced the headeron mobile / smaller screens with a sliding menu
AicroStrategy Jan 14, 2025
61fb2e4
mobile menu item spacer mods
AicroStrategy Jan 14, 2025
d91c475
mobile menu y-space increase
AicroStrategy Jan 14, 2025
1b65207
readme mods: techstack
AicroStrategy Jan 14, 2025
b5db918
added fade-out effect for the hero photo when on dark theme
AicroStrategy Jan 14, 2025
2d4eeca
Merge branch 'dashboard' of https://github.com/AicroStrategy/AicroStr…
AicroStrategy Jan 14, 2025
2aa6df6
deleted unnecessary file
AicroStrategy Jan 14, 2025
5570fc8
missing hero photo
AicroStrategy Jan 14, 2025
8fd5d10
hide pointer from small screens
AicroStrategy Jan 14, 2025
2dafb85
hide pointer from small screens
AicroStrategy Jan 14, 2025
238f254
Delete public/aistr.jpeg
AicroStrategy Jan 28, 2025
9e3c3c8
Add files via upload
AicroStrategy Jan 28, 2025
247e467
Update page.tsx
AicroStrategy Jan 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Dependencies
node_modules
node_modules_old

# Next.js
.next/
out/
build/
.next.config.js

# Environment files
.env*.local
.env

# Debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Vercel
.vercel
23 changes: 15 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

###

<p align="left">🤖 Pioneering AI-powered Bitcoin strategies since 2024<br>🧠 We're constantly evolving our AI algorithms for optimal market analysis<br>💎 Goals: Maximize cbBTC accumulation through strategic positioning</p>
<p align="left">🤖 Pioneering AI-powered Bitcoin strategies since 2024.<br>🧠 We're constantly evolving our AI algorithms for optimal market analysis.<br>💎 Goals: Maximize cbBTC accumulation through strategic positioning.</p>

###

Expand All @@ -25,13 +25,20 @@
###

<div align="left">
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/javascript/javascript-original.svg" height="40" alt="javascript logo" />
<img width="12" />
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/typescript/typescript-original.svg" height="40" alt="typescript logo" />
<img width="12" />
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/react/react-original.svg" height="40" alt="react logo" />
<img width="12" />
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nextjs/nextjs-original.svg" height="40" alt="nextjs logo" />
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/javascript/javascript-original.svg" height="40" alt="javascript logo" />
<img width="12"/>
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/typescript/typescript-original.svg" height="40" alt="typescript logo" />
<img width="12"/>
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/react/react-original.svg" height="40" alt="react logo" />
<img width="12"/>
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nextjs/nextjs-original.svg" height="40" alt="nextjs logo" />
<img width="12"/>
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/vercel/vercel-original.svg" height="40" alt="vercel logo"/>
<img width="12"/>
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/wordpress/wordpress-plain.svg" height="40" alt="wordpress logo"/>
<img width="12"/>
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/woocommerce/woocommerce-plain.svg" height="40" alt="woocommerce logo"/>
<img width="12"/>
</div>

###
24 changes: 24 additions & 0 deletions next.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
images: {
domains: ['static.debank.com'], // Add this for DeBank images
},
async rewrites() {
return {
beforeFiles: [
{
source: '/',
has: [
{
type: 'host',
value: 'stats.aicrostrategy.com',
},
],
destination: '/stats',
},
],
}
},
}

module.exports = nextConfig
22 changes: 22 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,11 @@
"@radix-ui/react-slot": "^1.1.1",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"date-fns": "^4.1.0",
"framer-motion": "^11.15.0",
"lucide-react": "^0.469.0",
"next": "15.1.2",
"next-themes": "^0.4.4",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"tailwind-merge": "^2.6.0",
Expand Down
Binary file added public/aero.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/aicrostrategy-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/aistr.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/avatar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/avatar2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/baseicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/cbtc.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/imageplace.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/morpho.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/uni.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
57 changes: 57 additions & 0 deletions src/app/api/stats/debank/route.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import { NextResponse } from 'next/server';
import { API_KEYS } from '../../../../config/api';

export async function GET(request: Request) {
const { searchParams } = new URL(request.url);
const endpoint = searchParams.get('endpoint');

// Ensure required query parameters are correctly structured
const filteredParams = new URLSearchParams(searchParams);
filteredParams.delete('endpoint'); // Remove 'endpoint' key from params

if (
!endpoint ||
![
'user/total_balance',
'user/history_list',
'token/balance_list',
'user/complex_protocol_list',
'user/token_list'
].includes(endpoint)
) {
return NextResponse.json({ error: 'Invalid endpoint' }, { status: 400 });
}

// Ensure the API key is available
if (!API_KEYS.DEBANK) {
console.error('Missing DeBank API Key!');
return NextResponse.json({ error: 'Server misconfiguration: Missing API key' }, { status: 500 });
}

try {
const url = `https://pro-openapi.debank.com/v1/${endpoint}${filteredParams.toString() ? '?' + filteredParams.toString() : ''}`;
console.log('Fetching URL:', url);

const response = await fetch(url, {
headers: {
'Accept': 'application/json',
'AccessKey': API_KEYS.DEBANK,
},
});

const data = await response.json();
console.log('DeBank API Response:', data);

if (!response.ok) {
throw new Error(`DeBank API error: ${response.status} - ${JSON.stringify(data)}`);
}

return NextResponse.json(data);
} catch (error) {
console.error('DeBank API error:', error);
return NextResponse.json(
{ error: error instanceof Error ? error.message : 'Failed to fetch data from DeBank API' },
{ status: 500 }
);
}
}
5 changes: 4 additions & 1 deletion src/app/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import type { Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google";
import { ThemeProvider } from "@/components/ThemeProvider";
import "./globals.css";

const geistSans = Geist({
Expand Down Expand Up @@ -27,7 +28,9 @@ export default function RootLayout({
<body
className={`${geistSans.variable} ${geistMono.variable} antialiased`}
>
{children}
<ThemeProvider>
{children}
</ThemeProvider>
</body>
</html>
);
Expand Down
Loading