AmmoraDOCS
GIWA Sepolia
NFT SDK Beta
Docs/NFT SDK/Getting started/Why Ammora
NFT SDK · OVERVIEW

Build NFT workflows that users control

Use Ammora contracts and typed transaction plans while keeping every signature and gas payment in the user's wallet.

Overview

Why build with the Ammora NFT SDK?

Ammora gives an EVM application one typed path from NFT intent to reviewable calldata, without taking over the wallet, storage provider, or product interface.

01

Use reviewed contracts and TypeScript planners instead of maintaining a separate integration layer for every NFT workflow.

02

Catch chain, authority, metadata, and stale-state problems before asking the user to sign.

03

Keep custody explicit. The SDK prepares and verifies while the user's wallet remains the only transaction sender.

Use this when

Use Ammora when your product needs collections, assets, mint campaigns, or programmable NFT behavior on EVM and you want one consistent transaction lifecycle.

Recommended flowFrom product intent to verified state
  1. 01Choose a capability
  2. 02Prepare a typed plan
  3. 03Simulate current state
  4. 04Let the wallet sign
Beta on GIWA Sepolia

NFT workflows are available to selected testers on GIWA Sepolia. Users review, sign, and pay for each transaction.

// Public npm publication is pending.
// Use the exact approved beta artifact for the current GIWA test cohort.

import {
  createAmmoraNftFromRpc,
  giwaSepoliaNftBetaV2,
  simulatePlan,
  validateNftMetadataUri,
} from "@ammora-protocol/nft-sdk";
import { prepareMintCoreAsset721 } from "@ammora-protocol/nft-sdk/core";

const nft = await createAmmoraNftFromRpc({
  rpcUrl: process.env.RPC_URL!,
  profiles: [giwaSepoliaNftBetaV2],
  requireRuntimeCodeHashes: true,
});

const metadata = validateNftMetadataUri(userSuppliedMetadataUri);
const plan = prepareMintCoreAsset721(nft, {
  collection,
  sender: creator,
  to: recipient,
  name: "Genesis #1",
  uri: metadata.uri,
});

await simulatePlan(nft, plan);

What the SDK provides

Ammora combines EVM NFT contracts, typed TypeScript planners, direct RPC reads, and an optional indexed provider. Applications keep their existing wallet, storage, and interface choices.

SurfaceUse it forDefault boundary
Collections and assetsERC-721, ERC-1155, Core Asset V2, transfers, burns, metadata, and royaltiesOnchain contracts and direct RPC
Mint campaignsInventory, phases, limits, proceeds, allowlists, and token gatesUser-signed transactions
Programmable behaviorGroups, creators, attributes, autographs, delegates, blockers, and pluginsExplicit capability level
Asset discoveryOwner and collection search, activity, metadata, and media observationsOptional compatible Asset API

The transaction lifecycle

Treat preparation, simulation, wallet approval, and receipt verification as separate steps. A prepared plan is reviewable calldata, not a submitted transaction.

  1. 1
    Prepare

    Validate the inputs and return target, calldata, value, expected signer, warnings, and expected events.

  2. 2
    Simulate

    Run the exact plan with the connected account against current chain state.

  3. 3
    Sign

    Let the user review the wallet request and pay the network gas.

  4. 4
    Verify

    Wait for the receipt, check the expected event, and read the resulting state.

No relayer or gas sponsorship

Ammora does not receive private keys, sponsor GIWA ETH, or submit writes without wallet approval.

Capability levels

The support level is part of the integration contract. Check it before enabling a feature for testers.

LevelIncluded surfacesIntegration promise
Public beta capabilityERC-721/1155 lifecycle, Core Asset V2, logical collections, Mint Campaign V1/V2, direct reads, and internal pluginsReady for selected testnet users
Advanced PreviewGroups, permanent and external plugins, plus indexed readsAvailable on testnet; details may change
ExperimentalAsset accounts, agent execution, Execute Freeze, and storage adaptersSeparate imports with no stability promise
Not in v0.1Compressed NFTs, editions, a general rules engine, and a hosted upload serviceNot available in this release
Was this page helpful?