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.
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.
Use reviewed contracts and TypeScript planners instead of maintaining a separate integration layer for every NFT workflow.
Catch chain, authority, metadata, and stale-state problems before asking the user to sign.
Keep custody explicit. The SDK prepares and verifies while the user's wallet remains the only transaction sender.
Use Ammora when your product needs collections, assets, mint campaigns, or programmable NFT behavior on EVM and you want one consistent transaction lifecycle.
- 01Choose a capability
- 02Prepare a typed plan
- 03Simulate current state
- 04Let the wallet sign
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.
| Surface | Use it for | Default boundary |
|---|---|---|
| Collections and assets | ERC-721, ERC-1155, Core Asset V2, transfers, burns, metadata, and royalties | Onchain contracts and direct RPC |
| Mint campaigns | Inventory, phases, limits, proceeds, allowlists, and token gates | User-signed transactions |
| Programmable behavior | Groups, creators, attributes, autographs, delegates, blockers, and plugins | Explicit capability level |
| Asset discovery | Owner and collection search, activity, metadata, and media observations | Optional 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.
- 1Prepare
Validate the inputs and return target, calldata, value, expected signer, warnings, and expected events.
- 2Simulate
Run the exact plan with the connected account against current chain state.
- 3Sign
Let the user review the wallet request and pay the network gas.
- 4Verify
Wait for the receipt, check the expected event, and read the resulting state.
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.
| Level | Included surfaces | Integration promise |
|---|---|---|
| Public beta capability | ERC-721/1155 lifecycle, Core Asset V2, logical collections, Mint Campaign V1/V2, direct reads, and internal plugins | Ready for selected testnet users |
| Advanced Preview | Groups, permanent and external plugins, plus indexed reads | Available on testnet; details may change |
| Experimental | Asset accounts, agent execution, Execute Freeze, and storage adapters | Separate imports with no stability promise |
| Not in v0.1 | Compressed NFTs, editions, a general rules engine, and a hosted upload service | Not available in this release |