├── .editorconfig
├── .eslintrc.js
├── .gitattributes
├── .github
├── ISSUE_TEMPLATE
│ ├── config.yml
│ ├── content_issue.yml
│ └── documentation_bug_report.md
├── PULL_REQUEST_TEMPLATE.md
├── linters
│ └── semgrep
│ │ └── pull-request-target-code-checkout.yaml
├── tagging
│ ├── script.js
│ └── tagsByIssueSection.json
└── workflows
│ ├── ci.yml
│ ├── close-stale-issues.yaml
│ ├── issue-label-tag.yml
│ ├── link-check.yml
│ └── semgrep.yaml
├── .gitignore
├── .npmignore
├── .npmrc
├── .prettierignore
├── .prettierrc.json
├── .tool-versions
├── .vscode
└── settings.json
├── CODEOWNERS
├── LICENSE
├── README.md
├── apps
└── nextra
│ ├── .env.example
│ ├── .prettierignore
│ ├── README.md
│ ├── components
│ ├── api-reference
│ │ ├── ApiReference.tsx
│ │ ├── DynamicApiReference.tsx
│ │ ├── index.ts
│ │ └── utils.ts
│ ├── beta-notice
│ │ ├── IndexerBetaNotice.tsx
│ │ └── index.tsx
│ ├── buttons
│ │ └── Button.tsx
│ ├── card
│ │ ├── Card.tsx
│ │ └── index.tsx
│ ├── codeblock
│ │ ├── Codeblock.tsx
│ │ └── index.tsx
│ ├── diagrams
│ │ ├── cache.tsx
│ │ ├── infinite.tsx
│ │ ├── pagination.tsx
│ │ ├── use-draw.ts
│ │ └── welcome.tsx
│ ├── error
│ │ ├── Error.tsx
│ │ ├── LocaleError.tsx
│ │ └── index.tsx
│ ├── external.mdx
│ ├── faucet
│ │ ├── FaucetForm.tsx
│ │ └── index.tsx
│ ├── features.module.css
│ ├── features.tsx
│ ├── framework-reference
│ │ └── index.tsx
│ ├── graphql
│ │ ├── DynamicGraphQL.tsx
│ │ ├── GraphQLSkeleton.tsx
│ │ ├── NonDynamicGraphQL.tsx
│ │ ├── OLD_GraphQL.tsx
│ │ ├── index.tsx
│ │ ├── nft
│ │ │ ├── DynamicNFTGraphQL.tsx
│ │ │ └── NFTGraphQL.tsx
│ │ └── util.ts
│ ├── index.tsx
│ ├── landing
│ │ ├── codeSnippets.ts
│ │ ├── components
│ │ │ ├── Accordion.tsx
│ │ │ ├── Button.tsx
│ │ │ ├── Carousel.tsx
│ │ │ ├── CodeBlock.tsx
│ │ │ ├── GradientText.tsx
│ │ │ ├── Icons.tsx
│ │ │ ├── Illustrations
│ │ │ │ ├── ChainIllustration.tsx
│ │ │ │ ├── ParallelExecutionIllustration.tsx
│ │ │ │ ├── PerformanceIllustration.tsx
│ │ │ │ └── ValidatorsIllustration.tsx
│ │ │ ├── LargeCarousel.tsx
│ │ │ └── Section.tsx
│ │ ├── index.tsx
│ │ └── sections
│ │ │ ├── BlockchainSection.tsx
│ │ │ ├── DevelopersSection.tsx
│ │ │ ├── FooterSection.tsx
│ │ │ ├── MoveSection.tsx
│ │ │ ├── TestimonialsSection.tsx
│ │ │ ├── TitleSection.tsx
│ │ │ └── ToolingSection.tsx
│ ├── login-button
│ │ └── index.tsx
│ ├── media
│ │ └── index.tsx
│ ├── move-reference
│ │ ├── ModuleSelectContainer.tsx
│ │ ├── MoveReference.tsx
│ │ ├── MoveReferenceProvider.tsx
│ │ ├── index.tsx
│ │ ├── shared.ts
│ │ └── useMoveContent.tsx
│ ├── preload-search
│ │ ├── DynamicPreloadSearch.tsx
│ │ ├── PreloadSearch.tsx
│ │ └── index.ts
│ ├── remote-codeblock
│ │ ├── RemoteCodeblock.tsx
│ │ ├── index.tsx
│ │ ├── types.ts
│ │ └── utils.ts
│ ├── select
│ │ ├── Select.tsx
│ │ └── index.tsx
│ ├── tabs
│ │ ├── Tabs.tsx
│ │ ├── index.tsx
│ │ └── tabs.module.css
│ ├── themed-image
│ │ ├── ThemedImage.tsx
│ │ └── index.tsx
│ └── video.tsx
│ ├── docs.config.js
│ ├── generate-language-sitemaps.cjs
│ ├── generate-sitemap-index.cjs
│ ├── hooks
│ └── useAuth.ts
│ ├── lib
│ └── firebase.ts
│ ├── next-env.d.ts
│ ├── next-sitemap.config.mjs
│ ├── next.config.mjs
│ ├── oklchColorsPlugin.cjs
│ ├── package.json
│ ├── pages
│ ├── 404.tsx
│ ├── _app.tsx
│ ├── _document.tsx
│ ├── api
│ │ ├── Inter-SemiBold.otf
│ │ ├── Satoshi-Medium.otf
│ │ ├── compile-mdx.tsx
│ │ └── og.png.tsx
│ ├── en
│ │ ├── _meta.ts
│ │ ├── build
│ │ │ ├── _meta.tsx
│ │ │ ├── apis.mdx
│ │ │ ├── apis
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── aptos-labs-developer-portal.mdx
│ │ │ │ ├── data-providers.mdx
│ │ │ │ ├── faucet-api.mdx
│ │ │ │ ├── fullnode-rest-api-reference.mdx
│ │ │ │ └── fullnode-rest-api.mdx
│ │ │ ├── cli.mdx
│ │ │ ├── cli
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── formatting-move-contracts.mdx
│ │ │ │ ├── install-cli
│ │ │ │ │ ├── _meta.ts
│ │ │ │ │ ├── install-cli-linux.mdx
│ │ │ │ │ ├── install-cli-mac.mdx
│ │ │ │ │ ├── install-cli-specific-version.mdx
│ │ │ │ │ └── install-cli-windows.mdx
│ │ │ │ ├── managing-a-network-node.mdx
│ │ │ │ ├── public-network.mdx
│ │ │ │ ├── replay-past-transactions.mdx
│ │ │ │ ├── running-a-local-network.mdx
│ │ │ │ ├── setup-cli.mdx
│ │ │ │ ├── setup-cli
│ │ │ │ │ └── install-move-prover.mdx
│ │ │ │ ├── start-from-template.mdx
│ │ │ │ ├── trying-things-on-chain.mdx
│ │ │ │ ├── trying-things-on-chain
│ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ ├── create-test-accounts.mdx
│ │ │ │ │ ├── ledger.mdx
│ │ │ │ │ └── looking-up-account-info.mdx
│ │ │ │ ├── working-with-move-contracts.mdx
│ │ │ │ └── working-with-move-contracts
│ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ ├── arguments-in-json-tutorial.mdx
│ │ │ │ │ ├── local-simulation-benchmarking-and-gas-profiling.mdx
│ │ │ │ │ └── multi-signature-tutorial.mdx
│ │ │ ├── create-aptos-dapp.mdx
│ │ │ ├── create-aptos-dapp
│ │ │ │ ├── _meta.tsx
│ │ │ │ └── faq.mdx
│ │ │ ├── get-started.mdx
│ │ │ ├── get-started
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── developer-setup.mdx
│ │ │ │ ├── ethereum-cheatsheet.mdx
│ │ │ │ └── solana-cheatsheet.mdx
│ │ │ ├── guides.mdx
│ │ │ ├── guides
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── aptos-keyless.mdx
│ │ │ │ ├── aptos-keyless
│ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ ├── federated-keyless.mdx
│ │ │ │ │ ├── federated-keyless
│ │ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ │ ├── integration-guide.mdx
│ │ │ │ │ │ ├── key-considerations.mdx
│ │ │ │ │ │ ├── other.mdx
│ │ │ │ │ │ └── simple-example.mdx
│ │ │ │ │ ├── how-keyless-works.mdx
│ │ │ │ │ ├── integration-guide.mdx
│ │ │ │ │ ├── introduction.mdx
│ │ │ │ │ ├── oidc-support.mdx
│ │ │ │ │ ├── other.mdx
│ │ │ │ │ └── simple-example.mdx
│ │ │ │ ├── build-e2e-dapp.mdx
│ │ │ │ ├── build-e2e-dapp
│ │ │ │ │ ├── 1-create-smart-contract.mdx
│ │ │ │ │ ├── 2-set-up-the-frontend.mdx
│ │ │ │ │ ├── 3-fetch-data-from-chain.mdx
│ │ │ │ │ ├── 4-submit-data-to-chain.mdx
│ │ │ │ │ ├── 5-handle-tasks.mdx
│ │ │ │ │ └── _meta.tsx
│ │ │ │ ├── exchanges.mdx
│ │ │ │ ├── first-coin.mdx
│ │ │ │ ├── first-fungible-asset.mdx
│ │ │ │ ├── first-move-module.mdx
│ │ │ │ ├── first-multisig.mdx
│ │ │ │ ├── first-transaction.mdx
│ │ │ │ ├── key-rotation.mdx
│ │ │ │ ├── multisig-managed-fungible-asset.mdx
│ │ │ │ ├── oracles.mdx
│ │ │ │ ├── sponsored-transactions.mdx
│ │ │ │ ├── system-integrators-guide.mdx
│ │ │ │ ├── transaction-management.mdx
│ │ │ │ └── your-first-nft.mdx
│ │ │ ├── indexer.mdx
│ │ │ ├── indexer
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── indexer-api.mdx
│ │ │ │ ├── indexer-api
│ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ ├── account-transactions.mdx
│ │ │ │ │ ├── ans-lookup.mdx
│ │ │ │ │ ├── architecture.mdx
│ │ │ │ │ ├── fungible-asset-balances.mdx
│ │ │ │ │ ├── fungible-asset-info.mdx
│ │ │ │ │ ├── get-delegators.mdx
│ │ │ │ │ ├── get-nft-collections.mdx
│ │ │ │ │ ├── get-nfts.mdx
│ │ │ │ │ ├── indexer-reference.mdx
│ │ │ │ │ ├── self-hosted.mdx
│ │ │ │ │ └── token-metadata.mdx
│ │ │ │ ├── indexer-sdk.mdx
│ │ │ │ ├── indexer-sdk
│ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ ├── advanced-tutorials
│ │ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ │ ├── processor-test.mdx
│ │ │ │ │ │ ├── test-transactions.mdx
│ │ │ │ │ │ ├── txn-importer.mdx
│ │ │ │ │ │ └── txn-script.mdx
│ │ │ │ │ ├── documentation.mdx
│ │ │ │ │ ├── documentation
│ │ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ │ ├── connect-steps.mdx
│ │ │ │ │ │ ├── create-processor.mdx
│ │ │ │ │ │ ├── define-schema.mdx
│ │ │ │ │ │ ├── run-processor.mdx
│ │ │ │ │ │ ├── setup.mdx
│ │ │ │ │ │ ├── steps.mdx
│ │ │ │ │ │ ├── steps
│ │ │ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ │ │ ├── parsing-txns.mdx
│ │ │ │ │ │ │ └── transaction-stream.mdx
│ │ │ │ │ │ └── version-tracking.mdx
│ │ │ │ │ └── quickstart.mdx
│ │ │ │ ├── legacy.mdx
│ │ │ │ ├── legacy
│ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ ├── custom-data-model.mdx
│ │ │ │ │ ├── indexer-fullnode.mdx
│ │ │ │ │ └── migration.mdx
│ │ │ │ ├── nft-aggregator.mdx
│ │ │ │ ├── nft-aggregator
│ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ ├── analytics-api.mdx
│ │ │ │ │ ├── graphql-api.mdx
│ │ │ │ │ ├── marketplaces.mdx
│ │ │ │ │ ├── marketplaces
│ │ │ │ │ │ ├── bluemove.mdx
│ │ │ │ │ │ ├── rarible.mdx
│ │ │ │ │ │ ├── topaz.mdx
│ │ │ │ │ │ ├── tradeport.mdx
│ │ │ │ │ │ └── wapal.mdx
│ │ │ │ │ └── nft-aggregator-table.mdx
│ │ │ │ ├── txn-stream.mdx
│ │ │ │ └── txn-stream
│ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ ├── aptos-hosted-txn-stream.mdx
│ │ │ │ │ ├── local-development.mdx
│ │ │ │ │ └── self-hosted.mdx
│ │ │ ├── sdks.mdx
│ │ │ ├── sdks
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── community-sdks.mdx
│ │ │ │ ├── community-sdks
│ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ ├── kotlin-sdk.mdx
│ │ │ │ │ ├── kotlin-sdk
│ │ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ │ ├── account.mdx
│ │ │ │ │ │ ├── building-transactions.mdx
│ │ │ │ │ │ ├── client-configuration.mdx
│ │ │ │ │ │ ├── fetch-data-via-sdk.mdx
│ │ │ │ │ │ ├── for-ios-devs
│ │ │ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ │ │ ├── aptos-kit.mdx
│ │ │ │ │ │ │ └── getting-started.mdx
│ │ │ │ │ │ ├── quickstart.mdx
│ │ │ │ │ │ └── sponsored-transactions.mdx
│ │ │ │ │ ├── swift-sdk.mdx
│ │ │ │ │ └── unity-opendive-sdk.mdx
│ │ │ │ ├── cpp-sdk.mdx
│ │ │ │ ├── dotnet-sdk.mdx
│ │ │ │ ├── dotnet-sdk
│ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ ├── accounts
│ │ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ │ ├── ed25519.mdx
│ │ │ │ │ │ ├── keyless.mdx
│ │ │ │ │ │ └── multikey.mdx
│ │ │ │ │ ├── dotnet-examples.mdx
│ │ │ │ │ ├── getting-started.mdx
│ │ │ │ │ ├── godot-integration.mdx
│ │ │ │ │ ├── queries
│ │ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ │ └── view.mdx
│ │ │ │ │ ├── transactions
│ │ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ │ ├── basic-transactions.mdx
│ │ │ │ │ │ └── sponsored-transactions.mdx
│ │ │ │ │ └── unity-integration.mdx
│ │ │ │ ├── go-sdk.mdx
│ │ │ │ ├── go-sdk
│ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ ├── account.mdx
│ │ │ │ │ ├── building-transactions.mdx
│ │ │ │ │ ├── building-transactions
│ │ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ │ ├── batching-transactions.mdx
│ │ │ │ │ │ ├── bcs-format.mdx
│ │ │ │ │ │ ├── multi-agent-transactions.mdx
│ │ │ │ │ │ ├── simulating-transactions.mdx
│ │ │ │ │ │ └── sponsoring-transactions.mdx
│ │ │ │ │ ├── fetch-data-via-sdk.mdx
│ │ │ │ │ └── go-examples.mdx
│ │ │ │ ├── python-sdk.mdx
│ │ │ │ ├── rust-sdk.mdx
│ │ │ │ ├── ts-sdk.mdx
│ │ │ │ ├── ts-sdk
│ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ ├── account.mdx
│ │ │ │ │ ├── account
│ │ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ │ ├── account-abstraction.mdx
│ │ │ │ │ │ └── derivable-account-abstraction.mdx
│ │ │ │ │ ├── building-transactions.mdx
│ │ │ │ │ ├── building-transactions
│ │ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ │ ├── batching-transactions.mdx
│ │ │ │ │ │ ├── bcs-format.mdx
│ │ │ │ │ │ ├── multi-agent-transactions.mdx
│ │ │ │ │ │ ├── script-composer.mdx
│ │ │ │ │ │ ├── simulating-transactions.mdx
│ │ │ │ │ │ └── sponsoring-transactions.mdx
│ │ │ │ │ ├── confidential-asset.mdx
│ │ │ │ │ ├── fetch-data-via-sdk.mdx
│ │ │ │ │ ├── legacy-ts-sdk.mdx
│ │ │ │ │ ├── legacy-ts-sdk
│ │ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ │ └── migration-guide.mdx
│ │ │ │ │ ├── quickstart.mdx
│ │ │ │ │ ├── ts-examples.mdx
│ │ │ │ │ └── type-safe-contract.mdx
│ │ │ │ ├── unity-sdk.mdx
│ │ │ │ ├── wallet-adapter.mdx
│ │ │ │ └── wallet-adapter
│ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ ├── browser-extension-wallets.mdx
│ │ │ │ │ ├── dapp.mdx
│ │ │ │ │ ├── wallet-standards.mdx
│ │ │ │ │ ├── wallets.mdx
│ │ │ │ │ └── x-chain-accounts.mdx
│ │ │ ├── smart-contracts.mdx
│ │ │ └── smart-contracts
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── aptos-coin.mdx
│ │ │ │ ├── aptos-standards.mdx
│ │ │ │ ├── aptos-token.mdx
│ │ │ │ ├── bcs.mdx
│ │ │ │ ├── book.mdx
│ │ │ │ ├── book
│ │ │ │ ├── SUMMARY.mdx
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── abilities.mdx
│ │ │ │ ├── abort-and-assert.mdx
│ │ │ │ ├── address.mdx
│ │ │ │ ├── bool.mdx
│ │ │ │ ├── coding-conventions.mdx
│ │ │ │ ├── conditionals.mdx
│ │ │ │ ├── constants.mdx
│ │ │ │ ├── enums.mdx
│ │ │ │ ├── equality.mdx
│ │ │ │ ├── friends.mdx
│ │ │ │ ├── functions.mdx
│ │ │ │ ├── generics.mdx
│ │ │ │ ├── global-storage-operators.mdx
│ │ │ │ ├── global-storage-structure.mdx
│ │ │ │ ├── integers.mdx
│ │ │ │ ├── loops.mdx
│ │ │ │ ├── modules-and-scripts.mdx
│ │ │ │ ├── move-2.mdx
│ │ │ │ ├── move-tutorial.mdx
│ │ │ │ ├── package-upgrades.mdx
│ │ │ │ ├── packages.mdx
│ │ │ │ ├── references.mdx
│ │ │ │ ├── signer.mdx
│ │ │ │ ├── standard-library.mdx
│ │ │ │ ├── structs-and-resources.mdx
│ │ │ │ ├── tuples.mdx
│ │ │ │ ├── unit-testing.mdx
│ │ │ │ ├── uses.mdx
│ │ │ │ ├── variables.mdx
│ │ │ │ └── vector.mdx
│ │ │ │ ├── compiler_v2.mdx
│ │ │ │ ├── compiling.mdx
│ │ │ │ ├── confidential-asset.mdx
│ │ │ │ ├── create-package.mdx
│ │ │ │ ├── cryptography.mdx
│ │ │ │ ├── debugging.mdx
│ │ │ │ ├── deployment.mdx
│ │ │ │ ├── digital-asset.mdx
│ │ │ │ ├── error-codes.mdx
│ │ │ │ ├── fungible-asset.mdx
│ │ │ │ ├── linter.mdx
│ │ │ │ ├── maps.mdx
│ │ │ │ ├── modules-on-aptos.mdx
│ │ │ │ ├── move-reference.mdx
│ │ │ │ ├── move-security-guidelines.mdx
│ │ │ │ ├── object
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── creating-objects.mdx
│ │ │ │ └── using-objects.mdx
│ │ │ │ ├── objects.mdx
│ │ │ │ ├── prover.mdx
│ │ │ │ ├── prover
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── prover-guide.mdx
│ │ │ │ ├── spec-lang.mdx
│ │ │ │ └── supporting-resources.mdx
│ │ │ │ ├── randomness.mdx
│ │ │ │ ├── reference.mdx
│ │ │ │ ├── resource-accounts.mdx
│ │ │ │ ├── scripts.mdx
│ │ │ │ ├── scripts
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── compiling-scripts.mdx
│ │ │ │ ├── running-scripts.mdx
│ │ │ │ ├── script-tutorial.mdx
│ │ │ │ └── writing-scripts.mdx
│ │ │ │ ├── smart-vector.mdx
│ │ │ │ ├── table.mdx
│ │ │ │ ├── third-party-dependencies.mdx
│ │ │ │ ├── tokens.mdx
│ │ │ │ ├── vector.mdx
│ │ │ │ └── why-move.mdx
│ │ ├── developer-platforms
│ │ │ ├── _meta.ts
│ │ │ ├── contribute.mdx
│ │ │ └── contribute
│ │ │ │ ├── _meta.ts
│ │ │ │ ├── components
│ │ │ │ ├── _meta.ts
│ │ │ │ ├── callout.mdx
│ │ │ │ ├── card.mdx
│ │ │ │ ├── codeblock.mdx
│ │ │ │ ├── filetree.mdx
│ │ │ │ ├── graphql-editor.mdx
│ │ │ │ ├── image.mdx
│ │ │ │ ├── latex.mdx
│ │ │ │ ├── link.mdx
│ │ │ │ ├── markdown.mdx
│ │ │ │ ├── mermaid.mdx
│ │ │ │ ├── npm2yarn.mdx
│ │ │ │ ├── organize-files.mdx
│ │ │ │ ├── remote-codeblock.mdx
│ │ │ │ ├── ssg.mdx
│ │ │ │ ├── steps.mdx
│ │ │ │ ├── table.mdx
│ │ │ │ ├── tabs.mdx
│ │ │ │ └── themed-image.mdx
│ │ │ │ ├── examples
│ │ │ │ ├── _meta.ts
│ │ │ │ └── pairings.mdx
│ │ │ │ └── setup
│ │ │ │ ├── SEO.mdx
│ │ │ │ ├── _meta.ts
│ │ │ │ ├── analytics.mdx
│ │ │ │ ├── deployment.mdx
│ │ │ │ ├── docs-config.mdx
│ │ │ │ ├── i18n.mdx
│ │ │ │ ├── maintenance.mdx
│ │ │ │ ├── mdx.mdx
│ │ │ │ ├── migrating-from-docusaurus.mdx
│ │ │ │ ├── organize-files-advanced.mdx
│ │ │ │ ├── organize-files.mdx
│ │ │ │ └── troubleshooting.mdx
│ │ ├── index.mdx
│ │ └── network
│ │ │ ├── _meta.ts
│ │ │ ├── blockchain.mdx
│ │ │ ├── blockchain
│ │ │ ├── _meta.ts
│ │ │ ├── accounts.mdx
│ │ │ ├── aptos-white-paper.mdx
│ │ │ ├── base-gas.mdx
│ │ │ ├── blockchain-deep-dive.mdx
│ │ │ ├── blocks.mdx
│ │ │ ├── delegated-staking.mdx
│ │ │ ├── events.mdx
│ │ │ ├── execution.mdx
│ │ │ ├── fullnodes.mdx
│ │ │ ├── gas-txn-fee.mdx
│ │ │ ├── governance.mdx
│ │ │ ├── move.mdx
│ │ │ ├── node-networks-sync.mdx
│ │ │ ├── resources.mdx
│ │ │ ├── staking.mdx
│ │ │ ├── txns-states.mdx
│ │ │ └── validator-nodes.mdx
│ │ │ ├── faucet.mdx
│ │ │ ├── glossary.mdx
│ │ │ ├── nodes.mdx
│ │ │ ├── nodes
│ │ │ ├── _meta.tsx
│ │ │ ├── bootstrap-fullnode.mdx
│ │ │ ├── bootstrap-fullnode
│ │ │ │ ├── aptos-db-restore.mdx
│ │ │ │ └── bootstrap-fullnode.mdx
│ │ │ ├── building-from-source.mdx
│ │ │ ├── configure.mdx
│ │ │ ├── configure
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── consensus-observer.mdx
│ │ │ │ ├── data-pruning.mdx
│ │ │ │ ├── node-files-all-networks.mdx
│ │ │ │ ├── node-files-all-networks
│ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ ├── node-files-devnet.mdx
│ │ │ │ │ ├── node-files-mainnet.mdx
│ │ │ │ │ └── node-files-testnet.mdx
│ │ │ │ ├── state-sync.mdx
│ │ │ │ └── telemetry.mdx
│ │ │ ├── full-node.mdx
│ │ │ ├── full-node
│ │ │ │ ├── _category_.json
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── deployments.mdx
│ │ │ │ ├── deployments
│ │ │ │ │ ├── _meta.tsx
│ │ │ │ │ ├── using-docker.mdx
│ │ │ │ │ ├── using-gcp.mdx
│ │ │ │ │ └── using-source-code.mdx
│ │ │ │ ├── modify.mdx
│ │ │ │ ├── modify
│ │ │ │ │ ├── fullnode-network-connections.mdx
│ │ │ │ │ ├── network-identity-fullnode.mdx
│ │ │ │ │ └── update-fullnode-with-new-releases.mdx
│ │ │ │ ├── pfn-requirements.mdx
│ │ │ │ └── verify-pfn.mdx
│ │ │ ├── localnet.mdx
│ │ │ ├── localnet
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── local-development-network.mdx
│ │ │ │ └── run-a-localnet.mdx
│ │ │ ├── measure.mdx
│ │ │ ├── measure
│ │ │ │ ├── important-metrics.mdx
│ │ │ │ ├── node-health-checker-faq.mdx
│ │ │ │ ├── node-health-checker.mdx
│ │ │ │ └── node-inspection-service.mdx
│ │ │ ├── networks.mdx
│ │ │ ├── validator-node.mdx
│ │ │ └── validator-node
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── connect-nodes.mdx
│ │ │ │ ├── connect-nodes
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── connect-to-aptos-network.mdx
│ │ │ │ ├── delegation-pool-operations.mdx
│ │ │ │ ├── staking-pool-operations.mdx
│ │ │ │ └── staking-pool-voter.mdx
│ │ │ │ ├── deploy-nodes.mdx
│ │ │ │ ├── deploy-nodes
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── using-aws.mdx
│ │ │ │ ├── using-azure.mdx
│ │ │ │ ├── using-docker.mdx
│ │ │ │ ├── using-gcp.mdx
│ │ │ │ └── using-source-code.mdx
│ │ │ │ ├── modify-nodes.mdx
│ │ │ │ ├── modify-nodes
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── rotate-consensus-key.mdx
│ │ │ │ ├── shutting-down-nodes.mdx
│ │ │ │ └── update-validator-node.mdx
│ │ │ │ ├── node-requirements.mdx
│ │ │ │ ├── operator.mdx
│ │ │ │ ├── verify-nodes.mdx
│ │ │ │ └── verify-nodes
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── leaderboard-metrics.mdx
│ │ │ │ └── node-liveness-criteria.mdx
│ │ │ └── releases.mdx
│ └── zh
│ │ ├── _meta.ts
│ │ ├── build
│ │ ├── _meta.tsx
│ │ ├── apis.mdx
│ │ ├── apis
│ │ │ ├── _meta.tsx
│ │ │ ├── aptos-labs-developer-portal.mdx
│ │ │ ├── data-providers.mdx
│ │ │ ├── faucet-api.mdx
│ │ │ ├── fullnode-rest-api-reference.mdx
│ │ │ └── fullnode-rest-api.mdx
│ │ ├── cli.mdx
│ │ ├── cli
│ │ │ ├── _meta.tsx
│ │ │ ├── formatting-move-contracts.mdx
│ │ │ ├── install-cli
│ │ │ │ ├── _meta.ts
│ │ │ │ ├── install-cli-linux.mdx
│ │ │ │ ├── install-cli-mac.mdx
│ │ │ │ ├── install-cli-specific-version.mdx
│ │ │ │ └── install-cli-windows.mdx
│ │ │ ├── managing-a-network-node.mdx
│ │ │ ├── public-network.mdx
│ │ │ ├── replay-past-transactions.mdx
│ │ │ ├── running-a-local-network.mdx
│ │ │ ├── setup-cli.mdx
│ │ │ ├── setup-cli
│ │ │ │ └── install-move-prover.mdx
│ │ │ ├── start-from-template.mdx
│ │ │ ├── trying-things-on-chain.mdx
│ │ │ ├── trying-things-on-chain
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── create-test-accounts.mdx
│ │ │ │ └── looking-up-account-info.mdx
│ │ │ ├── working-with-move-contracts.mdx
│ │ │ └── working-with-move-contracts
│ │ │ │ ├── _meta.tsx
│ │ │ │ └── arguments-in-json-tutorial.mdx
│ │ ├── create-aptos-dapp.mdx
│ │ ├── create-aptos-dapp
│ │ │ ├── _meta.tsx
│ │ │ └── faq.mdx
│ │ ├── get-started.mdx
│ │ ├── get-started
│ │ │ ├── _meta.tsx
│ │ │ ├── developer-setup.mdx
│ │ │ ├── ethereum-cheatsheet.mdx
│ │ │ └── solana-cheatsheet.mdx
│ │ ├── guides.mdx
│ │ ├── guides
│ │ │ ├── _meta.tsx
│ │ │ ├── aptos-keyless
│ │ │ │ ├── _meta.tsx
│ │ │ │ └── federated-keyless
│ │ │ │ │ └── _meta.tsx
│ │ │ └── build-e2e-dapp
│ │ │ │ └── _meta.tsx
│ │ ├── indexer.mdx
│ │ ├── sdks.mdx
│ │ ├── sdks
│ │ │ ├── ts-sdk.mdx
│ │ │ └── ts-sdk
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── account.mdx
│ │ │ │ ├── account
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── account-abstraction.mdx
│ │ │ │ └── derivable-account-abstraction.mdx
│ │ │ │ ├── building-transactions.mdx
│ │ │ │ ├── building-transactions
│ │ │ │ ├── _meta.tsx
│ │ │ │ ├── batching-transactions.mdx
│ │ │ │ ├── bcs-format.mdx
│ │ │ │ ├── multi-agent-transactions.mdx
│ │ │ │ ├── script-composer.mdx
│ │ │ │ ├── simulating-transactions.mdx
│ │ │ │ └── sponsoring-transactions.mdx
│ │ │ │ ├── confidential-asset.mdx
│ │ │ │ ├── fetch-data-via-sdk.mdx
│ │ │ │ ├── legacy-ts-sdk.mdx
│ │ │ │ ├── legacy-ts-sdk
│ │ │ │ ├── _meta.tsx
│ │ │ │ └── migration-guide.mdx
│ │ │ │ ├── quickstart.mdx
│ │ │ │ ├── ts-examples.mdx
│ │ │ │ └── type-safe-contract.mdx
│ │ ├── smart-contracts.mdx
│ │ └── smart-contracts
│ │ │ ├── _meta.tsx
│ │ │ ├── aptos-coin.mdx
│ │ │ ├── aptos-standards.mdx
│ │ │ ├── aptos-token.mdx
│ │ │ ├── bcs.mdx
│ │ │ ├── book.mdx
│ │ │ ├── book
│ │ │ ├── SUMMARY.mdx
│ │ │ ├── _meta.tsx
│ │ │ ├── abilities.mdx
│ │ │ ├── abort-and-assert.mdx
│ │ │ ├── address.mdx
│ │ │ ├── bool.mdx
│ │ │ ├── coding-conventions.mdx
│ │ │ ├── conditionals.mdx
│ │ │ ├── constants.mdx
│ │ │ ├── enums.mdx
│ │ │ ├── equality.mdx
│ │ │ ├── friends.mdx
│ │ │ ├── functions.mdx
│ │ │ ├── generics.mdx
│ │ │ ├── global-storage-operators.mdx
│ │ │ ├── global-storage-structure.mdx
│ │ │ ├── integers.mdx
│ │ │ ├── loops.mdx
│ │ │ ├── modules-and-scripts.mdx
│ │ │ ├── move-2.mdx
│ │ │ ├── move-tutorial.mdx
│ │ │ ├── package-upgrades.mdx
│ │ │ ├── packages.mdx
│ │ │ ├── references.mdx
│ │ │ ├── signer.mdx
│ │ │ ├── standard-library.mdx
│ │ │ ├── structs-and-resources.mdx
│ │ │ ├── tuples.mdx
│ │ │ ├── unit-testing.mdx
│ │ │ ├── uses.mdx
│ │ │ ├── variables.mdx
│ │ │ └── vector.mdx
│ │ │ ├── compiler_v2.mdx
│ │ │ ├── compiling.mdx
│ │ │ ├── confidential-asset.mdx
│ │ │ ├── create-package.mdx
│ │ │ ├── cryptography.mdx
│ │ │ ├── debugging.mdx
│ │ │ ├── deployment.mdx
│ │ │ ├── digital-asset.mdx
│ │ │ ├── error-codes.mdx
│ │ │ ├── fungible-asset.mdx
│ │ │ ├── linter.mdx
│ │ │ ├── maps.mdx
│ │ │ ├── modules-on-aptos.mdx
│ │ │ ├── move-reference.mdx
│ │ │ ├── move-security-guidelines.mdx
│ │ │ ├── object
│ │ │ └── _meta.tsx
│ │ │ ├── objects.mdx
│ │ │ ├── prover.mdx
│ │ │ ├── prover
│ │ │ └── _meta.tsx
│ │ │ ├── randomness.mdx
│ │ │ ├── reference.mdx
│ │ │ ├── resource-accounts.mdx
│ │ │ ├── scripts.mdx
│ │ │ ├── scripts
│ │ │ └── _meta.tsx
│ │ │ ├── smart-vector.mdx
│ │ │ ├── table.mdx
│ │ │ ├── third-party-dependencies.mdx
│ │ │ ├── tokens.mdx
│ │ │ ├── vector.mdx
│ │ │ └── why-move.mdx
│ │ ├── index.mdx
│ │ └── network
│ │ ├── _meta.ts
│ │ ├── nodes.mdx
│ │ └── nodes
│ │ ├── _meta.tsx
│ │ ├── aptos-api-spec.mdx
│ │ ├── bootstrap-fullnode.mdx
│ │ ├── bootstrap-fullnode
│ │ ├── aptos-db-restore.mdx
│ │ └── bootstrap-fullnode.mdx
│ │ ├── building-from-source.mdx
│ │ ├── configure.mdx
│ │ ├── configure
│ │ ├── _meta.tsx
│ │ ├── data-pruning.mdx
│ │ ├── node-files-all-networks.mdx
│ │ ├── node-files-all-networks
│ │ │ ├── _meta.tsx
│ │ │ ├── node-files-devnet.mdx
│ │ │ ├── node-files-mainnet.mdx
│ │ │ └── node-files-testnet.mdx
│ │ ├── state-sync.mdx
│ │ └── telemetry.mdx
│ │ ├── full-node.mdx
│ │ ├── full-node
│ │ ├── _category_.json
│ │ ├── _meta.tsx
│ │ ├── deployments.mdx
│ │ ├── deployments
│ │ │ ├── _meta.tsx
│ │ │ ├── using-docker.mdx
│ │ │ ├── using-gcp.mdx
│ │ │ └── using-source-code.mdx
│ │ ├── modify.mdx
│ │ ├── modify
│ │ │ ├── fullnode-network-connections.mdx
│ │ │ ├── network-identity-fullnode.mdx
│ │ │ └── update-fullnode-with-new-releases.mdx
│ │ ├── pfn-requirements.mdx
│ │ └── verify-pfn.mdx
│ │ ├── identity-and-configuration.mdx
│ │ ├── localnet.mdx
│ │ ├── localnet
│ │ ├── _meta.tsx
│ │ ├── local-development-network.mdx
│ │ └── run-a-localnet.mdx
│ │ ├── measure.mdx
│ │ ├── measure
│ │ ├── important-metrics.mdx
│ │ ├── node-health-checker-faq.mdx
│ │ ├── node-health-checker.mdx
│ │ └── node-inspection-service.mdx
│ │ ├── networks.mdx
│ │ ├── validator-node.mdx
│ │ └── validator-node
│ │ ├── _meta.tsx
│ │ ├── connect-nodes.mdx
│ │ ├── connect-nodes
│ │ ├── _meta.tsx
│ │ ├── connect-to-aptos-network.mdx
│ │ ├── delegation-pool-operations.mdx
│ │ ├── staking-pool-operations.mdx
│ │ └── staking-pool-voter.mdx
│ │ ├── deploy-nodes.mdx
│ │ ├── deploy-nodes
│ │ ├── _meta.tsx
│ │ ├── using-aws.mdx
│ │ ├── using-azure.mdx
│ │ ├── using-docker.mdx
│ │ ├── using-gcp.mdx
│ │ └── using-source-code.mdx
│ │ ├── modify-nodes.mdx
│ │ ├── modify-nodes
│ │ ├── _meta.tsx
│ │ ├── shutting-down-nodes.mdx
│ │ └── update-validator-node.mdx
│ │ ├── node-requirements.mdx
│ │ ├── operator.mdx
│ │ ├── verify-nodes.mdx
│ │ └── verify-nodes
│ │ ├── _meta.tsx
│ │ ├── leaderboard-metrics.mdx
│ │ └── node-liveness-criteria.mdx
│ ├── postbuild.js
│ ├── postcss.config.cjs
│ ├── public
│ ├── docs
│ │ ├── advanced.svg
│ │ ├── ans_entrypoint_example.png
│ │ ├── ans_entrypoint_modal_example.png
│ │ ├── ans_entrypoint_with_other_name.png
│ │ ├── apple.svg
│ │ ├── aptos-black.svg
│ │ ├── aptos-db-restore.png
│ │ ├── aptos-indexing-dark.svg
│ │ ├── aptos-indexing.svg
│ │ ├── aptos-keyless
│ │ │ ├── apple-dev-program.png
│ │ │ ├── google-create-credentials.png
│ │ │ ├── google-credentials-nav.png
│ │ │ ├── keyless-account.png
│ │ │ ├── keyless-overview.png
│ │ │ ├── keyless-proof.png
│ │ │ ├── keyless-signing.png
│ │ │ └── keyless_relation.png
│ │ ├── aptos-token-standard-flow-dark.svg
│ │ ├── aptos-token-standard-flow.svg
│ │ ├── aptos-white.svg
│ │ ├── build-e2e-dapp-img-1-1.png
│ │ ├── build-e2e-dapp-img-1.png
│ │ ├── build-e2e-dapp-img-2.png
│ │ ├── build-e2e-dapp-img-3.png
│ │ ├── ca-diagram-dark.png
│ │ ├── ca-diagram-light.png
│ │ ├── cad-video.gif
│ │ ├── digital-asset-dark.svg
│ │ ├── digital-asset-light.svg
│ │ ├── digital-asset.excalidraw
│ │ ├── fa-diagram-dark.png
│ │ ├── fa-diagram-light.png
│ │ ├── fa-diagram.excalidraw
│ │ ├── gas-profiling-cost-break-down-table.png
│ │ ├── gas-profiling-flamegraph-0.png
│ │ ├── gas-profiling-flamegraph-1.png
│ │ ├── gas-profiling-flamegraph-2.png
│ │ ├── github-dark.svg
│ │ ├── github-light.svg
│ │ ├── indexer-architecture-dark.svg
│ │ ├── indexer-architecture-light.svg
│ │ ├── indexer-architecture.excalidraw
│ │ ├── indexer-custom-processor-dark.svg
│ │ ├── indexer-custom-processor-light.svg
│ │ ├── indexer-custom-processor.excalidraw
│ │ ├── linux.svg
│ │ ├── module-event.png
│ │ ├── multisig_chart.svg
│ │ ├── stake-state-dark.svg
│ │ ├── stake-state.svg
│ │ ├── staking-dark.svg
│ │ ├── staking-light.svg
│ │ ├── transactions-and-state-dark.svg
│ │ ├── transactions-and-state.svg
│ │ ├── ts-sdk-architecture-dark.png
│ │ ├── ts-sdk-architecture-light.png
│ │ ├── tutorial-gcp-logging1.png
│ │ ├── tutorial-gcp-logging2.png
│ │ ├── tutorial-gcp-logging3.png
│ │ ├── tutorial-gcp-logging4.png
│ │ ├── tutorial-gcp-logging5.png
│ │ ├── tutorial-gcp-mon1.png
│ │ ├── tutorial-gcp-mon2.png
│ │ ├── v-fn-network.svg
│ │ ├── validator-state-dark.svg
│ │ ├── validator-state.svg
│ │ ├── validator.svg
│ │ ├── voting-resolution-flow-dark.svg
│ │ ├── voting-resolution-flow.svg
│ │ ├── wallet-adapter.svg
│ │ └── windows.svg
│ ├── favicon
│ │ ├── android-chrome-192x192.png
│ │ ├── android-chrome-512x512.png
│ │ ├── apple-touch-icon.png
│ │ ├── browserconfig.xml
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── favicon.ico
│ │ ├── favicon.png
│ │ ├── favicon.svg
│ │ ├── safari-pinned-tab.svg
│ │ └── site.webmanifest
│ ├── fonts
│ │ └── Satoshi-Variable.woff2
│ ├── gas-profiling
│ │ ├── sample-report-2
│ │ │ ├── assets
│ │ │ │ └── exec_io.svg
│ │ │ └── index.html
│ │ └── sample-report
│ │ │ ├── assets
│ │ │ ├── exec_io.svg
│ │ │ └── storage.svg
│ │ │ └── index.html
│ ├── landing
│ │ ├── aptin-labs.jpeg
│ │ ├── cellana.svg
│ │ ├── graphql-logo.svg
│ │ ├── indexer-illustration-dark.svg
│ │ ├── indexer-illustration-light.svg
│ │ ├── sdk-illustration-dark.svg
│ │ ├── sdk-illustration-light.svg
│ │ ├── testimonial-logo.png
│ │ ├── typescript-logo.svg
│ │ └── zabava.png
│ ├── language-icons
│ │ ├── c++.svg
│ │ ├── csharp.svg
│ │ ├── css.svg
│ │ ├── discord.svg
│ │ ├── graphql.svg
│ │ ├── information-circle.svg
│ │ ├── javascript.svg
│ │ ├── markdown.svg
│ │ ├── mdx.svg
│ │ ├── moon.svg
│ │ ├── move.svg
│ │ ├── python.svg
│ │ ├── rust.svg
│ │ ├── terminal.svg
│ │ ├── terraform.svg
│ │ └── typescript.svg
│ ├── robots.txt
│ ├── scoop
│ │ └── aptos.json
│ ├── screenshots
│ │ ├── bq_sql.png
│ │ ├── explorer_account.png
│ │ ├── explorer_coins.png
│ │ ├── explorer_devnet.png
│ │ ├── explorer_modules.png
│ │ ├── explorer_resources.png
│ │ └── move_blockchain.png
│ ├── scripts
│ │ ├── install_cli.ps1
│ │ ├── install_cli.py
│ │ ├── install_cli.sh
│ │ └── prover_setup.sh
│ ├── sitemap-en.xml
│ ├── sitemap-ja.xml
│ ├── sitemap-zh.xml
│ └── sitemap.xml
│ ├── styles.css
│ ├── tailwind.config.cjs
│ ├── theme.config.tsx
│ ├── tsconfig.json
│ ├── utils
│ ├── cn.ts
│ ├── generateLocaleMap.mts
│ ├── highlightCode.ts
│ ├── language
│ │ └── language.tsx
│ ├── locale.ts
│ └── useIsomorphicLayoutEffect.ts
│ └── vercel.json
├── package.json
├── packages
├── aptos-nextra-components
│ ├── .eslintignore
│ ├── .gitignore
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ └── utils
│ │ │ ├── cn.ts
│ │ │ ├── index.ts
│ │ │ └── mdast
│ │ │ ├── examples
│ │ │ ├── account.error.md
│ │ │ ├── account.expect.md
│ │ │ ├── account.md
│ │ │ ├── account_snippet.expect.md
│ │ │ ├── account_snippet.md
│ │ │ ├── keyRotation.expect.md
│ │ │ ├── keyRotation.md
│ │ │ ├── object_snippet.expect.md
│ │ │ ├── object_snippet.md
│ │ │ ├── vector.expect.md
│ │ │ ├── vector.md
│ │ │ ├── vector_snippet.expect.md
│ │ │ └── vector_snippet.md
│ │ │ ├── fsast.ts
│ │ │ ├── index.ts
│ │ │ ├── mdast.test.ts
│ │ │ └── mdast.ts
│ ├── tsconfig.json
│ └── tsup.config.ts
├── aptos-nextra-config
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ ├── katex
│ │ │ ├── index.ts
│ │ │ └── macros.ts
│ │ └── nav
│ │ │ ├── index.ts
│ │ │ └── nav.tsx
│ ├── tsconfig.json
│ └── tsup.config.ts
├── eslint-config
│ ├── README.md
│ ├── library.js
│ ├── next.js
│ ├── package.json
│ └── react-internal.js
├── github-fetch
│ ├── .gitignore
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── github.spec.ts
│ │ ├── github.ts
│ │ ├── index.ts
│ │ └── utils.ts
│ └── tsconfig.json
└── typescript-config
│ ├── base.json
│ ├── nextjs.json
│ ├── package.json
│ └── react-library.json
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
├── prebuild.js
├── tsconfig.json
├── turbo.json
└── update-relative-links.py
/.editorconfig:
--------------------------------------------------------------------------------
1 | [*]
2 | charset = utf-8
3 | end_of_line = lf
4 | indent_style = space
5 | indent_size = 2
6 | max_line_length = 80
7 | trim_trailing_whitespace = true
8 | insert_final_newline = true
9 | root = true
10 |
11 | # Ensure that we don't trim trailing whitespace in markdown files which can cause strange results
12 | [*.md]
13 | trim_trailing_whitespace = false
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | // This configuration only applies to the package manager root.
2 | /** @type {import("eslint").Linter.Config} */
3 | module.exports = {
4 | ignorePatterns: ["apps/**", "packages/**", "workers/**"],
5 | extends: ["@repo/eslint-config/library.js"],
6 | parser: "@typescript-eslint/parser",
7 | parserOptions: {
8 | project: true,
9 | },
10 | };
11 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.md -whitespace
2 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: true
2 | contact_links:
3 | - name: Questions and Help (on Aptos Developer Discussions)
4 | url: (https://github.com/aptos-labs/aptos-developer-discussions/discussions
5 | about: Support and other Questions are handled by the team and the community on Aptos Developer Discussions.
6 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/content_issue.yml:
--------------------------------------------------------------------------------
1 | name: Documentation Content Issue
2 | description: Raise an issue with the content on https://aptos.dev
3 | labels: ["documentation"]
4 | body:
5 | - type: input
6 | id: url
7 | attributes:
8 | label: Url
9 | description: "Please provide the primary URL where the content is missing or incorrect. You may add other URLs if needed below."
10 | placeholder: "(e.g., https://aptos.dev/en/network/blockchain"
11 | validations:
12 | required: true
13 | - type: textarea
14 | id: description
15 | attributes:
16 | label: Describe the content issue
17 | placeholder: (e.g., Smart Contracts do not describe what a Smart Vector is)
18 | validations:
19 | required: true
20 | - type: dropdown
21 | id: section
22 | attributes:
23 | multiple: true
24 | label: "Section"
25 | options:
26 | - "move-and-smart-contracts"
27 | - "apis"
28 | - "sdks"
29 | - "indexer"
30 | - "cli"
31 | - "create-aptos-dapp"
32 | - "blockchain"
33 | - "nodes"
34 | validations:
35 | required: true
36 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ### Description
2 |
3 | ### Checklist
4 |
5 |
6 | - If any existing pages were renamed or removed:
7 | - [ ] Were redirects added to [next.config.mjs](../apps/nextra/next.config.mjs)?
8 | - [ ] Did you update any relative links that pointed to the renamed / removed pages?
9 | - Do all Lints pass?
10 | - [ ] Have you ran `pnpm fmt`?
11 | - [ ] Have you ran `pnpm lint`?
12 |
--------------------------------------------------------------------------------
/.github/tagging/script.js:
--------------------------------------------------------------------------------
1 | const tagsByIssueSection = require("./tagsByIssueSection.json");
2 |
3 | module.exports = async ({ inputSectionsStr, github, context }) => {
4 | console.log("Running tagging script")
5 | console.log(`Input: ${inputSectionsStr}`)
6 |
7 | const inputSections = inputSectionsStr.split(",").map(s => s.trim())
8 | const body = inputSections
9 | .map(section => tagsByIssueSection[section])
10 | .filter(Boolean)
11 | .join(" ")
12 |
13 | console.log(`Creating comment via github REST API: ${body}`)
14 | const result = await github.rest.issues.createComment({
15 | issue_number: context.issue.number,
16 | owner: context.repo.owner,
17 | repo: context.repo.repo,
18 | body
19 | })
20 | console.log(`Result: ${result.status}`)
21 | }
22 |
--------------------------------------------------------------------------------
/.github/tagging/tagsByIssueSection.json:
--------------------------------------------------------------------------------
1 | {
2 | "apis": "@aptos-labs/developer-platform",
3 | "blockchain": "@aptos-labs/blockchain-eng",
4 | "cli": "@gregnazario",
5 | "create-aptos-dapp": "@0xmaayan",
6 | "indexer": "@aptos-labs/ecosystem-infra",
7 | "move-and-smart-contracts": "@aptos-labs/move-eng",
8 | "nodes": "@aptos-labs/prod-eng",
9 | "sdks": "@aptos-labs/developer-platform"
10 | }
11 |
--------------------------------------------------------------------------------
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: Lint
2 |
3 | on:
4 | push:
5 | branches:
6 | - main
7 | pull_request:
8 | branches:
9 | - main
10 |
11 | jobs:
12 | lint:
13 | runs-on: ubuntu-latest
14 |
15 | steps:
16 | - uses: actions/checkout@v4
17 | - uses: pnpm/action-setup@v4
18 | with:
19 | version: 9.15.1
20 | - uses: actions/setup-node@v4
21 | with:
22 | node-version: '23'
23 | cache: 'pnpm'
24 | registry-url: "https://registry.npmjs.org"
25 | - run: pnpm install --frozen-lockfile
26 | - run: pnpm lint
27 |
--------------------------------------------------------------------------------
/.github/workflows/close-stale-issues.yaml:
--------------------------------------------------------------------------------
1 | name: "Close stale issues and PRs"
2 | on:
3 | schedule:
4 | - cron: "30 1 * * *"
5 | workflow_dispatch:
6 |
7 | permissions:
8 | # contents: write # only for delete-branch option
9 | issues: write
10 | pull-requests: write
11 |
12 | jobs:
13 | stale:
14 | runs-on: ubuntu-latest
15 | steps:
16 | - uses: actions/stale@v9
17 | with:
18 | days-before-stale: 45
19 | days-before-close: 15
20 | operations-per-run: 500
21 | stale-issue-message: "This issue is stale because it has been open 45 days with no activity. Remove the `stale` label or comment - otherwise this will be closed in 15 days."
22 | stale-pr-message: "This issue is stale because it has been open 45 days with no activity. Remove the `stale` label, comment or push a commit - otherwise this will be closed in 15 days."
23 | exempt-issue-labels: stale-exempt
24 | exempt-pr-labels: stale-exempt
25 |
--------------------------------------------------------------------------------
/.github/workflows/semgrep.yaml:
--------------------------------------------------------------------------------
1 | name: Semgrep
2 |
3 | on:
4 | workflow_dispatch:
5 | pull_request:
6 | types: [labeled, opened, synchronize, reopened, auto_merge_enabled]
7 | schedule:
8 | - cron: "0 * * * *"
9 |
10 | jobs:
11 | semgrep:
12 | name: semgrep/ci
13 | runs-on: ubuntu-latest
14 |
15 | container:
16 | image: returntocorp/semgrep
17 | options: --user root
18 |
19 | # Skip any PR created by dependabot to avoid permission issues:
20 | if: (github.actor != 'dependabot[bot]')
21 |
22 | steps:
23 | - uses: actions/checkout@v4
24 | - run: semgrep ci
25 | env:
26 | SEMGREP_RULES: >-
27 | ./.github/linters/semgrep/pull-request-target-code-checkout.yaml
28 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # OSX
4 | *.DS_Store
5 | venv
6 |
7 | # Generated files
8 | .docusaurus/
9 | .cache-loader
10 | .idea/
11 | apps/nextra/next-env.d.ts
12 | apps/nextra/utils/generated/
13 |
14 | # ignore autogenerated docs
15 | static/docs/rustdocs/
16 |
17 | # Dependencies
18 | node_modules
19 | .pnp
20 | .pnp.js
21 |
22 | # Local env files
23 | .env
24 | .env.local
25 | .env.development.local
26 | .env.test.local
27 | .env.production.local
28 |
29 | # Testing
30 | coverage
31 |
32 | # Turbo
33 | .turbo
34 |
35 | # Vercel
36 | .vercel
37 |
38 | # Build Outputs
39 | .next/
40 | out/
41 | apps/*/build/
42 | packages/*/build/
43 | dist/
44 |
45 |
46 | # Debug
47 | npm-debug.log*
48 | yarn-debug.log*
49 | yarn-error.log*
50 |
51 | # Misc
52 | .DS_Store
53 | *.pem
54 | .temp/*
55 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/.npmignore
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | auto-install-peers=true
2 | strict-peer-dependencies=false
3 | registry=https://registry.npmjs.org
4 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | # Symlinked SDKs
2 | static/sdks
3 |
4 | # Docusaurus
5 | build/
6 | i18n/
7 | node_modules/
8 |
9 | # Generated files
10 | .docusaurus/
11 |
12 | # ignore autogenerated docs
13 | static/docs/rustdocs/
14 |
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": []
3 | }
4 |
--------------------------------------------------------------------------------
/.tool-versions:
--------------------------------------------------------------------------------
1 | pnpm 9.15.1
2 | nodejs 23.4.0
3 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "eslint.workingDirectories": [
3 | {
4 | "mode": "auto"
5 | }
6 | ]
7 | }
8 |
--------------------------------------------------------------------------------
/CODEOWNERS:
--------------------------------------------------------------------------------
1 | # This is the overarching CODEOWNERS file for Aptos.dev documentation.
2 | # It exists to help route review requests and ensure proper review of changes.
3 | # We include each subdirectory and relevant owners below:
4 | # Global rule:
5 | * @gregnazario @hariria @igor-p
6 |
7 | ## Nodes
8 | apps/nextra/pages/en/network/nodes/** @rustielin @michelle-aptos @aptos-labs/prod-eng
9 |
10 | ## Blockchain
11 | apps/nextra/pages/en/network/blockchain/** @aptos-labs/blockchain-eng
12 |
13 | ## Indexer
14 | apps/nextra/pages/en/build/indexer/** @aptos-labs/ecosystem-infra
15 |
16 | ## SDKs
17 | apps/nextra/pages/en/build/sdks/** @gregnazario @aptos-labs/developer-platform
18 |
19 | ## create-aptos-dapp
20 | apps/nextra/pages/en/build/create-aptos-dapp/** @0xmaayan
21 |
22 | ## CLI
23 | apps/nextra/pages/en/build/cli/** @gregnazario
24 |
25 | ## Smart Contracts
26 | apps/nextra/pages/en/build/smart-contracts/** @aptos-labs/move-eng
27 |
--------------------------------------------------------------------------------
/apps/nextra/.env.example:
--------------------------------------------------------------------------------
1 | NEXT_PUBLIC_ORIGIN="http://localhost:3030"
2 |
--------------------------------------------------------------------------------
/apps/nextra/.prettierignore:
--------------------------------------------------------------------------------
1 | .next
2 | node_modules
3 | .turbo
4 | next-env.d.ts
5 | generated
6 |
--------------------------------------------------------------------------------
/apps/nextra/components/api-reference/DynamicApiReference.tsx:
--------------------------------------------------------------------------------
1 | import dynamic from "next/dynamic";
2 |
3 | export const DynamicApiReference = dynamic(() => import("./ApiReference"), {
4 | ssr: false,
5 | });
6 |
--------------------------------------------------------------------------------
/apps/nextra/components/api-reference/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./ApiReference";
2 | export * from "./utils";
3 | export * from "./DynamicApiReference";
4 |
--------------------------------------------------------------------------------
/apps/nextra/components/api-reference/utils.ts:
--------------------------------------------------------------------------------
1 | export async function fetchApiReference() {
2 | const url =
3 | "https://raw.githubusercontent.com/aptos-labs/aptos-core/main/api/doc/spec.json";
4 | const result = await fetch(url);
5 | const reference = await result.json();
6 |
7 | return {
8 | props: {
9 | ssg: {
10 | reference,
11 | },
12 | },
13 | };
14 | }
15 |
16 | /**
17 | * Convert to Dark Mode
18 | *
19 | * Some components do not have a "system" theme like Nextra does
20 | * e.g., Nextra has `"light" | "dark" | "system"`.
21 | *
22 | * This converts Nextra's theme into a theme that is compatible for components
23 | * which only have `"light" | "dark"`
24 | */
25 | export const convertDarkMode = (mode?: string): "dark" | "light" => {
26 | // Convert "system" to the appropriate dark/light mode
27 | if (mode === "system") {
28 | // Check the system preference for dark mode
29 | const isDarkMode =
30 | window.matchMedia &&
31 | window.matchMedia("(prefers-color-scheme: dark)").matches;
32 | return isDarkMode ? "dark" : "light";
33 | }
34 |
35 | // Return the mode if it's already "dark" or "light"
36 | return (mode || "light") as "dark" | "light";
37 | };
38 |
39 | export default fetchApiReference;
40 |
--------------------------------------------------------------------------------
/apps/nextra/components/beta-notice/IndexerBetaNotice.tsx:
--------------------------------------------------------------------------------
1 | import { Callout } from "nextra/components";
2 |
3 | export function IndexerBetaNotice() {
4 | return (
5 |
6 | The Indexer API, Transaction Stream Service, and Custom Processors are
7 | currently in beta. Please report any problems you encounter by creating an
8 | issue in the{" "}
9 |
14 | aptos-indexer-processors
15 | {" "}
16 | repo.
17 |
18 | );
19 | }
20 |
--------------------------------------------------------------------------------
/apps/nextra/components/beta-notice/index.tsx:
--------------------------------------------------------------------------------
1 | export * from "./IndexerBetaNotice";
2 |
--------------------------------------------------------------------------------
/apps/nextra/components/buttons/Button.tsx:
--------------------------------------------------------------------------------
1 | export interface PrimaryOutlineButtonProps {
2 | href: string;
3 | children: React.ReactNode;
4 | }
5 |
6 | export function PrimaryOutlineButton({
7 | children,
8 | href,
9 | }: PrimaryOutlineButtonProps) {
10 | return (
11 |
19 | {children}
20 |
21 | );
22 | }
23 |
--------------------------------------------------------------------------------
/apps/nextra/components/card/index.tsx:
--------------------------------------------------------------------------------
1 | export * from "./Card";
2 |
--------------------------------------------------------------------------------
/apps/nextra/components/codeblock/index.tsx:
--------------------------------------------------------------------------------
1 | export * from "./Codeblock";
2 |
--------------------------------------------------------------------------------
/apps/nextra/components/diagrams/use-draw.ts:
--------------------------------------------------------------------------------
1 | import { useRouter } from "nextra/hooks";
2 |
3 | export function useDraw(paths = {}, name = "") {
4 | const { locale, defaultLocale } = useRouter() as {
5 | locale: string;
6 | defaultLocale: string;
7 | };
8 |
9 | if (!Object.hasOwn(paths, defaultLocale)) {
10 | throw new Error(
11 | `Please provide '${defaultLocale}' locale inside '${paths}'.`,
12 | );
13 | }
14 |
15 | if (
16 | typeof paths[locale] === "string" &&
17 | typeof paths[defaultLocale] === "string"
18 | ) {
19 | return paths[locale] || paths[defaultLocale];
20 | }
21 |
22 | return paths[locale]?.[name] || paths[defaultLocale][name];
23 | }
24 |
--------------------------------------------------------------------------------
/apps/nextra/components/error/LocaleError.tsx:
--------------------------------------------------------------------------------
1 | import Link from "next/link";
2 |
3 | export interface LocaleErrorProps {
4 | redirectUrl: string;
5 | }
6 |
7 | export default function LocaleError({ redirectUrl }: LocaleErrorProps) {
8 | return (
9 |
10 |
We do not have the translated version of those docs at the moment
11 |
15 | ← Go back to English docs
16 |
17 |
18 | );
19 | }
20 |
--------------------------------------------------------------------------------
/apps/nextra/components/error/index.tsx:
--------------------------------------------------------------------------------
1 | export * from "./Error";
2 |
--------------------------------------------------------------------------------
/apps/nextra/components/external.mdx:
--------------------------------------------------------------------------------
1 | import { Callout } from 'nextra/components'
2 |
3 |
4 | This `` comes from `external.mdx`
5 |
6 |
--------------------------------------------------------------------------------
/apps/nextra/components/features.module.css:
--------------------------------------------------------------------------------
1 | .features {
2 | display: grid;
3 | grid-template-columns: 1fr 1fr 1fr 1fr;
4 | gap: 1rem 2rem;
5 | margin: 2.5rem 0 2rem;
6 | }
7 | .feature {
8 | align-items: center;
9 | display: inline-flex;
10 | }
11 | .feature h4 {
12 | margin: 0 0 0 0.5rem;
13 | font-weight: 700;
14 | font-size: 1.1rem;
15 | white-space: nowrap;
16 | }
17 | @media (max-width: 860px) {
18 | .features {
19 | gap: 1rem 0.5rem;
20 | }
21 | .feature {
22 | padding-left: 0;
23 | justify-content: center;
24 | }
25 | .feature svg {
26 | width: 20px;
27 | }
28 | .feature h4 {
29 | font-size: 0.9rem;
30 | }
31 | }
32 | @media (max-width: 660px) {
33 | .features {
34 | grid-template-columns: 1fr 1fr;
35 | }
36 | }
37 | @media (max-width: 370px) {
38 | .feature h4 {
39 | font-size: 0.8rem;
40 | }
41 | .feature svg {
42 | width: 16px;
43 | stroke-width: 2.5px;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/apps/nextra/components/framework-reference/index.tsx:
--------------------------------------------------------------------------------
1 | export function AptosFrameworkReference() {
2 | return (
3 |
10 | );
11 | }
12 |
--------------------------------------------------------------------------------
/apps/nextra/components/graphql/DynamicGraphQL.tsx:
--------------------------------------------------------------------------------
1 | import dynamic from "next/dynamic";
2 | import GraphQLSkeleton from "./GraphQLSkeleton";
3 |
4 | /**
5 | * Dynamic GraphQLEditor
6 | *
7 | * Next.js must render this as a client-side component. It is not server side renderable
8 | * largely due to access to the window object (localstorage) and client side state.
9 | *
10 | * Loading states are provided through the component
11 | */
12 | export const GraphQLEditor = dynamic(() => import("./NonDynamicGraphQL"), {
13 | ssr: false,
14 | loading: () => ,
15 | });
16 |
17 | export default GraphQLEditor;
18 |
--------------------------------------------------------------------------------
/apps/nextra/components/graphql/OLD_GraphQL.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import dynamic from "next/dynamic";
3 | import type { Fetcher } from "@graphiql/toolkit";
4 | import type { GraphiQLProps } from "graphiql";
5 | import "graphiql/graphiql.min.css";
6 |
7 | const GraphiQL: React.FunctionComponent = dynamic(
8 | () => import("graphiql"),
9 | {
10 | loading: () => Loading...
,
11 | ssr: false,
12 | },
13 | ) as any;
14 |
15 | const fetcher: Fetcher = async (graphQLParams) => {
16 | const data = await fetch("https://api.mainnet.aptoslabs.com/v1/graphql", {
17 | method: "POST",
18 | headers: {
19 | Accept: "application/json",
20 | "Content-Type": "application/json",
21 | },
22 | body: JSON.stringify(graphQLParams),
23 | credentials: "same-origin",
24 | });
25 | return data.json().catch(() => data.text());
26 | };
27 |
28 | export const OLD_GraphQL = () => {
29 | return ;
30 | };
31 |
32 | export default OLD_GraphQL;
33 |
--------------------------------------------------------------------------------
/apps/nextra/components/graphql/index.tsx:
--------------------------------------------------------------------------------
1 | export * from "./OLD_GraphQL";
2 | export * from "./DynamicGraphQL";
3 | export * from "./nft/DynamicNFTGraphQL";
4 |
--------------------------------------------------------------------------------
/apps/nextra/components/graphql/nft/DynamicNFTGraphQL.tsx:
--------------------------------------------------------------------------------
1 | import dynamic from "next/dynamic";
2 | import GraphQLSkeleton from "../GraphQLSkeleton";
3 |
4 | /**
5 | * Dynamic NFTGraphQLEditor
6 | *
7 | * Next.js must render this as a client-side component. It is not server side renderable
8 | * largely due to access to the window object (localstorage) and client side state.
9 | *
10 | * Loading states are provided through the component
11 | */
12 | export const NFTGraphQLEditor = dynamic(() => import("./NFTGraphQL"), {
13 | ssr: false,
14 | loading: () => ,
15 | });
16 |
17 | export default NFTGraphQLEditor;
18 |
--------------------------------------------------------------------------------
/apps/nextra/components/index.tsx:
--------------------------------------------------------------------------------
1 | export * from "./card";
2 | export * from "./tabs";
3 | export * from "./themed-image";
4 | export * from "./graphql";
5 | export * from "./beta-notice";
6 | export * from "./codeblock";
7 | export * from "./remote-codeblock";
8 | export * from "./api-reference";
9 | export * from "./framework-reference";
10 | export * from "./media";
11 | export * from "./error";
12 | export * from "./move-reference";
13 |
--------------------------------------------------------------------------------
/apps/nextra/components/landing/components/GradientText.tsx:
--------------------------------------------------------------------------------
1 | import { Slot } from "@radix-ui/react-slot";
2 | import { HTMLAttributes, ReactNode, forwardRef } from "react";
3 | import { cn } from "utils/cn";
4 |
5 | export interface GradientTextProps extends HTMLAttributes {
6 | children: ReactNode;
7 | asChild?: boolean;
8 | }
9 |
10 | export const GradientText = forwardRef(
11 | ({ children, asChild, className, ...props }, ref) => {
12 | const Component = asChild ? Slot : "div";
13 | return (
14 |
24 | {children}
25 |
26 | );
27 | },
28 | );
29 | GradientText.displayName = "GradientText";
30 |
--------------------------------------------------------------------------------
/apps/nextra/components/landing/components/Section.tsx:
--------------------------------------------------------------------------------
1 | export function Section({ children }: React.PropsWithChildren) {
2 | return (
3 |
6 | );
7 | }
8 |
9 | export function SectionHeader({ children }: React.PropsWithChildren) {
10 | return (
11 |
17 | {children}
18 |
19 | );
20 | }
21 |
--------------------------------------------------------------------------------
/apps/nextra/components/login-button/index.tsx:
--------------------------------------------------------------------------------
1 | import React, { ReactNode } from "react";
2 | import { Button } from "@components/landing/components/Button";
3 |
4 | export function LoginButton({
5 | handleLogin,
6 | provider,
7 | icon,
8 | className,
9 | }: {
10 | handleLogin: () => void;
11 | provider: string;
12 | icon?: ReactNode;
13 | className?: string;
14 | }) {
15 | return (
16 |
23 | );
24 | }
25 |
--------------------------------------------------------------------------------
/apps/nextra/components/media/index.tsx:
--------------------------------------------------------------------------------
1 | export function YouTube({ title, id }: { title: string; id: string }) {
2 | return (
3 |
9 | );
10 | }
11 |
--------------------------------------------------------------------------------
/apps/nextra/components/move-reference/index.tsx:
--------------------------------------------------------------------------------
1 | export * from "./MoveReference";
2 | export * from "./ModuleSelectContainer";
3 | export * from "./shared";
4 | export * from "./MoveReferenceProvider";
5 |
--------------------------------------------------------------------------------
/apps/nextra/components/move-reference/shared.ts:
--------------------------------------------------------------------------------
1 | // MOVE MODULES
2 | export const PKGS = [
3 | "move-stdlib",
4 | "aptos-stdlib",
5 | "aptos-framework",
6 | "aptos-token",
7 | "aptos-token-objects",
8 | ] as const;
9 |
10 | // GITHUB
11 | export const GITHUB_APTOS_CORE =
12 | "https://raw.githubusercontent.com/aptos-labs/aptos-core";
13 |
14 | export const GITHUB_APTOS_CORE_CONTENT = `https://github.com/aptos-labs/aptos-core/blob`;
15 |
16 | // BRANCHES
17 | export const BRANCHES = ["mainnet", "testnet", "devnet", "main"] as const;
18 | export const DEFAULT_BRANCH = BRANCHES[0];
19 | export const DEFAULT_FRAMEWORK = PKGS[0];
20 | export const TENG_COMMIT = "0522837fab5552c027c9dfa73a89907e3980a131";
21 |
22 | export type Branch = (typeof BRANCHES)[number];
23 | export type Framework = (typeof PKGS)[number];
24 | export type FrameworkData = {
25 | framework: Framework;
26 | pages: { id: string; name: string }[];
27 | };
28 |
29 | // BRANCH TITLES
30 | export const BRANCH_TITLES: Record = {
31 | mainnet: "Mainnet",
32 | testnet: "Testnet",
33 | devnet: "Devnet",
34 | main: "Main",
35 | };
36 |
--------------------------------------------------------------------------------
/apps/nextra/components/preload-search/DynamicPreloadSearch.tsx:
--------------------------------------------------------------------------------
1 | import dynamic from "next/dynamic";
2 |
3 | export const DynamicPreloadSearch = dynamic(() => import("./PreloadSearch"), {
4 | ssr: false,
5 | });
6 |
--------------------------------------------------------------------------------
/apps/nextra/components/preload-search/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./PreloadSearch";
2 | export * from "./DynamicPreloadSearch";
3 |
--------------------------------------------------------------------------------
/apps/nextra/components/remote-codeblock/index.tsx:
--------------------------------------------------------------------------------
1 | export * from "./RemoteCodeblock";
2 | export * from "./types";
3 | export * from "./utils";
4 |
--------------------------------------------------------------------------------
/apps/nextra/components/remote-codeblock/types.ts:
--------------------------------------------------------------------------------
1 | export interface CodeSnippet {
2 | filename: string;
3 | owner: string;
4 | repo: string;
5 | path: string;
6 | commit_sha: string;
7 | start_line: string;
8 | end_line?: string;
9 | code: string;
10 | github_permalink: string;
11 | used_in_latest_docs: boolean;
12 | updated_at: string;
13 | }
14 |
15 | export type ParsedCodeSnippet = CodeSnippet & {
16 | highlightedCode: TrustedHTML;
17 | language: string;
18 | };
19 |
20 | export interface CodecacheResponse {
21 | data: T;
22 | status: "success" | "error";
23 | status_code: 200 | 400 | 403;
24 | message?: string;
25 | }
26 |
27 | export interface CodecacheSSGProps {
28 | props: {
29 | ssg: {
30 | [github_permalink: string]: T;
31 | };
32 | };
33 | }
34 |
--------------------------------------------------------------------------------
/apps/nextra/components/select/Select.tsx:
--------------------------------------------------------------------------------
1 | import { forwardRef } from "react";
2 |
3 | export interface OptionProps {
4 | children: JSX.Element | string;
5 | selected?: boolean;
6 | value: string;
7 | }
8 |
9 | export function Option({ children, selected, value, ...props }: OptionProps) {
10 | return (
11 |
14 | );
15 | }
16 |
17 | interface GenericSelectProps
18 | extends React.PropsWithoutRef {}
19 |
20 | /**
21 | * Select Nextra Component
22 | *
23 | * @example
24 | * ```tsx
25 | *
30 | * ```
31 | */
32 | const SelectRoot = forwardRef(
33 | ({ children, defaultValue, ...props }, ref) => (
34 |
37 | ),
38 | );
39 | SelectRoot.displayName = "Select";
40 |
41 | export const Select = Object.assign(SelectRoot, { Option });
42 |
--------------------------------------------------------------------------------
/apps/nextra/components/select/index.tsx:
--------------------------------------------------------------------------------
1 | export * from "./Select";
2 |
--------------------------------------------------------------------------------
/apps/nextra/components/tabs/index.tsx:
--------------------------------------------------------------------------------
1 | export * from "./Tabs";
2 |
--------------------------------------------------------------------------------
/apps/nextra/components/themed-image/ThemedImage.tsx:
--------------------------------------------------------------------------------
1 | export interface ThemedImage {
2 | sources: {
3 | light: string;
4 | dark: string;
5 | };
6 | alt: string;
7 | }
8 |
9 | /**
10 | * ThemedImage Nextra Component
11 | *
12 | * Enables users to add a component that displays corresponding images
13 | * based on the light / dark mode on the page. `light` and `dark`
14 | * are both used as the `src` fields for the component
15 | *
16 | * ```ts
17 | *
18 | * ```
19 | */
20 | export function ThemedImage({ sources, alt }: ThemedImage) {
21 | return (
22 |
23 |

29 |

35 |
36 | );
37 | }
38 |
39 | export default ThemedImage;
40 |
--------------------------------------------------------------------------------
/apps/nextra/components/themed-image/index.tsx:
--------------------------------------------------------------------------------
1 | export * from "./ThemedImage";
2 |
--------------------------------------------------------------------------------
/apps/nextra/generate-sitemap-index.cjs:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 | const path = require("path");
3 |
4 | const outputDir = path.resolve(__dirname, "public");
5 |
6 | const loadConfig = async () => {
7 | const configModule = await import("./next-sitemap.config.mjs");
8 | return configModule.default;
9 | };
10 |
11 | const loadDocsConfig = async () => {
12 | const docsConfigModule = await import("./docs.config.js");
13 | return docsConfigModule;
14 | };
15 |
16 | const getAvailableLanguages = async () => {
17 | const config = await loadConfig();
18 | const languages = config.languages;
19 | return languages.filter((lang) =>
20 | fs.existsSync(path.resolve(outputDir, `sitemap-${lang}.xml`)),
21 | );
22 | };
23 |
24 | const generateSitemapIndex = async () => {
25 | const availableLanguages = await getAvailableLanguages();
26 | const { getOrigin } = await loadDocsConfig();
27 | const origin = getOrigin();
28 |
29 | const sitemapIndexContent = `
30 |
31 | ${availableLanguages.map((lang) => `${origin}/sitemap-${lang}.xml`).join("")}
32 | `;
33 |
34 | fs.writeFileSync(path.resolve(outputDir, "sitemap.xml"), sitemapIndexContent);
35 | console.log("Index sitemap written to public/sitemap.xml");
36 | };
37 |
38 | generateSitemapIndex();
39 |
--------------------------------------------------------------------------------
/apps/nextra/lib/firebase.ts:
--------------------------------------------------------------------------------
1 | import { initializeApp } from "firebase/app";
2 | import { Auth, getAuth } from "firebase/auth";
3 |
4 | // Your web app's Firebase configuration
5 | const firebaseConfig = {
6 | apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY,
7 | authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN,
8 | projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID,
9 | appId: process.env.NEXT_PUBLIC_FIREBASE_APP_ID,
10 | };
11 |
12 | // Initialize Firebase
13 | export let auth: Auth | null = null;
14 |
15 | try {
16 | const app = initializeApp(firebaseConfig);
17 | auth = getAuth(app);
18 | } catch (e) {
19 | console.error(
20 | "Could not instantiate firebase. Ensure that env variables are set!",
21 | );
22 | }
23 |
--------------------------------------------------------------------------------
/apps/nextra/next-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
4 | // NOTE: This file should not be edited
5 | // see https://nextjs.org/docs/pages/building-your-application/configuring/typescript for more information.
6 |
--------------------------------------------------------------------------------
/apps/nextra/next-sitemap.config.mjs:
--------------------------------------------------------------------------------
1 | import { i18nConfig, getOrigin } from "./docs.config.js";
2 |
3 | /**
4 | * @type {import('next-sitemap').IConfig}
5 | */
6 | export default {
7 | siteUrl: getOrigin() || "https://preview.aptos.dev",
8 | changefreq: "daily",
9 | priority: 0.7,
10 | sitemapSize: 5000,
11 | generateRobotsTxt: true,
12 | outDir: "public",
13 | generateIndexSitemap: false,
14 | languages: Object.keys(i18nConfig).map((key) => i18nConfig[key].locale),
15 | };
16 |
--------------------------------------------------------------------------------
/apps/nextra/pages/404.tsx:
--------------------------------------------------------------------------------
1 | import LocaleError from "@components/error/LocaleError";
2 | import { Error } from "@components/index";
3 | import Link from "next/link";
4 | import { useRouter } from "nextra/hooks";
5 | import { useEffect, useState } from "react";
6 | import { checkIfEnglishPathAvailable } from "utils/locale";
7 |
8 | export default function Page() {
9 | const { asPath } = useRouter();
10 | const [pathname, setPathname] = useState(null);
11 | const { isEnglishPathAvailable, redirectUrl } =
12 | checkIfEnglishPathAvailable(pathname);
13 |
14 | useEffect(() => {
15 | if (typeof window !== "undefined") {
16 | setPathname(asPath);
17 | }
18 | }, [asPath]);
19 |
20 | const content =
21 | redirectUrl && isEnglishPathAvailable ? (
22 |
23 | ) : (
24 |
28 | ← Go back to home
29 |
30 | );
31 |
32 | return (
33 |
34 |
37 |
38 | );
39 | }
40 |
--------------------------------------------------------------------------------
/apps/nextra/pages/_app.tsx:
--------------------------------------------------------------------------------
1 | import { GoogleAnalytics } from "@next/third-parties/google";
2 | import { docsConfig } from "@docs-config";
3 | import "../styles.css";
4 | import { DynamicPreloadSearch } from "@components/preload-search";
5 |
6 | export const config = {
7 | runtime: "experimental-edge",
8 | };
9 |
10 | /**
11 | * Learn more about using Google Analytics 4 with the
12 | * Next.js pages router here
13 | * @see https://nextjs.org/docs/pages/building-your-application/optimizing/third-party-libraries#google-analytics
14 | */
15 | export default function App({ Component, pageProps }) {
16 | return (
17 | <>
18 |
19 | {/* TODO: Andrew to revisit it https://aptos-org.slack.com/archives/C03EG004E56/p1747077993064609?thread_ts=1747077730.108909&cid=C03EG004E56 */}
20 | {/* */}
21 |
22 | >
23 | );
24 | }
25 |
--------------------------------------------------------------------------------
/apps/nextra/pages/_document.tsx:
--------------------------------------------------------------------------------
1 | import Document, { Head, Html, Main, NextScript } from "next/document";
2 | import Script from "next/script";
3 | import { SkipNavLink } from "nextra-theme-docs";
4 |
5 | class MyDocument extends Document {
6 | render() {
7 | return (
8 |
9 |
10 |
24 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | );
39 | }
40 | }
41 |
42 | export default MyDocument;
43 |
--------------------------------------------------------------------------------
/apps/nextra/pages/api/Inter-SemiBold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/pages/api/Inter-SemiBold.otf
--------------------------------------------------------------------------------
/apps/nextra/pages/api/Satoshi-Medium.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/pages/api/Satoshi-Medium.otf
--------------------------------------------------------------------------------
/apps/nextra/pages/api/compile-mdx.tsx:
--------------------------------------------------------------------------------
1 | /* eslint-env node */
2 | import { docsConfig } from "@docs-config";
3 | import type { NextApiRequest, NextApiResponse, NextConfig } from "next";
4 | import { buildDynamicMDX } from "nextra/remote";
5 |
6 | export const config: NextConfig = {
7 | // runtime: "edge",
8 | api: {
9 | bodyParser: {
10 | sizeLimit: "500kb",
11 | },
12 | },
13 | };
14 |
15 | type ResponseData = {
16 | code: Awaited>;
17 | };
18 |
19 | export default async function handler(
20 | req: NextApiRequest,
21 | res: NextApiResponse,
22 | ) {
23 | const body = req.body;
24 | const compileMdxOptions = {};
25 | const compiledMdx = await buildDynamicMDX(body, compileMdxOptions);
26 | res.status(200).json({ code: compiledMdx });
27 | }
28 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "get-started": "Get Started",
3 | "smart-contracts": "Smart Contracts (Move)",
4 | apis: "APIs",
5 | sdks: "SDKs",
6 | indexer: "Indexer",
7 | cli: "CLI",
8 | "create-aptos-dapp": "create-aptos-dapp",
9 | guides: "Guides",
10 | };
11 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/apis/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "fullnode-rest-api-reference": {
3 | title: "Fullnode REST API Reference",
4 | theme: {
5 | toc: false,
6 | layout: "full",
7 | sidebar: false,
8 | },
9 | },
10 | "fullnode-rest-api": "Fullnode REST API Guide",
11 | "indexer-graphql-api": {
12 | title: "Indexer GraphQL API",
13 | href: "/en/build/indexer",
14 | },
15 | "data-providers": "Data Providers",
16 | "faucet-api": {
17 | title: "Faucet API",
18 | },
19 | "aptos-labs-developer-portal": "API Gateway",
20 | };
21 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/apis/aptos-labs-developer-portal.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Aptos Labs Aptos Build"
3 | ---
4 |
5 | import { Callout } from "nextra/components";
6 |
7 | # Aptos Labs Aptos Build
8 |
9 | [Aptos Build](https://build.aptoslabs.com) is your gateway to access Aptos Labs provided APIs in a quick and easy fashion to power your dapp. Beyond API access it offers gas station and no code indexing services.
10 |
11 | Learn more about Aptos Build at the dedicated [Aptos Build docs site](https://build.aptoslabs.com/docs).
12 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/apis/fullnode-rest-api-reference.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Fullnode API Reference"
3 | ---
4 |
5 | import { DynamicApiReference, fetchApiReference } from '@components/index';
6 |
7 | export async function getStaticProps() {
8 | return await fetchApiReference()
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/cli/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "---get-started---": {
3 | type: "separator",
4 | title: "Get Started",
5 | },
6 | "install-cli": {
7 | title: "Installation",
8 | },
9 | "setup-cli": {
10 | title: "Setup",
11 | },
12 | "start-from-template": {
13 | title: "Start from template",
14 | },
15 | "---usage---": {
16 | type: "separator",
17 | title: "Usage",
18 | },
19 | "working-with-move-contracts": {
20 | title: "Working With Move Contracts",
21 | },
22 | "formatting-move-contracts": {
23 | title: "Formatting Move Contracts",
24 | },
25 | "trying-things-on-chain": {
26 | title: "Trying Things On-Chain",
27 | },
28 | "replay-past-transactions": {
29 | title: "Replaying Past Transactions",
30 | },
31 | "running-a-local-network": {
32 | title: "Running a Local Network",
33 | },
34 | "managing-a-network-node": {
35 | title: "Managing a Network Node",
36 | },
37 | "public-network": {
38 | title: "Running a Public Network (Advanced)",
39 | },
40 | };
41 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/cli/install-cli/_meta.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | "install-cli-mac": {
3 | title: "Mac",
4 | },
5 | "install-cli-windows": {
6 | title: "Windows",
7 | },
8 | "install-cli-linux": {
9 | title: "Linux",
10 | },
11 | "install-cli-specific-version": {
12 | title: "Install Specific Versions (Advanced)",
13 | },
14 | };
15 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/cli/managing-a-network-node.mdx:
--------------------------------------------------------------------------------
1 | # Managing a Network Node via Aptos CLI
2 |
3 | If you are running a [validator node or validator full node (VFN)](../../network/nodes/validator-node.mdx), you can use the CLI to interact with your node.
4 |
5 | Specifically, you can use the CLI to:
6 |
7 | 1. [Manage staking pools you own](../../network/nodes/validator-node/connect-nodes/staking-pool-operations.mdx).
8 | 2. [Vote on proposals](../../network/nodes/validator-node/connect-nodes/staking-pool-voter.mdx).
9 |
10 | Beyond that, you can run this help command to see more specialized commands the CLI can do relating to operating your node:
11 |
12 | ```bash filename="Terminal"
13 | aptos node --help
14 | ```
15 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/cli/trying-things-on-chain.mdx:
--------------------------------------------------------------------------------
1 | # Trying Things On-Chain With Aptos CLI
2 |
3 | The CLI can be a convenient tool for quickly looking up on-chain data and sending transactions from your accounts.
4 |
5 | The most common way to specify what accounts you want to interact with is through profiles. You can create a new profile on the cli by running the following command:
6 |
7 | ```bash filename="Terminal"
8 | aptos init --profile
9 | ```
10 |
11 | If any command takes an account, you can pass in the name of a profile instead. If a command implicitly uses the default profile, it will usually have an optional parameter to use a specified profile instead which you can find by running `aptos --help`.
12 |
13 | With that, the three main things you can use the CLI to do on-chain include:
14 |
15 | 1. [Looking Up On-Chain Account Info](trying-things-on-chain/looking-up-account-info.mdx)
16 | 2. [Creating test accounts and sending transactions](trying-things-on-chain/create-test-accounts.mdx)
17 | 3. [Securely interacting on-chain via a Hardware Ledger](trying-things-on-chain/ledger.mdx)
18 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/cli/trying-things-on-chain/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "looking-up-account-info": {
3 | title: "Look Up On-Chain Account Info",
4 | },
5 | "create-test-accounts": {
6 | title: "Create Test Accounts",
7 | },
8 | ledger: {
9 | title: "Use Hardware Ledger",
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/cli/working-with-move-contracts/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "local-simulation-benchmarking-and-gas-profiling": {
3 | title: "Local Simulation, Benchmarking & Gas Profiling",
4 | },
5 | "arguments-in-json-tutorial": {
6 | title: "Arguments in JSON Tutorial",
7 | },
8 | "multi-signature-tutorial": {
9 | title: "Multisig Governance Tutorial",
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/create-aptos-dapp/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | templates: {
3 | title: "Templates",
4 | href: "https://learn.aptoslabs.com/en/dapp-templates",
5 | newWindow: true,
6 | },
7 | faq: {
8 | title: "FAQ",
9 | },
10 | };
11 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/get-started/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "developer-setup": {
3 | title: "Developer Setup",
4 | theme: {
5 | toc: false,
6 | layout: "full",
7 | },
8 | },
9 | "ethereum-cheatsheet": {
10 | title: "Ethereum to Aptos Cheatsheet",
11 | },
12 | "solana-cheatsheet": {
13 | title: "Solana to Aptos Cheatsheet",
14 | },
15 | // TODO: Will uncomment when ready for use
16 | // "create-aptos-dapp": {
17 | // title: "create-aptos-dapp",
18 | // href: "https://github.com/aptos-labs/create-aptos-dapp",
19 | // },
20 | };
21 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/guides/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "---beginner---": {
3 | type: "separator",
4 | title: "Beginner",
5 | },
6 | "first-transaction": {
7 | title: "Your First Transaction",
8 | },
9 | "build-e2e-dapp": {
10 | title: "Build an E2E Dapp with Aptos",
11 | },
12 | "your-first-nft": {
13 | title: "Your First NFT",
14 | },
15 | "first-coin": {
16 | title: "Your First Coin",
17 | },
18 | "first-fungible-asset": {
19 | title: "Your First Fungible Asset",
20 | },
21 | "first-move-module": {
22 | title: "Your First Move Module",
23 | },
24 | "first-multisig": {
25 | title: "Your First Multisig",
26 | },
27 | "---advanced---": {
28 | type: "separator",
29 | title: "Advanced",
30 | },
31 | "multisig-managed-fungible-asset": {
32 | title: "Manage Fungible Assets with Multisig",
33 | },
34 | "aptos-keyless": {
35 | title: "Aptos Keyless Accounts",
36 | },
37 | "sponsored-transactions": {
38 | title: "Sponsored Transactions",
39 | },
40 | "transaction-management": {
41 | title: "Transaction Management",
42 | },
43 | "key-rotation": {
44 | title: "Account Key Rotation",
45 | },
46 | "---integration---": {
47 | type: "separator",
48 | title: "Integration Guides",
49 | },
50 | exchanges: {
51 | title: "Exchanges",
52 | },
53 | "system-integrators-guide": {
54 | title: "Applications",
55 | },
56 | };
57 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/guides/aptos-keyless.mdx:
--------------------------------------------------------------------------------
1 | # Aptos Keyless
2 |
3 | ## Integrate with Aptos Keyless accounts
4 |
5 | - [Introduction](aptos-keyless/introduction.mdx)
6 | - [OIDC Support and Configuration](aptos-keyless/oidc-support.mdx)
7 | - [Integration Guide](aptos-keyless/integration-guide.mdx)
8 | - [Simple Example](aptos-keyless/simple-example.mdx)
9 | - [How Aptos Keyless works](aptos-keyless/how-keyless-works.mdx)
10 | - [Terminology and FAQ](aptos-keyless/other.mdx)
11 |
12 | ## Using an IAM Provider? Integrate with Aptos Federated Keyless
13 | - [Federated Keyless](aptos-keyless/federated-keyless.mdx)
14 |
15 | ## Example
16 |
17 | Visit this page to learn more [Simple Example](aptos-keyless/simple-example.mdx)
18 |
19 |
20 |
21 |
34 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/guides/aptos-keyless/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | introduction: {
3 | title: "Introduction",
4 | },
5 | "oidc-support": {
6 | title: "OIDC Support",
7 | },
8 | "integration-guide": {
9 | title: "Integration Guide",
10 | },
11 | "simple-example": {
12 | title: "Simple Example",
13 | },
14 | "how-keyless-works": {
15 | title: "How Keyless Works",
16 | },
17 | other: {
18 | title: "Terminology and FAQ",
19 | },
20 | "federated-keyless": {
21 | title: "Federated Keyless",
22 | },
23 | };
24 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/guides/aptos-keyless/federated-keyless/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "key-considerations": {
3 | title: "Key Considerations",
4 | },
5 | "integration-guide": {
6 | title: "Integration Guide",
7 | },
8 | "simple-example": {
9 | title: "Simple Example",
10 | },
11 | other: {
12 | title: "FAQs",
13 | },
14 | };
15 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/guides/aptos-keyless/federated-keyless/simple-example.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Federated Keyless Simple Example"
3 | ---
4 |
5 | # Federated Keyless Simple Example
6 |
7 | The Federated Keyless Example shows how to set up a Federated Keyless account using Auth0 as the IAM provider.
8 |
9 | Explore the code in [aptos-keyless-example repository](https://github.com/aptos-labs/aptos-keyless-example/tree/main/examples/federated-keyless-example/).
10 |
11 | The Keyless Simple Example is currently undergoing maintenance. Please check back later.
12 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/guides/aptos-keyless/simple-example.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Keyless Simple Example"
3 | ---
4 |
5 | # Keyless Simple Example
6 |
7 | Explore the code in [aptos-keyless-example repository](https://github.com/aptos-labs/aptos-keyless-example/tree/main/examples/keyless-example/).
8 |
9 | The Keyless Simple Example is currently undergoing maintenance. Please check back later.
10 |
11 | This is a live Keyless example on StackBlitz. Follow the instructions in the `README.md` to add your own Google `client_id`. Explore the code in [aptos-keyless-example repository](https://github.com/aptos-labs/aptos-keyless-example/tree/main/examples/keyless-example/).
12 |
13 |
14 |
15 |
28 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/guides/build-e2e-dapp/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "1-create-smart-contract": {
3 | title: "1. Create Smart Contract",
4 | },
5 | "2-set-up-the-frontend": {
6 | title: "2. Set Up The Frontend",
7 | },
8 | "3-fetch-data-from-chain": {
9 | title: "3. Fetch Data from Chain",
10 | },
11 | "4-submit-data-to-chain": {
12 | title: "4. Submit Data to Chain",
13 | },
14 | "5-handle-tasks": {
15 | title: "5. Handle Tasks",
16 | },
17 | };
18 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/indexer/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "indexer-api": {
3 | title: "Indexer API",
4 | },
5 | "indexer-sdk": {
6 | title: "Indexer SDK",
7 | },
8 | "txn-stream": {
9 | title: "Transaction Stream Service",
10 | },
11 | legacy: {
12 | title: "Legacy Indexer",
13 | },
14 | "nft-aggregator": {
15 | title: "NFT Aggregator API",
16 | },
17 | };
18 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/indexer/indexer-api/fungible-asset-info.mdx:
--------------------------------------------------------------------------------
1 | import { GraphQLEditor } from '@components/index'
2 | import { Callout } from 'nextra/components'
3 |
4 | # Get Fungible Asset Info
5 |
6 | By providing a list of fungible asset types, `GetFungibleAssetInfo` can fetch data such as the symbol, name, decimals, and the asset type itself. This is particularly useful for applications needing to display token details. This is backwards compatible with looking up `Coin` info.
7 |
8 |
9 | Try it yourself! You can customize the variables at the bottom of the editor.
10 |
11 |
12 |
31 |
32 | ## Variables:
33 | - `$in`: **List of String** - This variable should contain a list of fungible asset types you want to query information for. Ex. `["0x1::aptos_coin::AptosCoin"]`
34 | - `$offset`: **Integer** (Optional) - This variable can be used to paginate through results, specifying how many records to skip before starting to return results.
35 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/indexer/indexer-api/get-delegators.mdx:
--------------------------------------------------------------------------------
1 | import { GraphQLEditor } from 'components/index'
2 | import { Callout } from 'nextra/components'
3 |
4 | # Count Number of Active Delegators for a Pool
5 |
6 | `getNumberOfDelegators` retrieves the count of active delegators for a specified pool address. This query is especially valuable for platforms that need to analyze participation in staking or delegation pools.
7 |
8 |
9 | Try it now! Customize the variable below in the editor to explore different pool addresses.
10 |
11 |
12 |
25 |
26 | #### Variables:
27 | - `$poolAddress`: **String** - The address of the pool for which to query the number of active delegators. Example: `"0x06099edbe54f242bad50020dfd67646b1e46282999483e7064e70f02f7ea3c15"`.
28 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/indexer/indexer-sdk.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Indexer SDK"
3 | ---
4 |
5 | # Indexer SDK
6 |
7 | import { IndexerBetaNotice, ThemedImage, Cards, Card, GraphQLEditor } from '@components/index';
8 |
9 |
10 |
11 | While the Indexer API is a powerful tool for querying basic on-chain data, it may not always provide the exact data you need.
12 | In most cases, you want to index your own contract and to do that, you can create your own custom processor using the Indexer SDK.
13 |
14 | ## Using the Indexer SDK
15 |
16 | Learn how to use the Indexer SDK through guides and documentation.
17 |
18 |
19 |
20 | Quickstart Guide
21 | Get started with the Indexer SDK
22 |
23 |
24 | Documentation
25 | Read documentation about the Indexer SDK
26 |
27 |
28 |
29 |
30 | ## Example Processors
31 | As a reference, you can see all Aptos-Hosted processors that comprise the Indexer API [here](https://github.com/aptos-labs/aptos-indexer-processors-v2).
32 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/indexer/indexer-sdk/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | quickstart: {
3 | title: "Quickstart Guide",
4 | },
5 | documentation: {
6 | title: "Documentation",
7 | },
8 | "advanced-tutorials": {
9 | title: "Advanced Tutorials",
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/indexer/indexer-sdk/advanced-tutorials/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "test-transactions": {
3 | title: "Preparing Test Transactions",
4 | },
5 | "txn-importer": {
6 | title: "Importing Transactions",
7 | },
8 | "txn-script": {
9 | title: "Generating Transactions with Move Scripts",
10 | },
11 | "processor-test": {
12 | title: "Testing Your Processor",
13 | },
14 | };
15 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/indexer/indexer-sdk/documentation/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | setup: { title: "Initial Setup" },
3 | "define-schema": {
4 | title: "Defining a Data Schema",
5 | },
6 | "create-processor": {
7 | title: "Create a Processor",
8 | },
9 | steps: {
10 | title: "Creating a Step",
11 | },
12 | "connect-steps": {
13 | title: "Connecting Steps",
14 | },
15 | "version-tracking": {
16 | title: "Version Tracking",
17 | },
18 | "run-processor": {
19 | title: "Running a Processor",
20 | },
21 | };
22 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/indexer/indexer-sdk/documentation/setup.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Initial Setup"
3 | ---
4 |
5 | # Initial Setup
6 |
7 | If you're creating a custom processor from scratch, we recommend following the [Quickstart Guide](../quickstart.mdx).
8 | The quickstart guide provides a template processor and includes all of this setup.
9 |
10 | If you're migrating an existing processor to the Indexer SDK, follow the steps below.
11 |
12 | Add `aptos-indexer-processor-sdk` to your `Cargo.toml`.
13 |
14 | ```toml
15 | [dependencies]
16 | aptos-indexer-processor-sdk = { git = "https://github.com/aptos-labs/aptos-indexer-processor-sdk.git", rev = "aptos-indexer-processor-sdk-v1.0.0" }
17 | ```
18 |
19 | `aptos-indexer-processor-sdk` includes the following features:
20 | 1. `postgres_full` - Interface layer to integrate Postgres with your processor.
21 | 2. `testing_framework` - An e2e testing framework for testing processors. If you want to write tests for your processor, add this feature to the crate.
22 |
23 | {/* */}
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/indexer/indexer-sdk/documentation/steps/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "transaction-stream": {
3 | title: "Transaction Stream Step",
4 | },
5 | "parsing-txns": {
6 | title: "Parsing Transactions",
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/indexer/legacy.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Legacy Indexer"
3 | ---
4 |
5 | import { Callout } from 'nextra/components'
6 |
7 | # Legacy Indexer
8 |
9 |
10 | Deprecation Alert
11 |
12 | From Now - end of Q2, 2024: We will not be adding any new features to the legacy Indexer. However, we will continue to generally support the community, and will make sure that any changes made on the blockchain level does not break the existing legacy processors.
13 |
14 | After Q2, 2024: We will remove the indexer crates from the [aptos-core](https://github.com/aptos-labs/aptos-core) repo and the legacy indexer will no longer be supported. Please look at our new [Transaction Stream Service](txn-stream.mdx) and updated [Indexer API](../indexer.mdx)
15 |
16 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/indexer/legacy/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "indexer-fullnode": {
3 | title: "Run an Indexer Fullnode",
4 | },
5 | "custom-data-model": {
6 | title: "Custom Data Model",
7 | },
8 | migration: {
9 | title: "Migrate to Transaction Stream Service",
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/indexer/nft-aggregator/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "nft-aggregator-table": {
3 | title: "NFT Aggregator Table Reference",
4 | },
5 | "graphql-api": {
6 | title: "GraphQL API",
7 | },
8 | "analytics-api": {
9 | title: "Analytics REST API",
10 | },
11 | marketplaces: {
12 | title: "Marketplaces",
13 | items: [
14 | {
15 | title: "Bluemove",
16 | href: "/en/build/indexer/nft-aggregator/marketplaces/bluemove",
17 | },
18 | ],
19 | },
20 | };
21 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/indexer/txn-stream.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Transaction Stream Service"
3 | ---
4 |
5 | # Transaction Stream Service
6 |
7 | import { IndexerBetaNotice } from '@components/index';
8 |
9 |
10 |
11 | The Transaction Stream Service is a service that listens to the Aptos blockchain and emits transactions as they are processed. These docs explain how this system works, how to use the Labs-Hosted instance of the service, and how to deploy it yourself.
12 |
13 | You can get API access to a transaction stream hosted by Aptos Labs [here](txn-stream/aptos-hosted-txn-stream.mdx).
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/indexer/txn-stream/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "aptos-hosted-txn-stream": {
3 | title: "Aptos-Hosted Transaction Stream Service",
4 | },
5 | "self-hosted": {
6 | title: "Self-Hosted Transaction Stream Service",
7 | },
8 | "local-development": {
9 | title: "Running Locally",
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "ts-sdk": {
3 | title: "TypeScript SDK",
4 | },
5 | "python-sdk": {
6 | title: "Python SDK",
7 | },
8 | "go-sdk": {
9 | title: "Go SDK",
10 | },
11 | "rust-sdk": {
12 | title: "Rust SDK",
13 | },
14 | "dotnet-sdk": {
15 | title: ".NET SDK",
16 | },
17 | "cpp-sdk": {
18 | title: "C++ / Unreal SDK",
19 | },
20 | "unity-sdk": {
21 | title: "Unity SDK",
22 | },
23 | "wallet-adapter": {
24 | title: "Wallet Adapter",
25 | },
26 | "community-sdks": {
27 | title: "Community SDKs",
28 | },
29 | };
30 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/community-sdks.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Community SDKs"
3 | ---
4 |
5 | import { Card, Cards } from '@components/index'
6 |
7 | # Community SDKs
8 |
9 | Here is a list of community built SDKs for Aptos. These may not be fully vetted by the Aptos team, and may still be in development.
10 | They are still provided as a resource for all developers.
11 |
12 | ## SDKs
13 |
14 |
15 |
16 |
17 |
18 | Kotlin SDK
19 |
20 | Aptos Kotlin Multiplatform SDK by Kaptos
21 |
22 |
23 |
24 |
25 |
26 |
27 | Swift SDK
28 |
29 | Aptos Swift SDK by Alcove
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/community-sdks/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "kotlin-sdk": {
3 | title: "Kotlin SDK",
4 | },
5 | "swift-sdk": {
6 | title: "Swift SDK",
7 | },
8 | "unity-opendive-sdk": {
9 | title: "Unity SDK (Legacy)",
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/community-sdks/kotlin-sdk/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "---get-started---": {
3 | type: "separator",
4 | title: "Get Started",
5 | },
6 | quickstart: {
7 | title: "Quickstart",
8 | },
9 | "---usage---": {
10 | type: "separator",
11 | title: "Usage",
12 | },
13 | account: {
14 | title: "Creating and Managing Accounts",
15 | },
16 | "fetch-data-via-sdk": {
17 | title: "Fetch Data via the Kotlin SDK",
18 | },
19 | "building-transactions": {
20 | title: "Building and Sending Transactions",
21 | },
22 | "sponsored-transactions": {
23 | title: "Sponsoring Transactions (Fee Payer)",
24 | },
25 | "for-ios-devs": {
26 | title: "For iOS Developers",
27 | },
28 | "client-configuration": {
29 | title: "Client Configuration",
30 | },
31 | };
32 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/community-sdks/kotlin-sdk/for-ios-devs/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "aptos-kit": {
3 | title: "AptosKit",
4 | },
5 | "getting-started": {
6 | title: "Getting Started",
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/cpp-sdk.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Aptos C++ / Unreal SDK"
3 | ---
4 |
5 | # Aptos C++ / Unreal SDK
6 |
7 | There is a C++ / Unreal SDK for Aptos, built by Var Meta [here](https://github.com/VAR-META-Tech/Aptos-Cpp-SDK/)
8 |
9 | ## Installing the SDK
10 |
11 | There are installation instructions, as well as usage instructions [here](https://github.com/VAR-META-Tech/Aptos-Cpp-SDK/?tab=readme-ov-file#installation-guide)
12 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/dotnet-sdk/_meta.tsx:
--------------------------------------------------------------------------------
1 | import { title } from "process";
2 |
3 | export default {
4 | "getting-started": {
5 | title: "Getting Started",
6 | },
7 | "unity-integration": {
8 | title: "Unity Integration",
9 | },
10 | "godot-integration": {
11 | title: "Godot Integration",
12 | },
13 | accounts: {
14 | title: "Accounts",
15 | },
16 | transactions: {
17 | title: "Transactions",
18 | },
19 | queries: {
20 | title: "Queries",
21 | },
22 | "dotnet-examples": {
23 | title: "Examples",
24 | },
25 | };
26 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/dotnet-sdk/accounts/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | ed25519: {
3 | title: "Ed25519 Accounts",
4 | },
5 | keyless: {
6 | title: "Keyless Accounts",
7 | },
8 | multikey: {
9 | title: "Multikey Accounts",
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/dotnet-sdk/queries/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | view: {
3 | title: "View Functions",
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/dotnet-sdk/transactions/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "basic-transactions": {
3 | title: "Basic Transactions",
4 | },
5 | "sponsored-transactions": {
6 | title: "Sponsored Transactions",
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/go-sdk.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Go SDK"
3 | ---
4 |
5 | import { Card, Cards } from '@components/index'
6 |
7 | # Aptos Go SDK
8 |
9 | ## Installing the Go SDK
10 |
11 | Aptos provides an official Go SDK in
12 | the [aptos-go-sdk GitHub](https://github.com/aptos-labs/aptos-go-sdk) repository.
13 | To use the Go SDK, get the main package here:
14 |
15 | ```bash
16 | go get github.com/aptos-labs/aptos-go-sdk
17 | ```
18 |
19 | ## Usage
20 |
21 |
22 |
23 | Fetching Data
24 | Learn how to fetch data with the Go SDK
25 |
26 |
27 | Submitting Transactions
28 | Learn how to submit transactions with the Go SDK
29 |
30 |
31 | Examples
32 | Explore Go examples provided in the SDK
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/go-sdk/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "---usage---": {
3 | type: "separator",
4 | title: "Usage",
5 | },
6 | account: {
7 | title: "Accounts",
8 | },
9 | "fetch-data-via-sdk": {
10 | title: "Fetch Data",
11 | },
12 | "building-transactions": {
13 | title: "Transactions",
14 | },
15 | "go-examples": {
16 | title: "Example Code",
17 | },
18 | };
19 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/go-sdk/building-transactions/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "simulating-transactions": {
3 | title: "Simulating Transactions",
4 | },
5 | "multi-agent-transactions": {
6 | title: "Multi-Agent Transactions",
7 | },
8 | "sponsoring-transactions": {
9 | title: "Sponsoring Transactions",
10 | },
11 | "batching-transactions": {
12 | title: "Batching Transactions",
13 | },
14 | "bcs-format": {
15 | title: "BCS Format",
16 | },
17 | };
18 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/rust-sdk.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Rust SDK"
3 | ---
4 |
5 | # Rust SDK
6 |
7 | ## Installation
8 |
9 | Aptos provides an official lightly supported Rust SDK in the
10 | [Aptos-core GitHub](https://github.com/aptos-labs/aptos-core/tree/main/sdk)
11 | repository. To use the Rust SDK, add the following dependency and patches on the
12 | git repo directly in your `Cargo.toml`, like this:
13 |
14 | ```toml filename="Cargo.toml"
15 | [dependencies]
16 | aptos-sdk = { git = "https://github.com/aptos-labs/aptos-core", branch = "devnet" }
17 |
18 | [patch.crates-io]
19 | merlin = { git = "https://github.com/aptos-labs/merlin" }
20 | x25519-dalek = { git = "https://github.com/aptos-labs/x25519-dalek", branch = "zeroize_v1" }
21 | ```
22 |
23 | You must also create a `.cargo/config.toml` file with this content:
24 |
25 | ```toml filename=".cargo/config.toml"
26 | [build]
27 | rustflags = ["--cfg", "tokio_unstable"]
28 | ```
29 |
30 | The source code for the official Rust SDK is available in the
31 | [aptos-core GitHub repository](https://github.com/aptos-labs/aptos-core/tree/main/sdk).
32 |
33 | ## Using Rust SDK
34 |
35 | See the [Developer Tutorials](../guides.mdx) for code examples showing how to
36 | use the Rust SDK.
37 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/ts-sdk/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "---get-started---": {
3 | type: "separator",
4 | title: "Get Started",
5 | },
6 | quickstart: {
7 | title: "Quickstart",
8 | },
9 | "---usage---": {
10 | type: "separator",
11 | title: "Usage",
12 | },
13 | account: {
14 | title: "Accounts",
15 | },
16 | "fetch-data-via-sdk": {
17 | title: "Fetch Data",
18 | },
19 | "building-transactions": {
20 | title: "Transactions",
21 | },
22 | "ts-examples": {
23 | title: "Example Code",
24 | },
25 | "type-safe-contract": {
26 | title: "Surf: TypeScript Type Safety for Move Contracts",
27 | },
28 | // Legacy TS SDK should be at the bottom as it is not supposed to be read unless you already know you need it.
29 | "legacy-ts-sdk": {
30 | title: "Legacy TypeScript SDK (Deprecated)",
31 | },
32 | "confidential-asset": {
33 | title: "Confidential Asset (CA)",
34 | },
35 | };
36 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/ts-sdk/account/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "account-abstraction": {
3 | title: "Account Abstraction",
4 | },
5 | "derivable-account-abstraction": {
6 | title: "Derivable Account Abstraction",
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/ts-sdk/building-transactions/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "simulating-transactions": {
3 | title: "Simulating Transactions",
4 | },
5 | "multi-agent-transactions": {
6 | title: "Multi-Agent Transactions",
7 | },
8 | "sponsoring-transactions": {
9 | title: "Sponsoring Transactions",
10 | },
11 | "batching-transactions": {
12 | title: "Batching Transactions",
13 | },
14 | "bcs-format": {
15 | title: "BCS Format",
16 | },
17 | "script-composer": {
18 | title: "Script Composer",
19 | },
20 | };
21 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/ts-sdk/legacy-ts-sdk.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Legacy TypeScript SDK"
3 | ---
4 |
5 | import { Callout } from 'nextra/components';
6 |
7 | # Legacy TypeScript SDK
8 |
9 |
10 | The Legacy TypeScript SDK package `aptos` is deprecated and will be replaced by the new TypeScript SDK. Please refer to the [new TypeScript SDK](../ts-sdk.mdx) for the latest features and updates. Take a look at the [migration guide](legacy-ts-sdk/migration-guide.mdx).
11 |
12 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/ts-sdk/legacy-ts-sdk/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "migration-guide": {
3 | title: "TypeScript SDK Migration Guide",
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/sdks/wallet-adapter/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | dapp: {
3 | title: "Dapp Builders",
4 | },
5 | "browser-extension-wallets": {
6 | title: "Browser Extension Wallet Builders",
7 | },
8 | wallets: {
9 | title: "SDK Wallet Builders",
10 | },
11 | "wallet-standards": {
12 | title: "Aptos Wallet Standard",
13 | },
14 | "x-chain-accounts": {
15 | title: "X-Chain Accounts",
16 | },
17 | };
18 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/smart-contracts/book.mdx:
--------------------------------------------------------------------------------
1 | # The Move Book
2 |
3 | Welcome to Move, a next generation language for secure, sandboxed, and formally
4 | verified programming. It has been used as the smart contract language for
5 | several blockchains including Aptos. Move allows developers to write programs
6 | that flexibly manage and transfer assets, while providing the security and
7 | protections against attacks on those assets. However, Move has been developed
8 | with use cases in mind outside a blockchain context as well.
9 |
10 | Move takes its cue from [Rust](https://www.rust-lang.org/) by using resource
11 | types with move (hence the name) semantics as an explicit representation of
12 | digital assets, such as currency.
13 |
14 | ## Who is Aptos Move Book for?
15 |
16 | Move was designed and created as a secure, verified, yet flexible programming
17 | language. The first use of Move is for the implementation of the Diem
18 | blockchain, and it is currently being used on Aptos.
19 |
20 | This book is suitable for developers with some programming experience
21 | and who want to begin understanding the core programming language and see
22 | examples of its usage.
23 |
24 | ## Where Do I Start?
25 |
26 | Begin with understanding [modules and scripts](book/modules-and-scripts.mdx)
27 | and then work through the [Move Tutorial](book/move-tutorial.mdx).
28 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/smart-contracts/book/global-storage-structure.mdx:
--------------------------------------------------------------------------------
1 | # Global Storage - Structure
2 |
3 | The purpose of Move programs is to [read from and write to](global-storage-operators.mdx) tree-shaped persistent global storage. Programs cannot access the filesystem, network, or any other data outside of this tree.
4 |
5 | In pseudocode, the global storage looks something like:
6 |
7 | ```move
8 | module 0x42::example {
9 | struct GlobalStorage {
10 | resources: Map<(address, ResourceType), ResourceValue>,
11 | modules: Map<(address, ModuleName), ModuleBytecode>
12 | }
13 | }
14 | ```
15 |
16 | Structurally, global storage is a [forest](https://en.wikipedia.org/wiki/Tree_(graph_theory)) consisting of trees rooted at an account [`address`](address.mdx). Each address can store both [resource](structs-and-resources.mdx) data values and [module](modules-and-scripts.mdx) code values. As the pseudocode above indicates, each `address` can store at most one resource value of a given type and at most one module with a given name.
17 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/smart-contracts/book/move-tutorial.mdx:
--------------------------------------------------------------------------------
1 | # Move Tutorial
2 |
3 | Please refer to the [Move Core Language Tutorial](https://github.com/aptos-labs/aptos-core/tree/main/aptos-move/move-examples/move-tutorial).
4 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/smart-contracts/book/standard-library.mdx:
--------------------------------------------------------------------------------
1 | # Libraries
2 |
3 | Aptos provides multiple useful libraries for developers. The complete up-to-date
4 | docs can be found [here](../move-reference).
5 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/smart-contracts/modules-on-aptos.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Modules on Aptos"
3 | ---
4 | import { Callout } from "nextra/components";
5 |
6 | # Modules on Aptos
7 |
8 | Aptos allows for permissionless publishing of [modules](book/modules-and-scripts.mdx)
9 | within a [package](book/packages.mdx) as well as [upgrading](book/package-upgrades.mdx)
10 | those that have appropriate compatibility policy set.
11 |
12 | A module contains several structs and functions, much like Rust.
13 |
14 | During package publishing time, a few constraints are maintained:
15 |
16 | - Both Structs and public function signatures are published as immutable.
17 | - Only when a module is being published for the first time, and not during an
18 | upgrade, will the VM search for and execute an `init_module(account: &signer)`
19 | function. The signer of the account that is publishing the module is passed into
20 | the `init_module` function of the contract. **This function must be private and
21 | not return any value.**
22 |
23 |
24 | `init_module` is optional
25 | It is only necessary if you want to initialize data when publishing a module for the first time.
26 |
27 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/smart-contracts/move-reference.mdx:
--------------------------------------------------------------------------------
1 | import { MoveReference, AptosFrameworkReference } from '@components/index';
2 |
3 | # Move Reference
4 |
5 |
6 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/smart-contracts/object/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "creating-objects": {
3 | title: "Creating Objects",
4 | },
5 | "using-objects": {
6 | title: "Using Objects",
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/smart-contracts/prover.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Overview"
3 | ---
4 |
5 | # Move Prover
6 |
7 | The Move Prover supports formal [specification](prover/spec-lang.mdx) and
8 | [verification](prover/prover-guide.mdx) of Move code. The Move Prover can
9 | automatically validate logical properties of Move smart contracts while offering
10 | a user experience similar to a type checker or linter.
11 |
12 | The Move Prover exists to make contracts more _trustworthy_; it:
13 |
14 | - Protects massive assets managed by the Aptos blockchain from smart contract bugs
15 | - Protects against well-resourced adversaries
16 | - Anticipates justified regulator scrutiny and compliance requirements
17 | - Allows domain experts with a mathematical background, but not necessarily a
18 | software engineering background, to understand what smart contracts do
19 |
20 | For more information, refer to the documentation:
21 |
22 | - [Installation](../cli/setup-cli/install-move-prover.mdx)
23 | - [Move Prover User Guide](prover/prover-guide.mdx)
24 | - [Move Specification Language](prover/spec-lang.mdx)
25 | - [Move Prover Supporting Resources](prover/supporting-resources.mdx)
26 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/smart-contracts/prover/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "prover-guide": {
3 | title: "Move Prover User Guide",
4 | },
5 | "supporting-resources": {
6 | title: "Move Prover Supporting Resources",
7 | },
8 | "spec-lang": {
9 | title: "Move Specification Language",
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/smart-contracts/reference.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Move Reference"
3 | ---
4 |
5 | import { MoveReference } from '@components/index'
6 |
7 | # Move Reference
8 |
9 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/build/smart-contracts/scripts/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "writing-scripts": {
3 | title: "Writing Move Scripts",
4 | },
5 | "compiling-scripts": {
6 | title: "Compiling Move Scripts",
7 | },
8 | "running-scripts": {
9 | title: "Running Move Scripts",
10 | },
11 | "script-tutorial": {
12 | title: "Move Scripts Tutorial",
13 | },
14 | };
15 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/developer-platforms/_meta.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | contribute: "Contribute",
3 | };
4 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/developer-platforms/contribute/_meta.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | setup: "Setup",
3 | components: "Components",
4 | examples: "Examples",
5 | };
6 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/developer-platforms/contribute/components/_meta.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | codeblock: "Codeblock",
3 | mermaid: "Mermaid",
4 | npm2yarn: "Npm2Yarn",
5 | latex: "LaTeX",
6 | table: "Rendering Tables",
7 | "themed-image": "Themed Image",
8 | "graphql-editor": "GraphQL Editor",
9 | "remote-codeblock": "Remote Codeblock",
10 | };
11 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/developer-platforms/contribute/components/filetree.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | searchable: false
3 | ---
4 |
5 | import { FileTree } from 'nextra/components'
6 |
7 | # File Tree Component
8 |
9 | ## Example
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | ## Usage
25 |
26 | ```mdx filename="MDX"
27 | import { FileTree } from 'nextra/components'
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 | ```
42 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/developer-platforms/contribute/components/link.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | searchable: false
3 | ---
4 |
5 | # Next.js Link
6 |
7 | All relative Markdown links are automatically converted to Next.js links. This
8 | means that the target page will be prefetched. And when you click on a link, the
9 | page will be loaded on the client-side like a SPA, without making a full page
10 | load. For example:
11 |
12 | ```md filename="Markdown"
13 | Click [here](/about) to read more.
14 | ```
15 |
16 | Will be equivalent to:
17 |
18 | ```mdx filename="MDX"
19 | import Link from 'next/link'
20 |
21 | Click here to read more.
22 | ```
23 |
24 | This feature makes navigation between Nextra pages fast and seamless.
25 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/developer-platforms/contribute/components/mermaid.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | searchable: false
3 | ---
4 |
5 | # Mermaid
6 |
7 | Nextra supports [mermaid](https://mermaid.js.org) diagrams. Like in GitHub you
8 | can use it in your markdown files by using the `mermaid` code block language.
9 | Out of the box, Nextra uses
10 | [`@theguild/remark-mermaid`](https://npmjs.com/package/@theguild/remark-mermaid)
11 | package that replaces the code block with the `` component.
12 |
13 | ## Example
14 |
15 | ```mermaid
16 | graph TD;
17 | subgraph AA [Consumers]
18 | A[Mobile app];
19 | B[Web app];
20 | C[Wallet client];
21 | end
22 | subgraph BB [Services]
23 | E[Indexer];
24 | F[Node API];
25 | G[BigQuery];
26 | end
27 | Z[GraphQL API];
28 | A --> Z;
29 | B --> Z;
30 | C --> Z;
31 | Z --> E;
32 | Z --> F;
33 | Z --> G;
34 | ```
35 |
36 | ## Usage
37 |
38 | ````md filename="Markdown"
39 | ```mermaid
40 | graph TD;
41 | subgraph AA [Consumers]
42 | A[Mobile app];
43 | B[Web app];
44 | C[Node.js client];
45 | end
46 | subgraph BB [Services]
47 | E[Indexer];
48 | F[Node API];
49 | G[BigQuery];
50 | end
51 | Z[GraphQL API];
52 | A --> Z;
53 | B --> Z;
54 | C --> Z;
55 | Z --> E;
56 | Z --> F;
57 | Z --> G;
58 | ```
59 | ````
60 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/developer-platforms/contribute/components/npm2yarn.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | searchable: false
3 | ---
4 |
5 | # Npm2Yarn
6 |
7 | Nextra uses
8 | [`@theguild/remark-npm2yarn`](https://npmjs.com/package/@theguild/remark-npm2yarn)
9 | package that replaces the code block that has `npm2yarn` metadata with
10 | [`` and `` components](tabs.mdx) from
11 | `nextra/components`.
12 |
13 | The chosen tab is saved in the local storage, which will be chosen in future
14 | page renders.
15 |
16 | ## Example
17 |
18 | ```bash npm2yarn
19 | npm i -D @graphql-eslint/eslint-plugin
20 | ```
21 |
22 | ## Usage
23 |
24 | ````md filename="Markdown" /npm2yarn/
25 | ```bash npm2yarn
26 | npm i -D @graphql-eslint/eslint-plugin
27 | ```
28 | ````
29 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/developer-platforms/contribute/components/steps.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | searchable: false
3 | ---
4 |
5 | import { Steps } from 'nextra/components'
6 |
7 | # Steps Component
8 |
9 | A built-in component to turn a numbered list into a visual representation of
10 | steps.
11 |
12 | ## Example
13 |
14 |
15 |
16 | ### This is the first step
17 |
18 | This is the first step description.
19 |
20 | ### This is the second step
21 |
22 | This is the second step description.
23 |
24 | ### This is the third step
25 |
26 | This is the third step description.
27 |
28 |
29 |
30 | ## Usage
31 |
32 | Wrap a set of markdown h3 headings with the `Steps` component to turn them into
33 | visual steps.
34 |
35 |
36 |
37 | ### Step 1
38 |
39 | Content for step 1.
40 |
41 | ### Step 2
42 |
43 | Contents for step 2.
44 |
45 |
46 |
47 | {/* prettier-ignore */}
48 | ```mdx
49 | import { Steps } from 'nextra/components'
50 |
51 |
52 | ### Step 1
53 |
54 | Contents for step 1.
55 |
56 | ### Step 2
57 |
58 | Contents for step 2.
59 |
60 | ```
61 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/developer-platforms/contribute/examples/_meta.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | pairings: "Pairings or Bilinear Maps",
3 | };
4 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/developer-platforms/contribute/setup/_meta.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | "organize-files": "Organize Files",
3 | "organize-files-advanced": "Organize Files (Advanced)",
4 | mdx: "Writing MDX",
5 | "docs-config": "Docs Config",
6 | SEO: "SEO",
7 | analytics: "Analytics",
8 | i18n: "i18n",
9 | maintenance: "Maintenance",
10 | deployment: "Deployment",
11 | troubleshooting: "Troubleshooting",
12 | "migrating-from-docusaurus": "Migrating from Docusaurus",
13 | };
14 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/developer-platforms/contribute/setup/deployment.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Deployment
3 | searchable: false
4 | ---
5 |
6 | import { Steps } from 'nextra/components'
7 |
8 | ## Production Checklist
9 |
10 |
11 | - Analytics (see the [analytics guide](analytics.mdx) for more info)
12 | - Navbar
13 | - Ensure `pages/LOCALE/_meta.ts` contains the correct information (see [organize files](organize-files.mdx) for more info)
14 | - Opengraph
15 | - `favicon.ico` is correctly set in `public/favicon.ico`
16 | - Vercel
17 | - ENV variables have been added (see [`docs.config.js`](docs-config.mdx) for more info)
18 |
19 | ## Deploy to Vercel
20 |
21 |
22 |
23 | ### Sign in to Vercel
24 |
25 | Navigate to [vercel.com](https://vercel.com) and sign in with your Github account (not necessarily your Aptos Labs email).
26 |
27 | > Note: Reach out to a Vercel Admin (PE) to be added to Vercel if you don't have access.
28 |
29 | ### Add New Project
30 |
31 | Once you're authenticated, there will be a button in the top right hand corner to "Add New Project"
32 |
33 | ### Import Git Repository
34 |
35 | In Import Git Repository, search for the repository you're looking for. If it is not found, click on the `Configure Github App` button.
36 |
37 | > Note: You may need to request for help from an Aptos Labs Github Admin (PE) to enable your repo to be imported into Vercel
38 |
39 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/developer-platforms/contribute/setup/maintenance.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Maintenance
3 | searchable: false
4 | ---
5 |
6 | import { FileTree } from 'nextra/components'
7 |
8 | ## Maintaining dependencies
9 |
10 | > More coming soon...
11 |
12 | At the root of your folder you'll need to add a dependabot config file `.github/dependabot.yml` like so
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | ```yml filename=".github/dependabot.yml" /dependency-name: "@aptos-labs//
24 | version: 2
25 | updates:
26 | - package-ecosystem: "pnpm" # Adjust this for your project's ecosystem (e.g., npm, maven)
27 | directory: "/" # Directory where package manifests are located
28 | schedule:
29 | interval: "daily" # How often to check for updates
30 | allow:
31 | - dependency-name: "@aptos-labs/" # Specify dependency names you want to include
32 | ```
--------------------------------------------------------------------------------
/apps/nextra/pages/en/index.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Aptos Developer Documentation
3 | searchable: false
4 | ---
5 |
6 | import { Landing } from "@components/landing";
7 | import {
8 | coinsCodeSnippet,
9 | fungibleAssetsCodeSnippet,
10 | objectsCodeSnippet
11 | } from "@components/landing/codeSnippets";
12 | import { highlightCode } from "utils/highlightCode";
13 |
14 | export const getStaticProps = async () => {
15 | const codeSnippets = {
16 | coinsCodeSnippet: await highlightCode(coinsCodeSnippet),
17 | objectsCodeSnippet: await highlightCode(objectsCodeSnippet),
18 | fungibleAssetsCodeSnippet: await highlightCode(fungibleAssetsCodeSnippet),
19 | };
20 |
21 | return {
22 | props: {
23 | ssg: codeSnippets,
24 | }
25 | }
26 | }
27 |
28 |
29 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/_meta.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | blockchain: "Blockchain",
3 | nodes: "Nodes",
4 | releases: "Releases",
5 | glossary: "Glossary",
6 | faucet: {
7 | title: "Faucet",
8 | theme: {
9 | toc: false,
10 | timestamp: false,
11 | },
12 | },
13 | };
14 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/blockchain/_meta.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | "aptos-white-paper": "Aptos White Paper",
3 | "blockchain-deep-dive": "Aptos Blockchain Deep Dive",
4 | execution: "Execution",
5 | "gas-txn-fee": "Gas and Storage Fees",
6 | events: "Events",
7 | // TODO: Decide what to do with these pages. Below this line is not included in the information architecture rewrite.
8 | accounts: "Accounts",
9 | "validator-nodes": "Validator Nodes Overview",
10 | fullnodes: "Fullnodes Overview",
11 | "node-networks-sync": "Node Networks and Sync",
12 | move: "Move - A Web3 Language and Runtime",
13 | resources: "Resources",
14 | "txns-states": "Transactions and States",
15 | "base-gas": "Computing Transaction Gas",
16 | blocks: "Blocks",
17 | staking: "Staking",
18 | "delegated-staking": "Delegated Staking",
19 | governance: "Governance",
20 | };
21 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/faucet.mdx:
--------------------------------------------------------------------------------
1 | import { Faucet } from "@components/faucet";
2 |
3 | # Faucet
4 | ##### Get testnet APT for development
5 |
6 |
7 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | localnet: "Develop with Localnet",
3 | "validator-node": "Run a Validator and VFN",
4 | "full-node": "Run a Public Fullnode",
5 | "bootstrap-fullnode": "Bootstrap a Node",
6 | configure: "Configure a Node",
7 | measure: "Monitor a Node",
8 | "building-from-source": "Building Aptos from Source",
9 | networks: {
10 | title: "Networks",
11 | theme: {
12 | toc: false,
13 | layout: "full",
14 | },
15 | },
16 | };
17 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/bootstrap-fullnode.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Bootstrap a Node"
3 | ---
4 |
5 | # Bootstrap a Node with historical data
6 |
7 | Bootstrapping a new node usually only depends on [state sync](configure/state-sync.mdx) in its fast sync mode, which synchronizes to a recent state with help from its peers and start syncing recent ledger history from there. However, if longer ledger history is needed for any reason, we have these choices:
8 |
9 | - ### [Bootstrap from a Snapshot](bootstrap-fullnode/bootstrap-fullnode.mdx)
10 | - ### [Bootstrap from a Backup](bootstrap-fullnode/aptos-db-restore.mdx)
11 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/configure.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Configure a Node"
3 | ---
4 |
5 | # Configure a Node
6 |
7 | This section contains tutorials for understanding and configuring Aptos node internals. These include:
8 |
9 | - ### [Consensus Observer](configure/consensus-observer.mdx)
10 | - ### [State Synchronization](configure/state-sync.mdx)
11 | - ### [Data Pruning](configure/data-pruning.mdx)
12 | - ### [Telemetry](configure/telemetry.mdx)
13 | - ### [Locating Node Files](configure/node-files-all-networks.mdx)
14 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/configure/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "consensus-observer": "Consensus Observer",
3 | "state-sync": "State Synchronization",
4 | "data-pruning": "Data Pruning",
5 | telemetry: "Telemetry",
6 | "node-files-all-networks": "Locating Node Files",
7 | };
8 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/configure/node-files-all-networks.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Locating Node Files"
3 | ---
4 |
5 | # Locating Node Files
6 |
7 | This section contains pages for locating and downloading the files required to deploy an Aptos node
8 | on different networks. These include:
9 |
10 | - ### [Files For Mainnet](node-files-all-networks/node-files-mainnet.mdx)
11 | - ### [Files For Testnet](node-files-all-networks/node-files-testnet.mdx)
12 | - ### [Files For Devnet](node-files-all-networks/node-files-devnet.mdx)
13 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/configure/node-files-all-networks/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "node-files-mainnet": "Files for Mainnet",
3 | "node-files-testnet": "Files for Testnet",
4 | "node-files-devnet": "Files for Devnet",
5 | };
6 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/full-node.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Run a Public Fullnode"
3 | ---
4 |
5 | import { Callout, Steps } from 'nextra/components';
6 |
7 | # Run a Public Fullnode
8 |
9 | You can run your own public fullnode (PFN) to synchronize the state of the Aptos blockchain and stay
10 | up-to-date. PFNs replicate the entire state of the blockchain by syncing from other Aptos VFNs and PFNs. PFNs
11 | can be run by anyone. This section explains how to deploy a PFN and connect to an Aptos network. You can learn
12 | more about the different types of nodes in the [Blockchain Deep Dive](../blockchain.mdx) section.
13 |
14 |
15 | **Default connection to mainnet**
16 | If you follow the default setup in this document, then your PFN will be connected to the Aptos mainnet. To connect
17 | to a different Aptos network, such as devnet or testnet, make sure you have the correct docker image tag, or source
18 | code branch if you build the binary directly.
19 |
20 | You can find the genesis and waypoint files for all the networks, here ➜ https://github.com/aptos-labs/aptos-networks.
21 |
22 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/full-node/_category_.json:
--------------------------------------------------------------------------------
1 | {
2 | "label": "Public Fullnode",
3 | "position": 10
4 | }
5 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/full-node/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "pfn-requirements": "PFN Requirements",
3 | deployments: "Deploy a PFN",
4 | "verify-pfn": "Verify a PFN",
5 | modify: "Modify a PFN",
6 | };
7 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/full-node/deployments/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "using-source-code": "Using Source Code",
3 | "using-docker": "Using Docker",
4 | "using-gcp": "Using GCP",
5 | };
6 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/full-node/modify.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Modify a PFN"
3 | ---
4 |
5 | # Modify a PFN
6 |
7 | This section contains tutorials for performing common operations and modifications to a PFN. These include:
8 |
9 | - ### [Upgrade your PFN](modify/update-fullnode-with-new-releases.mdx)
10 | - ### [Generate a PFN Identity](modify/network-identity-fullnode.mdx)
11 | - ### [Customize PFN Networks](modify/fullnode-network-connections.mdx)
12 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/localnet.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Develop with Localnet"
3 | ---
4 |
5 | # Develop with Localnet
6 |
7 | ## Recommended
8 |
9 | Most developers should use the CLI to run a local development network.
10 | It is simpler and more fully featured than just a single node localnet + faucet.
11 | If you want a local stack that works just like a production network
12 | ([Node API](../../build/apis.mdx) + [Transaction Stream](../../build/indexer/txn-stream.mdx) +
13 | [Indexer API](../../build/indexer.mdx) + Faucet), this is the option for you.
14 |
15 | - ### [Run a Local Development Network](localnet/local-development-network.mdx)
16 |
17 | ## Specialized
18 |
19 | If you're developing the core Aptos node software itself or have complex testing needs, consider this guide.
20 |
21 | - ### [Run a Localnet with Validator](localnet/run-a-localnet.mdx)
22 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/localnet/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "local-development-network": "Run a Local Development Network",
3 | "run-a-localnet": "Run a Localnet with Validator",
4 | };
5 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/measure.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Monitor your Nodes"
3 | ---
4 |
5 | # Monitor your Nodes
6 |
7 | You have several options for monitoring and inspecting the health and performance of your nodes:
8 |
9 | - ### [Node Inspection Service](measure/node-inspection-service.mdx)
10 | - ### [Important Node Metrics](measure/important-metrics.mdx)
11 | - ### [Node Health Checker](measure/node-health-checker.mdx)
12 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/validator-node/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | operator: "Operator",
3 | "node-requirements": "Node Requirements",
4 | "deploy-nodes": "Deploy Nodes",
5 | "connect-nodes": "Connect Nodes",
6 | "verify-nodes": "Verify Nodes",
7 | "modify-nodes": "Modify Nodes",
8 | };
9 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/validator-node/connect-nodes.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Connect Nodes"
3 | ---
4 |
5 | import { Callout, Steps } from 'nextra/components';
6 |
7 | # Connect Nodes
8 |
9 |
10 | **Node deployment**
11 | Before you can connect your nodes to the Aptos network, you will need to deploy them. Make sure to have
12 | deployed your nodes using one of the [deployment methods](deploy-nodes.mdx) before proceeding.
13 |
14 |
15 | Once you have deployed your validator and validator fullnode (VFN), you will need to
16 | connect them to the Aptos network. This requires initializing your staking pool, joining the validator set,
17 | updating your identity files, and bootstrapping your nodes. If you do not complete these steps, your nodes
18 | will not be able to connect to other nodes in the network.
19 |
20 | Follow the [Connect to a Network](connect-nodes/connect-to-aptos-network.mdx) guide to get started.
21 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/validator-node/connect-nodes/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "connect-to-aptos-network": "Connect to a Network",
3 | "staking-pool-operations": "Staking Pool Operations",
4 | "delegation-pool-operations": "Delegation Pool Operations",
5 | "staking-pool-voter": "Staking Pool Voter",
6 | };
7 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/validator-node/deploy-nodes.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Deploy Nodes"
3 | ---
4 |
5 | import { Callout, Steps } from 'nextra/components';
6 |
7 | # Deploy Nodes
8 |
9 | Before you can run a validator and validator fullnode (VFN) in an Aptos network, you will need to select a deployment
10 | method for your nodes. The guides below provide step-by-step instructions for deploying a validator node and VFN
11 | on various platforms, and across different Aptos networks.
12 |
13 | Once your nodes are deployed, you can connect them to an Aptos network by initializing your staking pool and joining
14 | the validator set. See [Connect Nodes](connect-nodes.mdx) for more information.
15 |
16 |
17 | Before selecting a deployment method, make sure to read and understand the [Node Requirements](node-requirements.mdx) first.
18 |
19 |
20 | # Deployment methods
21 |
22 | Select a deployment method for your nodes:
23 |
24 | - ### [Using Source Code](deploy-nodes/using-source-code.mdx)
25 | - ### [Using Docker](deploy-nodes/using-docker.mdx)
26 | - ### [Using AWS](deploy-nodes/using-aws.mdx)
27 | - ### [Using Azure](deploy-nodes/using-azure.mdx)
28 | - ### [Using GCP](deploy-nodes/using-gcp.mdx)
29 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/validator-node/deploy-nodes/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "using-source-code": "Using Source Code",
3 | "using-docker": "Using Docker",
4 | "using-aws": "Using AWS",
5 | "using-azure": "Using Azure",
6 | "using-gcp": "Using GCP",
7 | };
8 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/validator-node/modify-nodes.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Modify Nodes"
3 | ---
4 |
5 | # Modify Nodes
6 |
7 | This section contains tutorials for performing common operations and modifications to your validator and
8 | validator fullnode (VFN). These include:
9 |
10 | - ### [Upgrade Nodes](modify-nodes/update-validator-node.mdx)
11 | - ### [Shutdown Nodes](modify-nodes/shutting-down-nodes.mdx)
12 | - ### [Rotate Consensus Key](modify-nodes/rotate-consensus-key.mdx)
13 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/validator-node/modify-nodes/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "update-validator-node": "Upgrade Nodes",
3 | "shutting-down-nodes": "Shutdown Nodes",
4 | "rotate-consensus-key": "Rotate Consensus Key",
5 | };
6 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/validator-node/verify-nodes.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Verify Nodes"
3 | ---
4 |
5 | # Verify Nodes
6 |
7 | This section contains tutorials for verifying the health and performance of your validator and validator fullnode (VFN). These include:
8 |
9 | - ### [Node Health](verify-nodes/node-liveness-criteria.mdx)
10 | - ### [Validator Leaderboard](verify-nodes/leaderboard-metrics.mdx)
11 |
--------------------------------------------------------------------------------
/apps/nextra/pages/en/network/nodes/validator-node/verify-nodes/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "node-liveness-criteria": "Node Health",
3 | "leaderboard-metrics": "Validator Leaderboard",
4 | };
5 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "get-started": "Get Started",
3 | "smart-contracts": "Smart Contracts (Move)",
4 | apis: "APIs",
5 | sdks: "SDKs",
6 | indexer: "Indexer",
7 | cli: "CLI",
8 | "create-aptos-dapp": "create-aptos-dapp",
9 | guides: "Guides",
10 | };
11 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/apis/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "fullnode-rest-api-reference": {
3 | title: "Fullnode REST API Reference",
4 | theme: {
5 | toc: false,
6 | layout: "full",
7 | sidebar: false,
8 | },
9 | },
10 | "fullnode-rest-api": "Fullnode REST API Guide",
11 | "indexer-graphql-api": {
12 | title: "Indexer GraphQL API",
13 | href: "/en/build/indexer",
14 | },
15 | "data-providers": "Data Providers",
16 | "faucet-api": {
17 | title: "Faucet API",
18 | },
19 | "aptos-labs-developer-portal": "API Gateway",
20 | };
21 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/apis/aptos-labs-developer-portal.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Aptos Labs Aptos Build"
3 | ---
4 |
5 | import { Callout } from "nextra/components";
6 |
7 | # Aptos Labs Aptos Build
8 |
9 | [Aptos Build](https://build.aptoslabs.com) 是你快速便捷接入 Aptos Labs 提供的 API 的入口,为你的 dapp 提供动力。除了 API 访问外,它还提供 gas 加油站和无代码索引服务。了解更多关于 Aptos Build 的信息,请访问专属的 [Aptos Build 文档站点](https://build.aptoslabs.com/docs)。
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/apis/fullnode-rest-api-reference.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Fullnode API Reference"
3 | ---
4 |
5 | import { DynamicApiReference, fetchApiReference } from '@components/index';
6 |
7 | export async function getStaticProps() {
8 | return await fetchApiReference()
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/cli/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "---get-started---": {
3 | type: "separator",
4 | title: "开始使用",
5 | },
6 | "install-cli": {
7 | title: "安装",
8 | },
9 | "setup-cli": {
10 | title: "设置",
11 | },
12 | "start-from-template": {
13 | title: "从模板开始",
14 | },
15 | "---usage---": {
16 | type: "separator",
17 | title: "使用指南",
18 | },
19 | "working-with-move-contracts": {
20 | title: "使用 Move 合约",
21 | },
22 | "formatting-move-contracts": {
23 | title: "格式化 Move 合约",
24 | },
25 | "trying-things-on-chain": {
26 | title: "链上操作尝试",
27 | },
28 | "replay-past-transactions": {
29 | title: "重放历史交易",
30 | },
31 | "running-a-local-network": {
32 | title: "运行本地网络",
33 | },
34 | "managing-a-network-node": {
35 | title: "管理网络节点",
36 | },
37 | "public-network": {
38 | title: "运行公共网络 (高级)",
39 | },
40 | };
41 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/cli/install-cli/_meta.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | "install-cli-mac": {
3 | title: "Mac",
4 | },
5 | "install-cli-windows": {
6 | title: "Windows",
7 | },
8 | "install-cli-linux": {
9 | title: "Linux",
10 | },
11 | "install-cli-specific-version": {
12 | title: "安装特定版本 (高级)",
13 | },
14 | };
15 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/cli/install-cli/install-cli-specific-version.mdx:
--------------------------------------------------------------------------------
1 | import { Steps } from 'nextra/components'
2 |
3 | # 安装特定版本的 Aptos CLI(高级)
4 |
5 | 如果需要特定版本的 Aptos CLI,可以直接从 Aptos 源代码构建。此安装方法主要用于与 Devnet 上的特定功能交互,这些功能可能尚未发布到 Testnet/Mainnet。如果您运行的架构与现有发布版本/预编译二进制文件不兼容,也可以按照以下步骤操作。
6 |
7 | 如果不需要此高级方法,可以在[这里](../../cli.mdx)找到常规安装步骤。
8 |
9 | ## 在 macOS/Linux 上安装
10 |
11 |
12 | ### 按照[从源代码构建 Aptos](../../../network/nodes/building-from-source.mdx)的步骤操作。
13 | ### 按照[此页面](https://doc.rust-lang.org/cargo/getting-started/installation.html#install-rust-and-cargo)的步骤确保已安装 `cargo`。
14 | ### 构建 CLI 工具:`cargo build --package aptos --profile cli`。
15 | 构建后的二进制文件将位于 `target/cli/aptos`。
16 | ### (可选)将此可执行文件移动到 PATH 环境变量包含的目录。
17 | ### 运行 `target/cli/aptos help` 验证安装是否成功。
18 | 这些帮助说明也作为特定命令的详细指南非常有用。
19 |
20 |
21 | ## 在 Windows 上安装
22 |
23 |
24 | ### 按照[此文档](../../../network/nodes/building-from-source.mdx)的步骤从源代码构建 Aptos。
25 | ### 确保已安装 `cargo`,可参考[此页面](https://doc.rust-lang.org/cargo/getting-started/installation.html#install-rust-and-cargo)的安装步骤。
26 | ### 构建 CLI 工具:`cargo build --package aptos --profile cli`。
27 | 构建后的二进制文件将位于 `target\cli\aptos.exe`。
28 | ### (可选)将此可执行文件移动到 PATH 环境变量包含的目录中。
29 | ### 运行 `target\cli\aptos.exe help` 验证安装是否成功。
30 | 这些帮助说明也可作为特定命令的详细使用指南。
31 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/cli/managing-a-network-node.mdx:
--------------------------------------------------------------------------------
1 | # 通过 Aptos CLI 管理网络节点
2 |
3 | 如果你正在运行[验证节点或验证全节点(VFN)](../../network/nodes/validator-node.mdx),你可以使用 CLI 与你的节点交互。
4 |
5 | 具体来说,你可以使用 CLI 来:
6 |
7 | 1. [管理你拥有的质押池](../../network/nodes/validator-node/connect-nodes/staking-pool-operations.mdx)。
8 | 2. [对提案进行投票](../../network/nodes/validator-node/connect-nodes/staking-pool-voter.mdx)。
9 |
10 | 除此之外,你可以运行以下帮助命令来查看 CLI 可以执行的更多与节点操作相关的专门命令:
11 |
12 | ```bash filename="Terminal"
13 | aptos node --help
14 | ```
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/cli/trying-things-on-chain.mdx:
--------------------------------------------------------------------------------
1 | # 使用 Aptos CLI 在链上尝试操作
2 |
3 | CLI 是一个方便的工具,可以快速查找链上数据并从你的账户发送交易。
4 |
5 | 指定要与之交互的账户最常见的方式是通过配置文件。你可以通过运行以下命令在 CLI 上创建新的配置文件:
6 |
7 | ```bash filename="Terminal"
8 | aptos init --profile <你的配置文件名称>
9 | ```
10 |
11 | 如果任何命令需要账户,你可以传入配置文件的名称。如果命令隐式使用默认配置文件,它通常会有一个可选参数来使用指定的配置文件,你可以通过运行 `aptos <你的命令> --help` 找到这个参数。
12 |
13 | 有了这些,你可以使用 CLI 在链上执行的三个主要操作包括:
14 |
15 | 1. [查找链上账户信息](trying-things-on-chain/looking-up-account-info.mdx)
16 | 2. [创建测试账户和发送交易](trying-things-on-chain/create-test-accounts.mdx)
17 | 3. [通过硬件钱包安全地在链上交互](trying-things-on-chain/ledger.mdx)
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/cli/trying-things-on-chain/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "looking-up-account-info": {
3 | title: "查看链上账户信息",
4 | },
5 | "create-test-accounts": {
6 | title: "创建测试账户",
7 | },
8 | ledger: {
9 | title: "使用硬件钱包",
10 | href: "/en/build/cli/trying-things-on-chain/ledger",
11 | },
12 | };
13 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/cli/working-with-move-contracts/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "local-simulation-benchmarking-and-gas-profiling": {
3 | title: "本地模拟、基准测试和燃料分析",
4 | href: "/en/build/cli/working-with-move-contracts/local-simulation-benchmarking-and-gas-profiling",
5 | },
6 | "arguments-in-json-tutorial": {
7 | title: "JSON 参数教程",
8 | },
9 | "multi-signature-tutorial": {
10 | title: "多重签名治理教程",
11 | href: "/en/build/cli/working-with-move-contracts/multi-signature-tutorial",
12 | },
13 | };
14 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/create-aptos-dapp/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | templates: {
3 | title: "模板",
4 | href: "https://learn.aptoslabs.com/en/dapp-templates",
5 | newWindow: true,
6 | },
7 | faq: {
8 | title: "常见问题",
9 | },
10 | };
11 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/get-started/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "developer-setup": {
3 | title: "Developer Setup | 开发者环境搭建",
4 | theme: {
5 | toc: false,
6 | layout: "full",
7 | },
8 | },
9 | "ethereum-cheatsheet": {
10 | title: "Ethereum to Aptos Cheatsheet | 以太坊到 Aptos 速查表",
11 | },
12 | "solana-cheatsheet": {
13 | title: "Solana to Aptos Cheatsheet | Solana 到 Aptos 速查表",
14 | },
15 | // TODO: Will uncomment when ready for use
16 | // "create-aptos-dapp": {
17 | // title: "create-aptos-dapp | 创建 Aptos Dapp",
18 | // href: "https://github.com/aptos-labs/create-aptos-dapp",
19 | // },
20 | };
21 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/guides.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "从指南中学习"
3 | ---
4 |
5 | import { Cards, Card } from '@components/index';
6 |
7 | # 指南
8 |
9 | 选择以下任一指南来学习如何在 Aptos 中实现您的使用场景!
10 |
11 |
12 |
13 | 您的第一笔交易
14 | 如何生成、提交并验证到 Aptos 区块链的交易。
15 |
16 |
17 | 您的第一个 NFT
18 | 学习 Aptos 代币接口,并使用它来生成您的第一个 NFT。
19 |
20 |
21 | 您的第一个可替代资产
22 | 学习如何部署和管理可替代资产。
23 |
24 |
25 | 您的第一个硬币
26 | 学习如何部署和管理硬币。
27 |
28 |
29 | 您的第一个 Move 模块
30 | 为 Aptos 区块链编写您的第一个 Move 模块。
31 |
32 |
33 | 您的第一个去中心化应用(Dapp)
34 | 学习如何构建您的第一个去中心化应用,重点是构建应用的用户界面。
35 |
36 |
37 | 您的第一个多签操作
38 | 学习如何使用 K-of-N 多签验证执行各种操作。
39 |
40 |
41 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/guides/aptos-keyless/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | introduction: {
3 | title: "简介",
4 | href: "/en/build/guides/aptos-keyless/introduction",
5 | },
6 | "oidc-support": {
7 | title: "OIDC 支持",
8 | href: "/en/build/guides/aptos-keyless/oidc-support",
9 | },
10 | "integration-guide": {
11 | title: "集成指南",
12 | href: "/en/build/guides/aptos-keyless/integration-guide",
13 | },
14 | "simple-example": {
15 | title: "简单示例",
16 | href: "/en/build/guides/aptos-keyless/simple-example",
17 | },
18 | "how-keyless-works": {
19 | title: "Keyless 工作原理",
20 | href: "/en/build/guides/aptos-keyless/how-keyless-works",
21 | },
22 | other: {
23 | title: "术语和常见问题",
24 | href: "/en/build/guides/aptos-keyless/other",
25 | },
26 | "federated-keyless": {
27 | title: "联合 Keyless",
28 | href: "/en/build/guides/aptos-keyless/federated-keyless",
29 | },
30 | };
31 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/guides/aptos-keyless/federated-keyless/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "key-considerations": {
3 | title: "关键考虑因素",
4 | href: "/en/build/guides/aptos-keyless/key-considerations",
5 | },
6 | "integration-guide": {
7 | title: "集成指南",
8 | href: "/en/build/guides/aptos-keyless/integration-guide",
9 | },
10 | other: {
11 | title: "常见问题",
12 | href: "/en/build/guides/aptos-keyless/other",
13 | },
14 | };
15 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/guides/build-e2e-dapp/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "1-create-smart-contract": {
3 | title: "1. 创建智能合约",
4 | href: "/en/build/guides/build-e2e-dapp/1-create-smart-contract",
5 | },
6 | "2-set-up-react-app": {
7 | title: "2. 设置 React 应用",
8 | href: "/en/build/guides/build-e2e-dapp/2-set-up-react-app",
9 | },
10 | "3-add-wallet-support": {
11 | title: "3. 添加钱包支持",
12 | href: "/en/build/guides/build-e2e-dapp/3-add-wallet-support",
13 | },
14 | "4-fetch-data-from-chain": {
15 | title: "4. 从链上获取数据",
16 | href: "/en/build/guides/build-e2e-dapp/4-fetch-data-from-chain",
17 | },
18 | "5-submit-data-to-chain": {
19 | title: "5. 向链上提交数据",
20 | href: "/en/build/guides/build-e2e-dapp/5-submit-data-to-chain",
21 | },
22 | "6-handle-tasks": {
23 | title: "6. 处理任务",
24 | href: "/en/build/guides/build-e2e-dapp/6-handle-tasks",
25 | },
26 | };
27 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/sdks/ts-sdk/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "---get-started---": {
3 | type: "separator",
4 | title: "Get Started",
5 | },
6 | quickstart: {
7 | title: "Quickstart",
8 | },
9 | "---usage---": {
10 | type: "separator",
11 | title: "Usage",
12 | },
13 | account: {
14 | title: "Accounts",
15 | },
16 | "fetch-data-via-sdk": {
17 | title: "Fetch Data",
18 | },
19 | "building-transactions": {
20 | title: "Transactions",
21 | },
22 | "ts-examples": {
23 | title: "Example Code",
24 | },
25 | "type-safe-contract": {
26 | title: "Surf: TypeScript Type Safety for Move Contracts",
27 | },
28 | // Legacy TS SDK should be at the bottom as it is not supposed to be read unless you already know you need it.
29 | "legacy-ts-sdk": {
30 | title: "Legacy TypeScript SDK (Deprecated)",
31 | },
32 | "confidential-asset": {
33 | title: "Confidential Asset (CA)",
34 | },
35 | };
36 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/sdks/ts-sdk/account/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "account-abstraction": {
3 | title: "Account Abstraction",
4 | },
5 | "derivable-account-abstraction": {
6 | title: "Derivable Account Abstraction",
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/sdks/ts-sdk/building-transactions/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "simulating-transactions": {
3 | title: "Simulating Transactions",
4 | },
5 | "multi-agent-transactions": {
6 | title: "Multi-Agent Transactions",
7 | },
8 | "sponsoring-transactions": {
9 | title: "Sponsoring Transactions",
10 | },
11 | "batching-transactions": {
12 | title: "Batching Transactions",
13 | },
14 | "bcs-format": {
15 | title: "BCS Format",
16 | },
17 | "script-composer": {
18 | title: "Script Composer",
19 | },
20 | };
21 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/sdks/ts-sdk/building-transactions/bcs-format.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "BCS 格式"
3 | ---
4 |
5 | # 二进制规范序列化 (BCS) 格式
6 |
7 | 在底层,Aptos SDK 为交易参数提供了两种格式:
8 |
9 | 1. **简单格式** - 使用字符串、整数等基本类型表示交易参数
10 | 2. **二进制规范序列化 (BCS)** - Aptos 链识别的格式,具有特定类型(例如:不使用普通整数,而是使用 `U64` 或 `U128` 等类型)
11 |
12 | 通常,TypeScript SDK 会自动将函数参数中的简单类型转换为 BCS 格式以便与网络通信。但对于某些合约,您需要直接使用 BCS 来指定复杂类型。
13 |
14 | 直接使用 BCS 格式有轻微的性能优势,因为 SDK 可以跳过将 TypeScript 原始参数格式转换为 BCS 格式的 API 调用。
15 |
16 | 您可以通过显式指定参数类型来直接使用 BCS 格式构建交易,如下所示:
17 |
18 | ```ts filename="example.ts"
19 | const transaction = await aptos.transaction.build.simple({
20 | sender: alice.accountAddress,
21 | data: {
22 | function: "0x1::aptos_account::transfer",
23 | functionArguments: [AccountAddress.fromString("0x123"), new U64(1_000_000)],
24 | },
25 | });
26 | ```
27 |
28 | 您可以通过探索 [BCS GitHub 代码库](https://github.com/aptos-labs/bcs) 了解更多关于 BCS 的信息。
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/sdks/ts-sdk/legacy-ts-sdk.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "旧版 TypeScript SDK"
3 | ---
4 |
5 | import { Callout } from 'nextra/components';
6 |
7 | # 旧版 TypeScript SDK
8 |
9 |
10 | 旧版 TypeScript SDK 包 `aptos` 已被弃用,将被新版 TypeScript SDK 取代。请查阅 [新版 TypeScript SDK](../ts-sdk.mdx) 获取最新功能和更新。查看 [迁移指南](legacy-ts-sdk/migration-guide.mdx) 了解迁移细节。
11 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/sdks/ts-sdk/legacy-ts-sdk/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "migration-guide": {
3 | title: "TypeScript SDK Migration Guide",
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/sdks/ts-sdk/ts-examples.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "TypeScript SDK 示例代码"
3 | ---
4 |
5 | import { Steps } from 'nextra/components';
6 |
7 | # TypeScript SDK 示例代码
8 |
9 | 以下示例代码展示了 SDK 的核心使用概念:
10 | - [数据获取](fetch-data-via-sdk.mdx)
11 | - [交易构建、模拟与提交](building-transactions.mdx)
12 |
13 | 我们还提供了更多可能更适合您具体使用场景的额外资源。
14 |
15 | ## 代码片段
16 |
17 | SDK 仓库中的 [`examples` 文件夹](https://github.com/aptos-labs/aptos-ts-sdk/tree/main/examples) 包含数十个可自定义的代码片段。
18 |
19 | ### 如何运行示例
20 |
21 | 运行示例脚本的步骤:
22 |
23 | ### 克隆 [aptos-ts-sdk 仓库](https://github.com/aptos-labs/aptos-ts-sdk)
24 |
25 | ```bash filename="终端"
26 | git clone https://github.com/aptos-labs/aptos-ts-sdk.git
27 | ```
28 |
29 | ### 在项目根目录安装所有依赖
30 |
31 | ```bash filename="终端"
32 | pnpm install
33 | ```
34 |
35 | ### 构建项目
36 |
37 | ```bash filename="终端"
38 | pnpm build
39 | ```
40 |
41 | ### 进入想运行的示例文件夹
42 |
43 | ```bash filename="终端"
44 | cd examples/typescript
45 | ```
46 |
47 | ### 安装本地依赖
48 |
49 | ```bash filename="终端"
50 | pnpm install
51 | ```
52 |
53 | ### 运行示例
54 |
55 | ```bash filename="终端"
56 | pnpm run simple_transfer
57 | ```
58 |
59 |
60 | ## 实用参考代码
61 |
62 | - [SDK 端到端测试](https://github.com/aptos-labs/aptos-ts-sdk/tree/main/tests/e2e) - 这里包含了使用该 SDK 最全面的代码示例集。
63 | - [SDK 源代码](https://github.com/aptos-labs/aptos-ts-sdk/tree/main) - 源代码中包含解释每个函数功能的行内注释。
64 | - [SDK 参考文档](https://aptos-labs.github.io/aptos-ts-sdk/) - 这是查看带有内置搜索功能的行内文档的另一种方式。
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/smart-contracts/book.mdx:
--------------------------------------------------------------------------------
1 | # Move 语言书
2 |
3 | 欢迎来到 Move,这是一种用于安全、沙盒化和形式化验证编程的下一代语言。它已被用作多个区块链的智能合约语言,包括 Aptos。Move 允许开发者编写程序,以灵活地管理和转移资产,同时提供对这些资产的安全性和攻击保护。然而,Move 的开发也考虑了区块链之外的用例。
4 |
5 | Move 从 [Rust](https://www.rust-lang.org/) 中汲取灵感,通过使用具有 move(因此得名)语义的资源类型,作为数字资产(如货币)的显式表示。
6 |
7 | ## Aptos Move 书籍适合谁?
8 |
9 | Move 被设计和创建为一种安全、经过验证但灵活的编程语言。Move 的首次使用是用于实现 Diem 区块链,目前正在 Aptos 上使用。
10 |
11 | 本书适合具有一定编程经验并希望开始了解核心编程语言及其使用示例的开发者。
12 |
13 | ## 我从哪里开始?
14 |
15 | 首先了解 [模块和脚本](book/modules-and-scripts.mdx),然后通过 [Move 教程](book/move-tutorial.mdx) 进行学习。
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/smart-contracts/book/SUMMARY.mdx:
--------------------------------------------------------------------------------
1 | # Move 编程语言
2 |
3 | ## 入门指南
4 |
5 | - [模块与脚本](modules-and-scripts.mdx)
6 | - [Move 教程](move-tutorial.mdx)
7 |
8 | ## 语言版本说明
9 |
10 | - [Move 2](move-2.mdx)
11 |
12 | ## 基本数据类型
13 |
14 | - [整数类型](integers.mdx)
15 | - [布尔类型](bool.mdx)
16 | - [地址类型](address.mdx)
17 | - [向量类型](vector.mdx)
18 | - [签名者类型](signer.mdx)
19 | - [引用类型](references.mdx)
20 | - [元组与单元类型](tuples.mdx)
21 |
22 | ## 基础概念
23 |
24 | - [局部变量与作用域](variables.mdx)
25 | - [相等性](equality.mdx)
26 | - [中止与断言](abort-and-assert.mdx)
27 | - [条件语句](conditionals.mdx)
28 | - [循环结构](loops.mdx)
29 | - [函数](functions.mdx)
30 | - [结构体与资源](structs-and-resources.mdx)
31 | - [枚举类型](enums.mdx)
32 | - [常量](constants.mdx)
33 | - [泛型](generics.mdx)
34 | - [类型能力](abilities.mdx)
35 | - [使用与别名](uses.mdx)
36 | - [友元](friends.mdx)
37 | - [包管理](packages.mdx)
38 | - [包升级](package-upgrades.mdx)
39 | - [单元测试](unit-testing.mdx)
40 |
41 | ## 全局存储
42 |
43 | - [全局存储结构](global-storage-structure.mdx)
44 | - [全局存储操作符](global-storage-operators.mdx)
45 |
46 | ## 参考文档
47 |
48 | - [标准库](standard-library.mdx)
49 | - [编码规范](coding-conventions.mdx)
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/smart-contracts/book/bool.mdx:
--------------------------------------------------------------------------------
1 | # 布尔类型
2 |
3 | `bool` 是 Move 语言中表示布尔值 `true` 和 `false` 的基本类型。
4 |
5 | ## 字面量
6 |
7 | `bool` 类型的字面量只能是 `true` 或 `false`。
8 |
9 | ## 操作
10 |
11 | ### 逻辑运算
12 |
13 | `bool` 支持三种逻辑运算:
14 |
15 | | 语法 | 描述 | 等价表达式 |
16 | | ------------------------- | ---------------------- | ----------------------------------------------------------- |
17 | | `&&` | 短路逻辑与 | `p && q` 等价于 `if (p) q else false` |
18 | | ||
| 短路逻辑或 | p || q
等价于 `if (p) true else q` |
19 | | `!` | 逻辑非 | `!p` 等价于 `if (p) false else true` |
20 |
21 | ### 控制流
22 |
23 | `bool` 值被用于 Move 的多种控制流结构中:
24 |
25 | - [`if (bool) { ... }`](conditionals.mdx)
26 | - [`while (bool) { .. }`](loops.mdx)
27 | - [`assert!(bool, u64)`](abort-and-assert.mdx)
28 |
29 | ## 所有权
30 |
31 | 与语言内置的其他标量值一样,布尔值也是隐式可复制的,
32 | 这意味着它们无需像[`copy`](variables.mdx#移动--move--与复制--copy-)这样的显式指令即可被复制。
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/smart-contracts/book/global-storage-structure.mdx:
--------------------------------------------------------------------------------
1 | # 全局存储 - 结构
2 |
3 | Move 程序的主要目的是从树形结构的持久化全局存储中[读取和写入](global-storage-operators.mdx)数据。程序无法访问文件系统、网络或此树形结构之外的任何其他数据。
4 |
5 | 用伪代码表示,全局存储的结构大致如下:
6 |
7 | ```move
8 | module 0x42::example {
9 | struct GlobalStorage {
10 | resources: Map<(address, ResourceType), ResourceValue>,
11 | modules: Map<(address, ModuleName), ModuleBytecode>
12 | }
13 | }
14 | ```
15 |
16 | 从结构上看,全局存储是由以账户 [`address`](address.mdx) 为根的树组成的 [森林](https://en.wikipedia.org/wiki/Tree_(graph_theory)) 。每个地址既可以存储 [资源](structs-and-resources.mdx) 数据值,也可以存储 [模块](modules-and-scripts.mdx) 代码值。如上述伪代码所示,每个 `address` 最多只能存储一个给定类型的资源值和一个给定名称的模块。
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/smart-contracts/book/move-tutorial.mdx:
--------------------------------------------------------------------------------
1 | # Move 教程
2 |
3 | 请参考 [Move 核心语言教程](https://github.com/aptos-labs/aptos-core/tree/main/aptos-move/move-examples/move-tutorial)。
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/smart-contracts/book/standard-library.mdx:
--------------------------------------------------------------------------------
1 | # Libraries
2 |
3 | Aptos为开发者提供了多个实用的库。完整的最新文档可在 [此处](../move-reference) 查阅。
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/smart-contracts/compiler_v2.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Move On Aptos 编译器"
3 | ---
4 |
5 | # Move On Aptos 编译器
6 |
7 | Move on Aptos 编译器(代号"compiler v2")将 Move 源代码翻译为 Move 字节码。它统一了 Move 编译器和 Move Prover 的架构,从而加速了 Move 语言的创新。它还提供了用于定义代码优化的新工具,这些工具可以用来为 Move 程序生成更高效的 gas 代码。
8 |
9 | Move on Aptos 编译器支持 Move 2,这是 Move 语言的最新修订版。前往[书中的发布页面](book/move-2.mdx)了解 Move 2 的新功能。从 Aptos CLI v6.0.0 开始,此语言版本和 Move on Aptos 编译器是默认设置。请注意,Move 2 通常与 Move 1 向后兼容。
10 |
11 | ## Move on Aptos 发布状态
12 |
13 | Move on Aptos 已投入生产,现在是默认编译器,Move 2 是默认语言版本。
14 |
15 | ## 报告问题
16 |
17 | 如果您遇到问题,请使用[此链接创建 GitHub 问题][bug]。如果您能够提供一小段 Move 代码来重现问题,我们将更容易进行调试和修复。
18 |
19 | [bug]: https://github.com/aptos-labs/aptos-core/issues/new?title=[compiler-v2]%20%3CPLEASE%20NAME%20IT%3E&body=%3CPLEASE%20DESCRIBE%20IT%3E&labels=compiler-v2&projects=aptos-labs/16
20 |
21 | ## 使用 Move on Aptos 编译器
22 |
23 | 确保已安装最新版本的 Aptos CLI:
24 |
25 | ```bash filename="Terminal"
26 | aptos update aptos # on supported OS
27 | brew upgrade aptos # on MacOS
28 | ```
29 |
30 | Move on Aptos 编译器和 Move 2 现在是默认设置,无需更改您的使用方式。示例:
31 |
32 | ```bash filename="Terminal"
33 | aptos move compile
34 | aptos move test
35 | aptos move prove
36 | ```
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/smart-contracts/modules-on-aptos.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Aptos 上的模块"
3 | ---
4 | import { Callout } from "nextra/components";
5 |
6 | # Aptos 上的模块
7 |
8 | Aptos 允许在 [package](book/packages.mdx) 中无权限地发布 [module](book/modules-and-scripts.mdx),并且对于设置了合适兼容性策略的模块支持 [升级](book/package-upgrades.mdx)。
9 |
10 | 一个 module 包含多个 struct 和 function,类似于 Rust。
11 |
12 | 在 package 发布时,会遵循以下约束:
13 |
14 | - Struct 和 public function 的签名在发布后是不可变的。
15 | - 只有在首次发布 module(而非升级)时,虚拟机会查找并执行 `init_module(account: &signer)` 函数。发布模块的账户 signer 会被传递给合约的 `init_module` 函数。**该函数必须是私有的且不能有返回值。**
16 |
17 |
18 | `init_module` 是可选的
19 | 只有在首次发布模块时需要初始化数据时才需要实现该函数。
20 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/smart-contracts/move-reference.mdx:
--------------------------------------------------------------------------------
1 | import { MoveReference, AptosFrameworkReference } from '@components/index';
2 |
3 | # Move Reference
4 |
5 |
6 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/smart-contracts/object/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "creating-objects": {
3 | title: "Creating Objects",
4 | href: "/en/build/smart-contracts/object/creating-objects",
5 | },
6 | "using-objects": {
7 | title: "Using Objects",
8 | href: "/en/build/smart-contracts/object/using-objects",
9 | },
10 | };
11 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/smart-contracts/prover.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "概述"
3 | ---
4 |
5 | # Move Prover
6 |
7 | Move Prover 支持 Move 代码的形式化[规范](prover/spec-lang.mdx)与[验证](prover/prover-guide.mdx)。Move Prover 能够自动验证 Move 智能合约的逻辑属性,并提供类似类型检查器或 linter 的用户体验。
8 |
9 | Move Prover 的目标是让合约更加 _值得信赖_ ;它:
10 |
11 | - 保护 Aptos 区块链上管理的大量资产免受智能合约漏洞影响
12 | - 防范资源充足的攻击者
13 | - 满足合理的监管审查和合规要求
14 | - 让具有数学背景但不一定具备软件工程背景的领域专家能够理解智能合约的行为
15 |
16 | 如需了解更多信息,请参阅以下文档:
17 |
18 | - [安装](../cli/setup-cli/install-move-prover.mdx)
19 | - [Move Prover 用户指南](prover/prover-guide.mdx)
20 | - [Move 规范语言](prover/spec-lang.mdx)
21 | - [Move Prover 支持资源](prover/supporting-resources.mdx)
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/smart-contracts/prover/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "prover-guide": {
3 | title: "Move Prover User Guide",
4 | href: "/en/build/smart-contracts/prover/prover-guide",
5 | },
6 | "supporting-resources": {
7 | title: "Move Prover Supporting Resources",
8 | href: "/en/build/smart-contracts/prover/suporting-resources",
9 | },
10 | "spec-lang": {
11 | title: "Move Specification Language",
12 | href: "/en/build/smart-contracts/prover/spec-lang",
13 | },
14 | };
15 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/smart-contracts/reference.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Move Reference"
3 | ---
4 |
5 | import { MoveReference } from '@components/index'
6 |
7 | # Move Reference
8 |
9 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/smart-contracts/scripts.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "使用 Move 脚本进行开发"
3 | ---
4 |
5 | # 什么是 Move 脚本?
6 |
7 | Move 脚本是一种在 Aptos 上通过单笔交易运行多个 public 函数的方法。这类似于部署一个用于常见任务的 helper module,但它的灵活性在于无需提前部署。
8 |
9 | 一个例子是将用户余额的一半转账给另一个账户的函数。这是一个容易编程实现的功能,但通常不需要为此专门部署一个 module:
10 |
11 | ```move
12 | script {
13 | use std::signer;
14 | use aptos_framework::coin;
15 | use aptos_framework::aptos_account;
16 |
17 | fun transfer_half(caller: &signer, receiver_address: address) {
18 | // Retrieve the balance of the caller
19 | let caller_address: address = signer::address_of(caller);
20 | let balance: u64 = coin::balance(caller_address);
21 |
22 | // Send half to the receiver
23 | let half = balance / 2;
24 | aptos_account::transfer_coins(caller, receiver_address, half);
25 | }
26 | }
27 | ```
28 |
29 | # 了解更多关于 Move 脚本的内容
30 |
31 | - [编写脚本](scripts/writing-scripts.mdx)
32 | - [编译脚本](scripts/compiling-scripts.mdx)
33 | - [运行脚本](scripts/running-scripts.mdx)
34 |
35 | # 更多细节
36 |
37 | 如需了解 Move 脚本的更多细节,请参阅:
38 |
39 | - [Move Book on Scripts](book/modules-and-scripts.mdx)
40 | - [脚本教程](scripts/script-tutorial.mdx)
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/build/smart-contracts/scripts/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "writing-scripts": {
3 | title: "Writing Move Scripts",
4 | href: "/en/build/smart-contracts/scripts/writing-scripts",
5 | },
6 | "compiling-scripts": {
7 | title: "Compiling Move Scripts",
8 | href: "/en/build/smart-contracts/scripts/compiling-scripts",
9 | },
10 | "running-scripts": {
11 | title: "Running Move Scripts",
12 | href: "/en/build/smart-contracts/scripts/running-scripts",
13 | },
14 | "script-tutorial": {
15 | title: "Move Scripts Tutorial",
16 | href: "/en/build/smart-contracts/scripts/script-tutorial",
17 | },
18 | };
19 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/index.mdx:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | title: "Aptos 开发者文档"
4 | searchable: false
5 |
6 | ---
7 |
8 | import { Landing } from "@components/landing";
9 | import {
10 | coinsCodeSnippet,
11 | fungibleAssetsCodeSnippet,
12 | objectsCodeSnippet
13 | } from "@components/landing/codeSnippets";
14 | import { highlightCode } from "utils/highlightCode";
15 |
16 | export const getStaticProps = async () => {
17 | const codeSnippets = {
18 | coinsCodeSnippet: await highlightCode(coinsCodeSnippet),
19 | objectsCodeSnippet: await highlightCode(objectsCodeSnippet),
20 | fungibleAssetsCodeSnippet: await highlightCode(fungibleAssetsCodeSnippet),
21 | };
22 |
23 | return {
24 | props: {
25 | ssg: codeSnippets,
26 | }
27 | }
28 | }
29 |
30 |
31 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/_meta.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | nodes: "Nodes",
3 | };
4 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | localnet: "Develop with Localnet",
3 | "validator-node": "Run a Validator and VFN",
4 | "full-node": "Run a Public Fullnode",
5 | "bootstrap-fullnode": "Bootstrap a Node",
6 | configure: "Configure a Node",
7 | measure: "Monitor a Node",
8 | "building-from-source": "Building Aptos from Source",
9 | networks: {
10 | title: "Networks",
11 | toc: false,
12 | typesetting: "article",
13 | },
14 | };
15 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/aptos-api-spec.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Aptos API 规范"
3 | ---
4 |
5 | {/* TODO: add aptos API spec here */}
6 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/bootstrap-fullnode.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "引导一个节点"
3 | ---
4 |
5 | # 使用历史数据引导节点
6 |
7 | 通常,引导一个新节点仅依赖于其快速同步模式中的[状态同步](configure/state-sync.mdx),这会在其同等节点(peer)的帮助下同步到最近的一个状态,并从那里开始同步最近的账本历史。然而,如果出于任何原因需要更长时间的账本历史,我们有以下选择:
8 |
9 | 启动新节点通常主要依靠其快速同步模式下的[状态同步](configure/state-sync.mdx),此模式通其他参与者节点(peers)的协助迅速同步到最新的账本状态,并基于此开始下载近期的账本数据。然而,如果因任何原因需要更早期的账本历史记录,我们可以做出以下选择:
10 |
11 | - ### [从快照引导](bootstrap-fullnode/bootstrap-fullnode.mdx)
12 | - ### [从备份引导](bootstrap-fullnode/aptos-db-restore.mdx)
13 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/bootstrap-fullnode/bootstrap-fullnode.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "从快照中引导启动"
3 | ---
4 |
5 | import { Callout, Steps } from 'nextra/components';
6 |
7 | # 从快照中引导启动
8 |
9 | 本文档描述了如何快速使用快照引导启动一个 Aptos 节点。这可以在所有节点类型上完成,包括验证器、VFN 和 PFN。
10 |
11 | 尽管您可以使用 [状态同步](../configure/state-sync.mdx) 引导启动一个新节点,但在网络运行一段时间后,这可能不是最快的方法;它可能需要太长时间,或者无法获取所有所需数据,因为其他节点可能已经裁剪了他们的账本历史。为了避免这种情况,您可以使用现有的快照引导启动您的节点,这仅仅是一个现有节点存储数据的副本。
12 |
13 |
14 | **主网快照**
15 | 不建议在**主网**中使用快照来引导启动节点。这是因为快照没有经过Aptos软件的验证。因此,快照可能是无效的或包含不正确的数据。为了防止安全问题,我们建议仅在测试环境中使用快照,例如 **devnet** 和 **testnet**。
16 |
17 | 如果您必须使用**主网**快照引导启动节点,您应该自己生成快照或从可信的来源获取它。您还应该在使用之前验证快照的完整性和真实性(例如,通过加密签名以及校验和)。
18 |
19 |
20 | ## 寻找现有的快照
21 |
22 | 有多个快照可以从不同的 Aptos 社区成员那里下载。这些包括:
23 |
24 | - BWareLabs(测试网和主网):[BWareLabs Aptos 节点快照](https://bwarelabs.com/snapshots/aptos)
25 |
26 |
27 | **关于快照数据的问题**
28 | 根据快照的构建和压缩方式,快照文件的大小可能会有所不同。如果您对快照数据有任何问题,或者遇到任何问题,请通过 [Aptos Discord](https://discord.gg/aptosnetwork) 中的 [#node-support](https://discord.com/channels/945856774056083548/953421979136962560) 频道直接联系 Aptos 社区成员。
29 |
30 |
31 | ## 使用快照
32 |
33 | 要使用快照,只需下载并复制文件到您节点的存储数据库的位置。
34 | 这个可以在 fullnode `yaml` 配置文件下的 `data_dir` 中找到并更新。
35 | 查看示例教程([运行 PFN](../full-node/deployments.mdx)),了解如何配置数据目录。
36 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/configure.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "配置节点"
3 | ---
4 |
5 | # 配置节点
6 |
7 | 本节包含用于理解和配置 Aptos 节点内部结构的教程。这些包括:
8 |
9 | - ### [状态同步(State Synchronization)](configure/state-sync.mdx)
10 | - ### [数据裁剪(Data Pruning)](configure/data-pruning.mdx)
11 | - ### [遥测(Telemetry)](configure/telemetry.mdx)
12 | - ### [查找节点文件(Locating Node Files)](configure/node-files-all-networks.mdx)
13 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/configure/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "state-sync": "State Synchronization",
3 | "data-pruning": "Data Pruning",
4 | telemetry: "Telemetry",
5 | "node-files-all-networks": "Locating Node Files",
6 | };
7 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/configure/node-files-all-networks.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "查找节点文件"
3 | ---
4 |
5 | # 查找节点文件
6 |
7 | 本节包括了帮助您查找并下载在不同网络上部署 Aptos 节点所需的文件。相关内容包括:
8 |
9 | - ### [主网文件](node-files-all-networks/node-files-mainnet.mdx)
10 | - ### [测试网文件](node-files-all-networks/node-files-testnet.mdx)
11 | - ### [开发网文件](node-files-all-networks/node-files-devnet.mdx)
12 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/configure/node-files-all-networks/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "node-files-mainnet": "Files for Mainnet",
3 | "node-files-testnet": "Files for Testnet",
4 | "node-files-devnet": "Files for Devnet",
5 | };
6 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/full-node.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "运行公共全节点"
3 | ---
4 |
5 | import { Callout, Steps } from 'nextra/components';
6 |
7 | # 运行公共全节点
8 |
9 | 你可以运行自己的公共全节点(PFN),以同步 Aptos 区块链的状态并同步最新内容。PFN 通过与其他 Aptos 验证全节点(VFN)和公共全节点(PFN)同步,复制区块链的整个状态。任何人都可以运行 PFN。本节解释了如何部署 PFN 并连接到 Aptos 网络。你可以在[区块链详解](../blockchain.mdx)部分了解更多关于不同类型的节点。
10 |
11 |
12 | **默认连接到主网**
13 | 如果你按照本文档中的默认设置操作,你的 PFN 将连接到 Aptos 主网。要连接到不同的 Aptos 网络,如 devnet 或 testnet,请确保你有正确的 docker 镜像标签,或者如果你想直接构建二进制文件,则需要正确的源代码分支。
14 |
15 | 你可以在这里找到所有网络的创世区块和路标文件 ➜ https://github.com/aptos-labs/aptos-networks.
16 |
17 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/full-node/_category_.json:
--------------------------------------------------------------------------------
1 | {
2 | "label": "Public Fullnode",
3 | "position": 10
4 | }
5 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/full-node/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "pfn-requirements": "PFN Requirements",
3 | deployments: "Deploy a PFN",
4 | "verify-pfn": "Verify a PFN",
5 | modify: "Modify a PFN",
6 | };
7 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/full-node/deployments.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "部署 PFN"
3 | ---
4 |
5 | import { Callout, Steps } from 'nextra/components';
6 |
7 | # 部署 PFN
8 |
9 | 以下指南提供了在 Aptos 网络上部署 PFN 的步骤。
10 |
11 |
12 | **我必须运行 PFN 吗?**
13 |
14 | 如果您不想运行 PFN,但仍然想与 Aptos 区块链交互,您可以使用 Aptos Labs 提供的 REST API (见 [Aptos API](../../../build/apis.mdx))。不过,请注意,Aptos Labs 提供的 PFN 有速率限制,这可能会妨碍您的开发。如果您想避免这样的速率限制,您可以部署自己的 PFN 并与 Aptos 区块链直接同步。
15 |
16 |
17 |
18 | 选择您喜欢的部署方法:
19 |
20 |
21 | **选择一个网络**
22 |
23 | 这些指南默认将 PFN 部署在 Aptos 主网网络上,但它们也可以很容易地在其他网络(例如,devnet 或 testnet 网络)中执行相同的操作。在这样做时,请检出所需的网络分支,并使用相应分支的 `genesis.blob` 和 `waypoint.txt` 节点文件:
24 | [主网](../configure/node-files-all-networks/node-files-mainnet.mdx)、
25 | [devnet](../configure/node-files-all-networks/node-files-devnet.mdx) 和
26 | [testnet](../configure/node-files-all-networks/node-files-testnet.mdx) 。
27 |
28 |
29 |
30 | - ### [使用源代码](deployments/using-source-code.mdx)
31 | - ### [使用 Docker](deployments/using-docker.mdx)
32 | - ### [使用 GCP](deployments/using-gcp.mdx)
33 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/full-node/deployments/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "using-source-code": "Using Source Code",
3 | "using-docker": "Using Docker",
4 | "using-gcp": "Using GCP",
5 | };
6 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/full-node/modify.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "修改 PFN"
3 | ---
4 |
5 | # 修改 PFN
6 |
7 | 本节包含执行 PFN 常见操作和修改的教程。这些包括:
8 |
9 | - ### [升级您的 PFN](modify/update-fullnode-with-new-releases.mdx)
10 | - ### [生成 PFN 身份](modify/network-identity-fullnode.mdx)
11 | - ### [自定义 PFN 网络](modify/fullnode-network-connections.mdx)
12 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/localnet.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "在本地网络(Localnet)上开发"
3 | ---
4 |
5 | # 在本地网络上开发
6 |
7 | ## 推荐
8 |
9 | 对于大部分开发者来说,使用命令行界面 (CLI) 来搭建本地的开发网络是更好的选择。这不仅操作简便,而且相比只有单一节点的本地网络加水龙头(Localnet + Faucet)功能,CLI 的特性更为丰富。如果你期望的是一个能够模拟生产环境运作的本地开发环境(local stack),包括[节点 API](../../build/apis.mdx)、[交易流(Transaction Stream)](../../build/indexer/txn-stream.mdx)、[索引器(indexer) API](../../build/indexer.mdx) 以及水龙头(Faucet)等功能,那么这个选项非常适合你。
10 |
11 | - ### [运行本地开发网络](localnet/local-development-network.mdx)
12 |
13 | ## 特殊需求
14 |
15 | 如果你正在开发核心 Aptos 节点软件本身或有复杂的测试需求,请考虑以下指南。
16 |
17 | - ### [在 Localnet 上运行验证节点](localnet/run-a-localnet.mdx)
18 | {/* - ### [运行本地多节点网络](./localnet/running-a-local-multi-node-network.mdx) */}
19 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/localnet/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "local-development-network": "Run a Local Development Network",
3 | "run-a-localnet": "Run a Localnet with Validator",
4 | };
5 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/measure.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "监控你的节点"
3 | ---
4 |
5 | # 监控你的节点
6 |
7 | 你有几个选项可以用来监控和检查你的节点的健康状况和性能:
8 |
9 | - ### [节点检查服务](measure/node-inspection-service.mdx)
10 | - ### [重要节点指标](measure/important-metrics.mdx)
11 | - ### [节点健康检查器](measure/node-health-checker.mdx)
12 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/measure/node-health-checker-faq.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "节点健康检查器常见问题解答"
3 | ---
4 |
5 | import {Callout, Steps} from 'nextra/components';
6 |
7 | # 节点健康检查器常见问题解答
8 |
9 | Aptos 节点健康检查器(NHC)服务可以用来检查您的节点的健康状态。查看[节点健康检查器](node-health-checker.mdx)获取 NHC 的完整文档。
10 |
11 | 本常见问题解答的目的是帮助您理解当您为节点运行 NHC 时,为什么节点没有通过某个特定的健康检查。如果您在这个 FAQ 中没有找到您想要的信息,请[提交到 Issue](https://github.com/aptos-labs/aptos-core/issues/new/choose),或者[提交 PR](https://github.com/aptos-labs/aptos-core/pulls),然后添加您的问题内容。
12 |
13 | ## 延迟评估器是如何工作的?
14 |
15 | 您可能在这里是因为您收到了像这样的 NHC 评估结果:
16 |
17 | ```bash filename="Terminal"
18 | Average latency too high: The average latency was 1216ms, which is higher than the maximum allowed latency of 1000ms.
19 | ```
20 |
21 | 虽然 NHC 在上面报告了 1216 毫秒,但当您 `ping` 时,您可能会看到像 600 毫秒这样的延迟。这种差异是因为当您 `ping` 一个 IP 时,您看到的结果是单次往返(其中延迟是往返时间(RTT))。另一方面,NHC 延迟测试将向运行在您的节点上的 API 发送一个请求。实际上,这意味着 NHC 将计时 2 次往返,因为它执行以下操作:
22 |
23 | 1. SYN (Synchronize Sequence Numbers)
24 | 2. SYNACK (Synchronize Acknowledgement)
25 | 3. ACK + 发送 HTTP 请求
26 | 4. 接收 HTTP 响应
27 |
28 | 也就是说,NHC 必须进行 TCP 握手(一次往返),然后进行 HTTP 请求(第二次往返)。
29 |
30 | NHC 使用延迟评估器的原因是确保我们能够保持良好的网络性能。特别是,如果您的节点延迟太高,将导致 TPS 低和最终确定时间高,这两者对于运行高性能的 L1 区块链都非常重要。**如果您收到这个错误,您将需要尝试改善到您的节点的延迟。我们为这个值设定了很高的阈值,理解到节点将遍布全世界运行。**
31 |
32 | 节点健康检查器(NHC)之所以选用延迟评估器,就是为了保障网络性能的优异水准。特别的是,如果您的节点延迟过高,会引起交易处理速度(TPS)降低和最终确定的时间延长,这对于保持一层(L1)区块链的高效运作至关重要。**若您遇到此错误,那么您需要努力降低节点的延迟时间。鉴于我们的节点遍布全球,我们为此值设定了较高的阈值。**
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/validator-node/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | operator: "Operator",
3 | "node-requirements": "Node Requirements",
4 | "deploy-nodes": "Deploy Nodes",
5 | "connect-nodes": "Connect Nodes",
6 | "verify-nodes": "Verify Nodes",
7 | "modify-nodes": "Modify Nodes",
8 | };
9 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/validator-node/connect-nodes.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "连接节点"
3 | ---
4 |
5 | import {Callout, Steps} from 'nextra/components';
6 |
7 | # 连接节点
8 |
9 |
10 | **节点部署**
11 | 在你将节点连接到 Aptos 网络之前,你需要先部署它们。在继续操作之前,请确保你已经通过[部署方法](deploy-nodes.mdx)部署了你的节点。
12 |
13 |
14 | 一旦你部署了你的验证节点和验证全节点(VFN),你就需要将它们连接到 Aptos 网络。这需要初始化你的质押池,加入验证者集合,更新你的身份文件,以及引导你的节点。如果你不完成这些步骤,你的节点将无法连接到网络中的其他节点。
15 |
16 | 按照[连接到网络](connect-nodes/connect-to-aptos-network.mdx)的指南开始。
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/validator-node/connect-nodes/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "connect-to-aptos-network": "Connect to a Network",
3 | "staking-pool-operations": "Staking Pool Operations",
4 | "delegation-pool-operations": "Delegation Pool Operations",
5 | "staking-pool-voter": "Staking Pool Voter",
6 | };
7 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/validator-node/deploy-nodes.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "部署节点"
3 | ---
4 |
5 | import { Callout, Steps } from 'nextra/components';
6 |
7 | # 部署节点
8 |
9 | 在 Aptos 网络上运行验证节点和验证全节点(VFN)之前,你需要为你的节点选择一个部署方法。下面的指南提供了在各种平台和不同的 Aptos 网络上部署验证节点和 验证全节点(VFN)的逐步指导。
10 |
11 | 一旦你的节点部署完成,你可以通过初始化你的质押池和加入验证者集合将它们连接到 Aptos 网络。更多信息,请参见[连接节点](connect-nodes.mdx)。
12 |
13 |
14 | 在选择部署方法之前,请确保先阅读并理解[节点要求](node-requirements.mdx)。
15 |
16 |
17 | # 部署方法
18 |
19 | 为你的节点选择一个部署方法:
20 |
21 | - ### [使用源代码](../full-node/deployments/using-source-code.mdx)
22 | - ### [使用 Docker](../full-node/deployments/using-docker.mdx)
23 | - ### [使用 AWS](deploy-nodes/using-aws.mdx)
24 | - ### [使用 Azure](deploy-nodes/using-azure.mdx)
25 | - ### [使用 GCP](../full-node/deployments/using-gcp.mdx)
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/validator-node/deploy-nodes/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "using-source-code": "Using Source Code",
3 | "using-docker": "Using Docker",
4 | "using-aws": "Using AWS",
5 | "using-azure": "Using Azure",
6 | "using-gcp": "Using GCP",
7 | };
8 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/validator-node/modify-nodes.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "修改节点"
3 | ---
4 |
5 | # 修改节点
6 |
7 | 这个部分包含了对您的验证节点和验证全节点(VFN)执行常见操作和修改的教程。这些包括:
8 |
9 | - ### [升级节点](modify-nodes/update-validator-node.mdx)
10 | - ### [关闭节点](modify-nodes/shutting-down-nodes.mdx)
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/validator-node/modify-nodes/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "update-validator-node": "Upgrade Nodes",
3 | "shutting-down-nodes": "Shutdown Nodes",
4 | };
5 |
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/validator-node/operator.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "运营者"
3 | ---
4 |
5 | import {Callout, Steps} from 'nextra/components';
6 |
7 | # 运营者
8 |
9 | 如果你是参与 Aptos 网络的运营者,那么使用这份文档来执行运营者任务,比如部署验证节点和验证者全节点,将节点注册到 Aptos 社区平台,并执行验证。
10 |
11 |
12 | **主网需要验证节点和验证者全节点**
13 | 为了参与到 Aptos 主网,你必须部署一个验证节点和一个验证者全节点。
14 |
15 |
16 | ## 部署节点并注册
17 |
18 |
19 |
20 | ### 阅读[节点要求](node-requirements.mdx)
21 |
22 | 确保你的硬件、存储和网络资源满足节点要求。
23 |
24 | ### 部署节点
25 |
26 | 按照提供的详细节点安装步骤 [**运行验证节点**](deploy-nodes.mdx) 来部署一个验证节点和一个验证者全节点。
27 |
28 |
29 |
30 | 请注意,除非你通过下面的[质押池操作](connect-nodes/staking-pool-operations.mdx)将它们添加到验证者集合中,否则你的节点将不会正确运行(不会同步,不会参与共识)。
31 |
32 | ## 连接到 Aptos 网络
33 |
34 | 部署节点后,[连接到 Aptos 网络](connect-nodes/connect-to-aptos-network.mdx)。
35 |
36 | ## 设置质押池和委托池操作
37 |
38 | 将你的节点连接到 Aptos 网络后,建立[质押池操作](connect-nodes/staking-pool-operations.mdx)以将你的节点添加到验证者集合中。
39 |
40 | 同样,为你的验证者委托的 APT 进行[委托池操作](connect-nodes/delegation-pool-operations.mdx)。你的节点将开始同步并参与共识。
41 |
42 | ## 确保你的节点在线
43 |
44 | 当您的节点部署并配置完成后,请确保它们达到[节点活跃性的要求](verify-nodes/node-liveness-criteria.mdx)。
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/validator-node/verify-nodes.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: "验证节点"
3 | ---
4 |
5 | # 验证节点
6 |
7 | 这个部分包含了验证您的验证节点和验证全节点(VFN)的健康状况和性能的教程。这些包括:
8 |
9 | - ### [节点健康](verify-nodes/node-liveness-criteria.mdx)
10 | - ### [验证者排行榜](verify-nodes/leaderboard-metrics.mdx)
--------------------------------------------------------------------------------
/apps/nextra/pages/zh/network/nodes/validator-node/verify-nodes/_meta.tsx:
--------------------------------------------------------------------------------
1 | export default {
2 | "node-liveness-criteria": "Node Health",
3 | "leaderboard-metrics": "Validator Leaderboard",
4 | };
5 |
--------------------------------------------------------------------------------
/apps/nextra/postcss.config.cjs:
--------------------------------------------------------------------------------
1 | /** @type {import('postcss').Postcss} */
2 | module.exports = {
3 | plugins: {
4 | "tailwindcss/nesting": {},
5 | tailwindcss: {},
6 | "@csstools/postcss-oklab-function": { preserve: true },
7 | autoprefixer: {},
8 | },
9 | };
10 |
--------------------------------------------------------------------------------
/apps/nextra/public/docs/advanced.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
--------------------------------------------------------------------------------
/apps/nextra/public/docs/ans_entrypoint_example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/ans_entrypoint_example.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/ans_entrypoint_modal_example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/ans_entrypoint_modal_example.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/ans_entrypoint_with_other_name.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/ans_entrypoint_with_other_name.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/apple.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/nextra/public/docs/aptos-db-restore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/aptos-db-restore.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/aptos-keyless/apple-dev-program.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/aptos-keyless/apple-dev-program.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/aptos-keyless/google-create-credentials.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/aptos-keyless/google-create-credentials.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/aptos-keyless/google-credentials-nav.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/aptos-keyless/google-credentials-nav.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/aptos-keyless/keyless-account.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/aptos-keyless/keyless-account.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/aptos-keyless/keyless-overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/aptos-keyless/keyless-overview.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/aptos-keyless/keyless-proof.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/aptos-keyless/keyless-proof.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/aptos-keyless/keyless-signing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/aptos-keyless/keyless-signing.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/aptos-keyless/keyless_relation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/aptos-keyless/keyless_relation.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/build-e2e-dapp-img-1-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/build-e2e-dapp-img-1-1.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/build-e2e-dapp-img-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/build-e2e-dapp-img-1.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/build-e2e-dapp-img-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/build-e2e-dapp-img-2.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/build-e2e-dapp-img-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/build-e2e-dapp-img-3.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/ca-diagram-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/ca-diagram-dark.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/ca-diagram-light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/ca-diagram-light.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/cad-video.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/cad-video.gif
--------------------------------------------------------------------------------
/apps/nextra/public/docs/fa-diagram-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/fa-diagram-dark.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/fa-diagram-light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/fa-diagram-light.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/gas-profiling-cost-break-down-table.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/gas-profiling-cost-break-down-table.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/gas-profiling-flamegraph-0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/gas-profiling-flamegraph-0.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/gas-profiling-flamegraph-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/gas-profiling-flamegraph-1.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/gas-profiling-flamegraph-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/gas-profiling-flamegraph-2.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/github-dark.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/nextra/public/docs/github-light.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/nextra/public/docs/module-event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/module-event.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/ts-sdk-architecture-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/ts-sdk-architecture-dark.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/ts-sdk-architecture-light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/ts-sdk-architecture-light.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/tutorial-gcp-logging1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/tutorial-gcp-logging1.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/tutorial-gcp-logging2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/tutorial-gcp-logging2.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/tutorial-gcp-logging3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/tutorial-gcp-logging3.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/tutorial-gcp-logging4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/tutorial-gcp-logging4.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/tutorial-gcp-logging5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/tutorial-gcp-logging5.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/tutorial-gcp-mon1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/tutorial-gcp-mon1.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/tutorial-gcp-mon2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/docs/tutorial-gcp-mon2.png
--------------------------------------------------------------------------------
/apps/nextra/public/docs/wallet-adapter.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/apps/nextra/public/docs/windows.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/nextra/public/favicon/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/favicon/android-chrome-192x192.png
--------------------------------------------------------------------------------
/apps/nextra/public/favicon/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/favicon/android-chrome-512x512.png
--------------------------------------------------------------------------------
/apps/nextra/public/favicon/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/favicon/apple-touch-icon.png
--------------------------------------------------------------------------------
/apps/nextra/public/favicon/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | #ffffff
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/apps/nextra/public/favicon/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/favicon/favicon-16x16.png
--------------------------------------------------------------------------------
/apps/nextra/public/favicon/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/favicon/favicon-32x32.png
--------------------------------------------------------------------------------
/apps/nextra/public/favicon/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/favicon/favicon.ico
--------------------------------------------------------------------------------
/apps/nextra/public/favicon/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/favicon/favicon.png
--------------------------------------------------------------------------------
/apps/nextra/public/favicon/site.webmanifest:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Aptos Docs",
3 | "short_name": "Aptos Docs",
4 | "icons": [
5 | {
6 | "src": "/favicon/android-chrome-192x192.png",
7 | "sizes": "192x192",
8 | "type": "image/png"
9 | },
10 | {
11 | "src": "/favicon/android-chrome-512x512.png",
12 | "sizes": "512x512",
13 | "type": "image/png"
14 | }
15 | ],
16 | "theme_color": "#ffffff",
17 | "background_color": "#ffffff",
18 | "display": "standalone"
19 | }
20 |
--------------------------------------------------------------------------------
/apps/nextra/public/fonts/Satoshi-Variable.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/fonts/Satoshi-Variable.woff2
--------------------------------------------------------------------------------
/apps/nextra/public/landing/aptin-labs.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/landing/aptin-labs.jpeg
--------------------------------------------------------------------------------
/apps/nextra/public/landing/cellana.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/nextra/public/landing/testimonial-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/landing/testimonial-logo.png
--------------------------------------------------------------------------------
/apps/nextra/public/landing/zabava.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/landing/zabava.png
--------------------------------------------------------------------------------
/apps/nextra/public/language-icons/css.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/apps/nextra/public/language-icons/discord.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/apps/nextra/public/language-icons/information-circle.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/apps/nextra/public/language-icons/javascript.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/apps/nextra/public/language-icons/markdown.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/apps/nextra/public/language-icons/mdx.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/apps/nextra/public/language-icons/moon.svg:
--------------------------------------------------------------------------------
1 |
17 |
--------------------------------------------------------------------------------
/apps/nextra/public/language-icons/terminal.svg:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/apps/nextra/public/language-icons/terraform.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/apps/nextra/public/language-icons/typescript.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/apps/nextra/public/robots.txt:
--------------------------------------------------------------------------------
1 | # *
2 | User-agent: *
3 | Allow: /
4 |
5 | # Host
6 | Host: http://localhost:3030
7 |
8 | # Sitemaps
9 | Sitemap: http://localhost:3030/sitemap.xml
10 | Sitemap: http://localhost:3030/sitemap-en.xml
11 | Sitemap: http://localhost:3030/sitemap-zh.xml
12 |
--------------------------------------------------------------------------------
/apps/nextra/public/scoop/aptos.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "7.3.0",
3 | "license": "Apache-2.0",
4 | "description": "Aptos is a layer 1 blockchain built to support the widespread use of blockchain through better technology and user experience. (CLI)",
5 | "homepage": "https://github.com/aptos-labs/aptos-core/",
6 | "architecture": {
7 | "64bit": {
8 | "url": "https://github.com/aptos-labs/aptos-core/releases/download/aptos-cli-v7.3.0/aptos-cli-7.3.0-Windows-x86_64.zip",
9 | "hash": "d20395e6b4cdb07d508f7ff66db0ce0fa19725ce72db4068b4a95f1785535843"
10 | }
11 | },
12 | "bin": "aptos.exe",
13 | "checkver": {
14 | "url": "https://api.github.com/repos/aptos-labs/aptos-core/releases/tags/aptos-cli-v7.3.0",
15 | "jsonpath": "$.tag_name",
16 | "regex": "aptos-cli-v([\\d.]+)"
17 | },
18 | "autoupdate": {
19 | "url": "https://github.com/aptos-labs/aptos-core/releases/download/aptos-cli-v$version/aptos-cli-$version-Windows-x86_64.zip"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/apps/nextra/public/screenshots/bq_sql.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/screenshots/bq_sql.png
--------------------------------------------------------------------------------
/apps/nextra/public/screenshots/explorer_account.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/screenshots/explorer_account.png
--------------------------------------------------------------------------------
/apps/nextra/public/screenshots/explorer_coins.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/screenshots/explorer_coins.png
--------------------------------------------------------------------------------
/apps/nextra/public/screenshots/explorer_devnet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/screenshots/explorer_devnet.png
--------------------------------------------------------------------------------
/apps/nextra/public/screenshots/explorer_modules.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/screenshots/explorer_modules.png
--------------------------------------------------------------------------------
/apps/nextra/public/screenshots/explorer_resources.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/screenshots/explorer_resources.png
--------------------------------------------------------------------------------
/apps/nextra/public/screenshots/move_blockchain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aptos-labs/developer-docs/aa294842eba8de38bb864b39edf27a5e7729f38b/apps/nextra/public/screenshots/move_blockchain.png
--------------------------------------------------------------------------------
/apps/nextra/public/sitemap.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | http://localhost:3030/sitemap-en.xmlhttp://localhost:3030/sitemap-zh.xml
4 |
--------------------------------------------------------------------------------
/apps/nextra/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": ["dom", "dom.iterable", "esnext"],
5 | "allowJs": true,
6 | "skipLibCheck": true,
7 | "strict": false,
8 | "forceConsistentCasingInFileNames": true,
9 | "noEmit": true,
10 | "incremental": true,
11 | "esModuleInterop": true,
12 | "module": "esnext",
13 | "resolveJsonModule": true,
14 | "isolatedModules": true,
15 | "jsx": "preserve",
16 | "moduleResolution": "bundler",
17 | "baseUrl": "./",
18 | "paths": {
19 | "@components/*": ["./components/*"],
20 | "@docs-config": ["./docs.config.js"]
21 | },
22 | "plugins": [
23 | {
24 | "name": "next"
25 | }
26 | ],
27 | "strictNullChecks": true,
28 | "types": ["node"]
29 | },
30 | "include": [
31 | "next-env.d.ts",
32 | "**/*.ts",
33 | "**/*.tsx",
34 | "./.next/types/**/*.ts",
35 | "docs.config.js",
36 | "postbuild.js",
37 | "utils/generateLocaleMap.mts"
38 | ],
39 | "exclude": ["node_modules"]
40 | }
41 |
--------------------------------------------------------------------------------
/apps/nextra/utils/cn.ts:
--------------------------------------------------------------------------------
1 | import { ClassValue, clsx } from "clsx";
2 | import { twMerge } from "tailwind-merge";
3 |
4 | export function cn(...inputs: ClassValue[]) {
5 | return twMerge(clsx(inputs));
6 | }
7 |
--------------------------------------------------------------------------------
/apps/nextra/utils/highlightCode.ts:
--------------------------------------------------------------------------------
1 | import { BundledLanguage, codeToHtml } from "shiki";
2 |
3 | export const highlightCode = (
4 | codeSnippet: string,
5 | lang: BundledLanguage = "move",
6 | ): TrustedHTML => {
7 | return codeToHtml(codeSnippet, {
8 | lang,
9 | themes: {
10 | light: "github-light",
11 | dark: "github-dark",
12 | },
13 | defaultColor: false,
14 | });
15 | };
16 |
--------------------------------------------------------------------------------
/apps/nextra/utils/useIsomorphicLayoutEffect.ts:
--------------------------------------------------------------------------------
1 | import { useEffect, useLayoutEffect } from "react";
2 |
3 | export const useIsomorphicLayoutEffect =
4 | typeof window !== "undefined" ? useLayoutEffect : useEffect;
5 |
--------------------------------------------------------------------------------
/apps/nextra/vercel.json:
--------------------------------------------------------------------------------
1 | {
2 | "public": true
3 | }
4 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "developer-docs",
3 | "private": true,
4 | "scripts": {
5 | "build": "turbo build",
6 | "dev": "turbo dev",
7 | "lint": "turbo lint",
8 | "fmt": "turbo run fmt",
9 | "spellcheck": "turbo run spellcheck"
10 | },
11 | "dependencies": {
12 | "turbo": "2.5.0"
13 | },
14 | "devDependencies": {
15 | "@repo/eslint-config": "workspace:*",
16 | "@repo/typescript-config": "workspace:*",
17 | "prettier": "^3.5.3"
18 | },
19 | "packageManager": "pnpm@9.15.1",
20 | "engines": {
21 | "node": ">=22"
22 | },
23 | "pnpm": {
24 | "overrides": {
25 | "katex": ">=0.16.21",
26 | "dompurify": ">=3.2.4",
27 | "esbuild": ">=0.25.0",
28 | "@babel/runtime": ">=7.26.10",
29 | "@babel/helpers": ">=7.26.10",
30 | "estree-util-value-to-estree": ">=3.3.3",
31 | "glob": "^11.0.1",
32 | "vite": "^6.2.6"
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/packages/aptos-nextra-components/.eslintignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | dist
4 | dist-ssr
5 | *.local
6 | node_modules/*
7 | lib
8 | tsconfig.json
--------------------------------------------------------------------------------
/packages/aptos-nextra-components/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | npm-debug.log
4 | yarn-error.log
5 | yarn-debug.log
6 | .env
7 | lib
--------------------------------------------------------------------------------
/packages/aptos-nextra-components/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./utils";
2 |
--------------------------------------------------------------------------------
/packages/aptos-nextra-components/src/utils/cn.ts:
--------------------------------------------------------------------------------
1 | import { type ClassValue, clsx } from "clsx";
2 | import { twMerge } from "tailwind-merge";
3 |
4 | /**
5 | * Merges classnames, used primarily with Tailwind CSS
6 | */
7 | export function cn(...inputs: ClassValue[]) {
8 | return twMerge(clsx(inputs));
9 | }
10 |
--------------------------------------------------------------------------------
/packages/aptos-nextra-components/src/utils/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./cn";
2 | export * from "./mdast";
3 |
--------------------------------------------------------------------------------
/packages/aptos-nextra-components/src/utils/mdast/examples/account_snippet.expect.md:
--------------------------------------------------------------------------------
1 | is delegating its rotation capability to the recipient_address
.
2 |
3 | This V2 struct adds the chain_id
and source_address
to the challenge message, which prevents replaying the challenge message.
4 |
--------------------------------------------------------------------------------
/packages/aptos-nextra-components/src/utils/mdast/examples/account_snippet.md:
--------------------------------------------------------------------------------
1 | is delegating its rotation capability to the recipient_address
.
2 |
3 | This V2 struct adds the chain_id
and source_address
to the challenge message, which prevents replaying the challenge message.
4 |
--------------------------------------------------------------------------------
/packages/aptos-nextra-components/src/utils/mdast/examples/object_snippet.expect.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Function `convert`
4 |
5 | Convert Object<X> to Object<Y>.
6 |
7 | ```move
8 | public fun convert(object: object::Object): object::Object
9 | ```
10 |
--------------------------------------------------------------------------------
/packages/aptos-nextra-components/src/utils/mdast/examples/object_snippet.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Function `convert`
4 |
5 | Convert Object to Object.
6 |
7 | public fun convert<X: key, Y: key>(object: object::Object<X>): object::Object<Y>
8 |
9 |
--------------------------------------------------------------------------------
/packages/aptos-nextra-components/src/utils/mdast/examples/vector_snippet.expect.md:
--------------------------------------------------------------------------------
1 | ## Function `insert`
2 |
3 | Insert a new element at position 0 \<= i \<= length, using O(length - i) time.
4 | Aborts if out of bounds.
5 |
6 | ```move
7 | public fun insert(self: &mut vector, i: u64, e: Element)
8 | ```
9 |
--------------------------------------------------------------------------------
/packages/aptos-nextra-components/src/utils/mdast/examples/vector_snippet.md:
--------------------------------------------------------------------------------
1 | ## Function `insert`
2 |
3 | Insert a new element at position 0 <= i <= length, using O(length - i) time.
4 | Aborts if out of bounds.
5 |
6 | ```move
7 | public fun insert(self: &mut vector, i: u64, e: Element)
8 | ```
9 |
--------------------------------------------------------------------------------
/packages/aptos-nextra-components/src/utils/mdast/fsast.ts:
--------------------------------------------------------------------------------
1 | import fs from "node:fs";
2 | import path from "node:path";
3 |
4 | import { fromMarkdown } from "mdast-util-from-markdown";
5 | import { Root } from "mdast-util-from-markdown/lib";
6 |
7 | /**
8 | * Read File as Tree
9 | */
10 | export function readFileAsTree(relativePath: string): Root {
11 | const localPath = path.resolve(__dirname, relativePath);
12 | const doc = fs.readFileSync(localPath);
13 | const tree = fromMarkdown(doc);
14 | return tree;
15 | }
16 |
17 | export function writeFile(relativePath: string, data: string) {
18 | const localPath = path.resolve(__dirname, relativePath);
19 | fs.writeFileSync(localPath, data);
20 | }
21 |
--------------------------------------------------------------------------------
/packages/aptos-nextra-components/src/utils/mdast/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./mdast";
2 |
--------------------------------------------------------------------------------
/packages/aptos-nextra-components/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "declaration": true,
4 | "target": "ESNext",
5 | "lib": ["esnext", "dom"],
6 | "strict": true,
7 | "noImplicitAny": false,
8 | "esModuleInterop": true,
9 | "moduleResolution": "node",
10 | "outDir": "lib",
11 | "module": "ESNext",
12 | "skipLibCheck": true,
13 | "rootDir": "src",
14 | "emitDeclarationOnly": true,
15 | "strictPropertyInitialization": false,
16 | "jsx": "react-jsx"
17 | },
18 | "include": [
19 | "src/**/*",
20 | "lib/index.d.ts" // declaration file path
21 | ]
22 | }
23 |
--------------------------------------------------------------------------------
/packages/aptos-nextra-components/tsup.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "tsup";
2 |
3 | const env = process.env.NODE_ENV;
4 |
5 | export default defineConfig({
6 | entry: ["src/index.ts"],
7 | splitting: true,
8 | sourcemap: env === "production", // source map is only available in prod
9 | clean: true, // rimraf dist folder
10 | dts: true, // generate dts file for main module
11 | format: ["esm"], // generate esm files
12 | minify: env === "production",
13 | bundle: env === "production",
14 | skipNodeModulesBundle: true,
15 | entryPoints: ["src/index.ts"],
16 | watch: env === "development",
17 | target: "es2020",
18 | outDir: env === "production" ? "dist" : "lib",
19 | external: ["react", "nextra-theme-docs"],
20 | });
21 |
--------------------------------------------------------------------------------
/packages/aptos-nextra-config/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@aptos-labs/aptos-nextra-config",
3 | "version": "0.0.0",
4 | "type": "module",
5 | "description": "Docs config for Aptos",
6 | "license": "MIT",
7 | "scripts": {
8 | "build": "tsup ./src/index.ts"
9 | },
10 | "files": [
11 | "dist",
12 | "package.json"
13 | ],
14 | "exports": {
15 | ".": {
16 | "types": "./dist/index.d.ts",
17 | "require": "./dist/index.js",
18 | "import": "./dist/index.mjs"
19 | }
20 | },
21 | "main": "./dist/index.js",
22 | "module": "./dist/index.mjs",
23 | "types": "./dist/index.d.ts",
24 | "engines": {
25 | "node": ">=22"
26 | },
27 | "devDependencies": {
28 | "@types/react": "^19.0.3",
29 | "react": "^19.0.0",
30 | "tsup": "^8.4.0",
31 | "typescript": "^5.7.2"
32 | },
33 | "peerDependencies": {
34 | "react": "^19.0.0"
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/packages/aptos-nextra-config/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './katex';
2 | export * from './nav'
--------------------------------------------------------------------------------
/packages/aptos-nextra-config/src/katex/index.ts:
--------------------------------------------------------------------------------
1 | export * from './macros';
--------------------------------------------------------------------------------
/packages/aptos-nextra-config/src/katex/macros.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Sort alphabetically plz
3 | * General Rules:
4 | *
5 | * 1. macros should only include alphabetical letters
6 | */
7 | export const macros = Object.freeze({
8 | '\\dsk': '\\mathsf{dsk}',
9 | '\\F': '\\mathbb{F}',
10 | '\\Gr': '\\mathbb{G}',
11 | '\\idt': '\\mathbb{G}',
12 | '\\mpk': '\\mathsf{mpk}',
13 | '\\msk': '\\mathsf{msk}',
14 | '\\pk': '\\textsf{pk}',
15 | '\\randget': '\\stackrel{R}{\\leftarrow}',
16 | '\\xor': '\\oplus',
17 | '\\Zp': '\\mathbb{Z}_p'
18 | } as const);
19 |
20 | export default macros;
21 |
--------------------------------------------------------------------------------
/packages/aptos-nextra-config/src/nav/index.ts:
--------------------------------------------------------------------------------
1 | export * from './nav';
--------------------------------------------------------------------------------
/packages/aptos-nextra-config/src/nav/nav.tsx:
--------------------------------------------------------------------------------
1 | // eslint-disable-next-line @typescript-eslint/no-unused-vars
2 | import React from 'react';
3 |
4 | type Page = {
5 | title: string;
6 | type: 'page';
7 | display?: 'hidden';
8 | href?: string;
9 | newWindow?: boolean;
10 | theme?: {
11 | layout?: 'full';
12 | sidebar?: boolean;
13 | toc?: boolean;
14 | breadcrumb?: boolean;
15 | typesetting?: 'article';
16 | };
17 | };
18 |
19 | type Menu = {
20 | title: string;
21 | type: 'menu';
22 | items: {
23 | [key: string]: {
24 | title: string;
25 | href?: string;
26 | newWindow?: boolean;
27 | };
28 | };
29 | };
30 |
31 | type ConfigItem = Page | Menu;
32 |
33 | type Config = {
34 | [key: string]: ConfigItem;
35 | };
36 |
37 | export enum NavigationHeaderCategories {
38 | BUILD = 'build',
39 | DEVELOPER_PLATFORMS = 'developer_platforms',
40 | NETWORK = 'network'
41 | }
--------------------------------------------------------------------------------
/packages/aptos-nextra-config/tsup.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'tsup'
2 |
3 | export default defineConfig({
4 | target: 'es2020',
5 | format: ['esm'],
6 | splitting: false,
7 | sourcemap: true,
8 | clean: false,
9 | dts: true,
10 | outExtension({ format }) {
11 | return {
12 | js: format === 'esm' ? '.mjs' : '.js'
13 | }
14 | }
15 | })
--------------------------------------------------------------------------------
/packages/eslint-config/README.md:
--------------------------------------------------------------------------------
1 | # `@turbo/eslint-config`
2 |
3 | Collection of internal eslint configurations.
4 |
--------------------------------------------------------------------------------
/packages/eslint-config/library.js:
--------------------------------------------------------------------------------
1 | const { resolve } = require("node:path");
2 |
3 | const project = resolve(process.cwd(), "tsconfig.json");
4 |
5 | /** @type {import("eslint").Linter.Config} */
6 | module.exports = {
7 | extends: ["eslint:recommended", "prettier", "eslint-config-turbo"],
8 | plugins: ["only-warn"],
9 | globals: {
10 | React: true,
11 | JSX: true,
12 | },
13 | env: {
14 | node: true,
15 | },
16 | settings: {
17 | "import/resolver": {
18 | typescript: {
19 | project,
20 | },
21 | },
22 | },
23 | ignorePatterns: [
24 | // Ignore dotfiles
25 | ".*.js",
26 | "node_modules/",
27 | "dist/",
28 | ],
29 | overrides: [
30 | {
31 | files: ["*.js?(x)", "*.ts?(x)"],
32 | },
33 | ],
34 | };
35 |
--------------------------------------------------------------------------------
/packages/eslint-config/next.js:
--------------------------------------------------------------------------------
1 | const { resolve } = require("node:path");
2 |
3 | const project = resolve(process.cwd(), "tsconfig.json");
4 |
5 | /** @type {import("eslint").Linter.Config} */
6 | module.exports = {
7 | extends: [
8 | "eslint:recommended",
9 | "prettier",
10 | require.resolve("@vercel/style-guide/eslint/next"),
11 | "eslint-config-turbo",
12 | ],
13 | globals: {
14 | React: true,
15 | JSX: true,
16 | },
17 | env: {
18 | node: true,
19 | browser: true,
20 | },
21 | plugins: ["only-warn"],
22 | settings: {
23 | "import/resolver": {
24 | typescript: {
25 | project,
26 | },
27 | },
28 | },
29 | ignorePatterns: [
30 | // Ignore dotfiles
31 | ".*.js",
32 | "node_modules/",
33 | ],
34 | overrides: [{ files: ["*.js?(x)", "*.ts?(x)"] }],
35 | };
36 |
--------------------------------------------------------------------------------
/packages/eslint-config/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@repo/eslint-config",
3 | "version": "0.0.0",
4 | "private": true,
5 | "files": [
6 | "library.js",
7 | "next.js",
8 | "react-internal.js"
9 | ],
10 | "devDependencies": {
11 | "@vercel/style-guide": "^6.0.0",
12 | "eslint-config-turbo": "^2.1.2",
13 | "eslint-config-prettier": "^9.1.0",
14 | "eslint-plugin-only-warn": "^1.1.0",
15 | "@typescript-eslint/parser": "^8.8.0",
16 | "@typescript-eslint/eslint-plugin": "^8.8.0",
17 | "typescript": "^5.7.2"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/packages/eslint-config/react-internal.js:
--------------------------------------------------------------------------------
1 | const { resolve } = require("node:path");
2 |
3 | const project = resolve(process.cwd(), "tsconfig.json");
4 |
5 | /*
6 | * This is a custom ESLint configuration for use with
7 | * internal (bundled by their consumer) libraries
8 | * that utilize React.
9 | *
10 | * This config extends the Vercel Engineering Style Guide.
11 | * For more information, see https://github.com/vercel/style-guide
12 | *
13 | */
14 |
15 | /** @type {import("eslint").Linter.Config} */
16 | module.exports = {
17 | extends: ["eslint:recommended", "prettier", "eslint-config-turbo"],
18 | plugins: ["only-warn"],
19 | globals: {
20 | React: true,
21 | JSX: true,
22 | },
23 | env: {
24 | browser: true,
25 | },
26 | settings: {
27 | "import/resolver": {
28 | typescript: {
29 | project,
30 | },
31 | },
32 | },
33 | ignorePatterns: [
34 | // Ignore dotfiles
35 | ".*.js",
36 | "node_modules/",
37 | "dist/",
38 | ],
39 | overrides: [
40 | // Force ESLint to detect .tsx files
41 | { files: ["*.js?(x)", "*.ts?(x)"] },
42 | ],
43 | };
44 |
--------------------------------------------------------------------------------
/packages/github-fetch/.gitignore:
--------------------------------------------------------------------------------
1 | .wrangler
2 | node_modules
3 | .vscode
4 | .dev.vars
5 | .env
--------------------------------------------------------------------------------
/packages/github-fetch/README.md:
--------------------------------------------------------------------------------
1 | # Code Cache
2 |
3 | This is a small cloudflare worker + d1 sqlite db that caches code snippets from Github
4 | and stores them in a sqlite db. They're used for the custom remote codeblock component
5 | in Nextra.
6 |
7 | For more info see the [Cloudflare D1 Guide](https://developers.cloudflare.com/d1/get-started/#7-deploy-your-database)
8 |
9 | ## Getting Started
10 |
11 | 1. `pnpm install`
12 | 2. Setup `wrangler` (Cloudflare's CLI)
13 | 3. Setup `.dev.vars` for secrets. Requests need to include the `API_KEY` in headers
14 |
15 | ```bash filename=".dev.vars"
16 | API_KEY=
17 | ```
18 |
19 | 4. Run `pnpm migrate`
20 | 5. Run `pnpm dev`
21 |
22 | ## Deployment
23 |
24 | 1. `pnpm worker:deploy`
25 | 2. `pnpm db:deploy`
26 |
27 | ## Testing
28 |
29 | See `github.spec.ts` as an example of how to create unit tests
30 |
31 | `pnpm test` will run vitest unit tests
--------------------------------------------------------------------------------
/packages/github-fetch/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@aptos-labs/github-fetch",
3 | "version": "0.0.0",
4 | "description": "A small set of github functions for fetching code. Designed to be used with code cache and Nextra",
5 | "type": "module",
6 | "main": "dist/index.js",
7 | "scripts": {
8 | "test:types": "tsc --noEmit",
9 | "build": "tsc",
10 | "test": "vitest"
11 | },
12 | "keywords": [],
13 | "author": "hariria",
14 | "license": "Apache-2.0",
15 | "private": true,
16 | "dependencies": {
17 | "itty-router": "^2.6.6",
18 | "itty-router-extras": "^0.4.2"
19 | },
20 | "devDependencies": {
21 | "@types/itty-router-extras": "^0.4.0",
22 | "drizzle-kit": "0.20.14",
23 | "typescript": "^5.6.2",
24 | "vitest": "2.1.9"
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/github-fetch/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./github";
2 | export * from "./utils";
3 |
--------------------------------------------------------------------------------
/packages/typescript-config/base.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json.schemastore.org/tsconfig",
3 | "display": "Default",
4 | "compilerOptions": {
5 | "declaration": true,
6 | "declarationMap": true,
7 | "esModuleInterop": true,
8 | "incremental": false,
9 | "isolatedModules": true,
10 | "lib": ["es2022", "DOM", "DOM.Iterable"],
11 | "module": "NodeNext",
12 | "moduleDetection": "force",
13 | "moduleResolution": "NodeNext",
14 | "noUncheckedIndexedAccess": true,
15 | "resolveJsonModule": true,
16 | "skipLibCheck": true,
17 | "strict": true,
18 | "target": "ES2022"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/packages/typescript-config/nextjs.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json.schemastore.org/tsconfig",
3 | "display": "Next.js",
4 | "extends": "./base.json",
5 | "compilerOptions": {
6 | "plugins": [{ "name": "next" }],
7 | "module": "ESNext",
8 | "moduleResolution": "Bundler",
9 | "allowJs": true,
10 | "jsx": "preserve",
11 | "noEmit": true
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/packages/typescript-config/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@repo/typescript-config",
3 | "version": "0.0.0",
4 | "private": true,
5 | "license": "MIT",
6 | "publishConfig": {
7 | "access": "public"
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/packages/typescript-config/react-library.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json.schemastore.org/tsconfig",
3 | "display": "React Library",
4 | "extends": "./base.json",
5 | "compilerOptions": {
6 | "jsx": "react-jsx"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/pnpm-workspace.yaml:
--------------------------------------------------------------------------------
1 | packages:
2 | - "apps/*"
3 | - "packages/*"
4 |
--------------------------------------------------------------------------------
/prebuild.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 | const path = require("path");
3 |
4 | const ENV_FILE = path.join(__dirname, "apps/nextra/.env");
5 |
6 | try {
7 | if (!fs.existsSync(ENV_FILE)) {
8 | console.error("Error: .env file does not exist under apps/nextra.");
9 | process.exit(1);
10 | }
11 |
12 | const envFileContent = fs.readFileSync(ENV_FILE, "utf8");
13 | if (!envFileContent.includes("NEXT_PUBLIC_ORIGIN=")) {
14 | console.error("Error: NEXT_PUBLIC_ORIGIN is not defined in the .env file.");
15 | process.exit(1);
16 | }
17 |
18 | console.log("Pre-build check passed.");
19 | } catch (err) {
20 | console.error("An error occurred during the pre-build check:", err);
21 | process.exit(1);
22 | }
23 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "@repo/typescript-config/base.json"
3 | }
4 |
--------------------------------------------------------------------------------
/turbo.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://turbo.build/schema.json",
3 | "globalDependencies": ["**/.env.*local"],
4 | "tasks": {
5 | "build": {
6 | "dependsOn": ["^build"],
7 | "outputs": [".next/**", "!.next/cache/**"]
8 | },
9 | "build:prod": {
10 | "dependsOn": ["^build", "^build:prod"],
11 | "outputs": [".next/**", "!.next/cache/**"]
12 | },
13 | "lint": {
14 | "dependsOn": ["^lint"]
15 | },
16 | "dev": {
17 | "cache": false,
18 | "persistent": true
19 | },
20 | "fmt": {
21 | "dependsOn": ["^fmt"]
22 | },
23 | "spellcheck": {
24 | "dependsOn": ["^spellcheck"]
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------