Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,6 @@ package-lock.json




# Remote content output paths
content/docs/acps/103-dynamic-fees.mdx
content/docs/acps/108-evm-event-importing.mdx
Expand All @@ -163,7 +162,6 @@ content/docs/acps/209-eip7702-style-account-abstraction.mdx
content/docs/acps/224-dynamic-gas-limit-in-subnet-evm.mdx
content/docs/acps/226-dynamic-minimum-block-times.mdx
content/docs/acps/23-p-chain-native-transfers.mdx
content/docs/acps/236-continuous-staking.mdx
content/docs/acps/24-shanghai-eips.mdx
content/docs/acps/25-vm-application-errors.mdx
content/docs/acps/30-avalanche-warp-x-evm.mdx
Expand Down
30 changes: 28 additions & 2 deletions app/docs/docs-layout-wrapper.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { DocsSubNav } from '@/components/navigation/docs-subnav';
import { DocsNavbarToggle } from '@/components/navigation/docs-navbar-toggle';
import { ForceMobileSidebar } from '@/components/navigation/force-mobile-sidebar';
import { NavbarDropdownInjector } from '@/components/navigation/navbar-dropdown-injector';
import {
import {
BookOpen,
Code,
Layers,
Expand All @@ -22,7 +22,8 @@ import {
CircleDollarSign,
Terminal,
Package,
Milestone
Milestone,
LayoutTemplate
} from 'lucide-react';

interface DocsLayoutWrapperProps {
Expand All @@ -32,6 +33,7 @@ interface DocsLayoutWrapperProps {
rpcsTree: any;
toolingTree: any;
acpsTree: any;
templatesTree: any;
}

export function DocsLayoutWrapper({
Expand All @@ -41,6 +43,7 @@ export function DocsLayoutWrapper({
rpcsTree,
toolingTree,
acpsTree,
templatesTree,
}: DocsLayoutWrapperProps) {
const pathname = usePathname();

Expand All @@ -61,6 +64,8 @@ export function DocsLayoutWrapper({
document.body.setAttribute('data-docs-section', 'api-reference');
} else if (pathname.startsWith('/docs/rpcs')) {
document.body.setAttribute('data-docs-section', 'rpcs');
} else if (pathname.startsWith('/docs/templates')) {
document.body.setAttribute('data-docs-section', 'templates');
} else if (pathname.startsWith('/docs')) {
document.body.setAttribute('data-docs-section', 'documentation');
}
Expand Down Expand Up @@ -228,6 +233,22 @@ export function DocsLayoutWrapper({
},
];

// Templates hamburger menu options
const templatesOptions = [
{
title: 'x402 Starter Kit',
description: 'Payment-gated APIs with micropayments',
icon: <CircleDollarSign className="w-5 h-5" />,
url: '/docs/templates/x402-starter-kit',
},
{
title: 'EncryptedERC',
description: 'Private transactions with zero-knowledge proofs',
icon: <Code className="w-5 h-5" />,
url: '/docs/templates/encrypted-erc',
},
];

// Determine which section we're in and get the appropriate tree
let pageTree;
let sidebarOptions: any = {};
Expand All @@ -247,6 +268,11 @@ export function DocsLayoutWrapper({
sidebarOptions = {
tabs: toolingOptions,
};
} else if (pathname.startsWith('/docs/templates')) {
pageTree = templatesTree;
sidebarOptions = {
tabs: templatesOptions,
};
} else if (pathname.startsWith('/docs/acps')) {
pageTree = acpsTree;
// No hamburger menu for ACPs - explicitly disable tabs
Expand Down
7 changes: 5 additions & 2 deletions app/docs/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import type { ReactNode } from 'react';
import { baseOptions } from '@/app/layout.config';
import {
import {
getDocumentationTree,
getApiReferenceTree,
getRpcsTree,
getToolingTree,
getAcpsTree
getAcpsTree,
getTemplatesTree
} from '@/lib/source';
import { DocsLayoutWrapper } from './docs-layout-wrapper';
import { LayoutWrapper } from '@/app/layout-wrapper.client';
Expand All @@ -19,6 +20,7 @@ export default function Layout({ children }: { children: ReactNode }) {
const rpcsTree = getRpcsTree();
const toolingTree = getToolingTree();
const acpsTree = getAcpsTree();
const templatesTree = getTemplatesTree();

return (
<LayoutWrapper baseOptions={baseOptions}>
Expand All @@ -28,6 +30,7 @@ export default function Layout({ children }: { children: ReactNode }) {
rpcsTree={rpcsTree}
toolingTree={toolingTree}
acpsTree={acpsTree}
templatesTree={templatesTree}
>
{children}
</DocsLayoutWrapper>
Expand Down
12 changes: 6 additions & 6 deletions components/landing/student-callout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,24 @@ export default function StudentCallout() {
<section className="p-4">
<div className="max-w-7xl w-full mx-auto ">

<div className="bg-white dark:bg-zinc-900/50 rounded-2xl shadow-lg border border-zinc-200/80 dark:border-zinc-800/80 p-4 md:p-8">
<div className="bg-white rounded-2xl shadow-lg border border-gray-100 p-4 md:p-8">
<div className="flex flex-col md:flex-row items-center gap-8">
{/* Left side - Content */}
<div className="flex-1 text-center md:text-left">
<div className="flex items-center justify-center md:justify-start gap-3 mb-4">
<div className="p-2 bg-blue-100 dark:bg-blue-900/30 rounded-lg">
<GraduationCap className="h-6 w-6 text-blue-600 dark:text-blue-400" />
<div className="p-2 bg-blue-100 rounded-lg">
<GraduationCap className="h-6 w-6 text-blue-600" />
</div>
<span className="text-sm font-medium text-blue-600 dark:text-blue-400 uppercase tracking-wide">
<span className="text-sm font-medium text-blue-600 uppercase tracking-wide">
For Students
</span>
</div>

<h2 className="text-3xl md:text-4xl font-bold text-zinc-900 dark:text-white mb-4">
<h2 className="text-3xl md:text-4xl font-bold text-gray-900 mb-4">
Build the Future with Us
</h2>

<p className="text-lg text-zinc-600 dark:text-zinc-400 mb-6 leading-relaxed">
<p className="text-lg text-gray-600 mb-6 leading-relaxed">
Join thousands of students learning to build on blockchain. Get exclusive access to
student resources, workshops, and opportunities to connect with the Avalanche Builder community.
</p>
Expand Down
10 changes: 8 additions & 2 deletions components/navigation/docs-subnav.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ const tabs = [
!path.startsWith("/docs/api-reference") &&
!path.startsWith("/docs/rpcs") &&
!path.startsWith("/docs/tooling") &&
!path.startsWith("/docs/acps")),
!path.startsWith("/docs/acps") &&
!path.startsWith("/docs/templates")),
},
{
label: "Node RPCs",
Expand All @@ -27,10 +28,15 @@ const tabs = [
pathMatch: (path: string) => path.startsWith("/docs/api-reference"),
},
{
label: "Developer Tools",
label: "SDKs",
href: "/docs/tooling/avalanche-sdk",
pathMatch: (path: string) => path.startsWith("/docs/tooling"),
},
{
label: "Templates",
href: "/docs/templates",
pathMatch: (path: string) => path.startsWith("/docs/templates"),
},
{
label: "ACPs",
href: "/docs/acps",
Expand Down
6 changes: 2 additions & 4 deletions components/toolbox/hooks/useWrappedNativeToken.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,7 @@ export function useWrappedNativeToken(): WrappedNativeTokenHook {
abi: WrappedNativeToken.abi,
functionName: 'deposit',
value: parseEther(amount),
account: walletEVMAddress as `0x${string}`,
chain: viemChain
account: walletEVMAddress as `0x${string}`
});

notify({
Expand All @@ -55,8 +54,7 @@ export function useWrappedNativeToken(): WrappedNativeTokenHook {
abi: WrappedNativeToken.abi,
functionName: 'withdraw',
args: [parseEther(amount)],
account: walletEVMAddress as `0x${string}`,
chain: viemChain
account: walletEVMAddress as `0x${string}`
});

notify({
Expand Down
26 changes: 0 additions & 26 deletions components/toolbox/stores/l1ListStore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,32 +110,6 @@ const l1ListInitialStateFuji = {
"EVM-compatible L1 chain",
"Deploy dApps & test interoperability with Dispatch"
]
},
{
id: "2TTSLdR6uEM3R5Ukej3YThHSyPf6XCfppAsh5vAuzFA1rY5w7e",
name: "Dexalot",
description: "Dexalot is a decentralized exchange (DEX) that operates on its own Avalanche L1, offering a central limit order book (CLOB) experience",
rpcUrl: "https://subnets.avax.network/dexalot/testnet/rpc",
evmChainId: 432201,
coinName: "ALOT",
isTestnet: true,
subnetId: "9m6a3Qte8FaRbLZixLhh8Ptdkemm4csNaLwQeKkENx5wskbWP",
wrappedTokenAddress: "",
validatorManagerAddress: "",
logoUrl: "https://images.ctfassets.net/gcj8jwzm6086/6tKCXL3AqxfxSUzXLGfN6r/be31715b87bc30c0e4d3da01a3d24e9a/dexalot-subnet.png",
wellKnownTeleporterRegistryAddress: "0xF86Cb19Ad8405AEFa7d09C778215D2Cb6eBfB228",
hasBuilderHubFaucet: true,
externalFaucetUrl: "https://core.app/tools/testnet-faucet",
explorerUrl: "https://subnets-test.avax.network/dexalot",
faucetThresholds: {
threshold: 1.0,
dripAmount: 2
},
features: [
"EVM-compatible L1 chain",
"Decentralized exchange with CLOB",
"Deploy dApps on Dexalot L1"
]
}
] as L1ListItem[],
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,6 @@ authors: [nicolasarnedo]
icon: Book
---

## The Transformation: Two Pieces of the Puzzle

Converting from PoA to PoS isn't about replacing your entire blockchain—it's about strategically combining two concepts you may have already learned in separate courses:

![Proof of Stake Architecture](https://qizat5l3bwvomkny.public.blob.vercel-storage.com/PoS.png)

## Proof of Stake as Sybil Protection

Proof of Stake (PoS) is fundamentally a **Sybil protection mechanism** that secures blockchain networks by preventing malicious actors from gaining control through the creation of multiple fake identities. Sybil protection mechanisms serve three critical functions:
Expand Down

This file was deleted.

This file was deleted.

Loading