# API Features

Add these endpoints to your [curl](https://docs.nmkr.io/get-started-with-the-api#example-curl), in order to use the in your applications.\
Example:

```
curl -X 'GET' \
  'https://studio-api.nmkr.io/v2/endpoint...
  -H 'accept: text/plain' \
  -H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxx'
```

If you want to try these endpoints before integrating them, please use the [Swagger](https://studio-api.nmkr.io/swagger/index.html).

### User

| Add a payout wallet to your account     | /v2/AddPayoutWallet/{walletaddress}         |
| --------------------------------------- | ------------------------------------------- |
| List all payout wallets in your account | /v2/GetPayoutWallets                        |
| Create subcustomer                      | /v2/CreateSubcustomer/{customerid}          |
| Create API key for subcustomer          | /v2/CreateApikeyForSubcustomer/{customerid} |

### Asset (Token)

| Block/Unblock an nft (nft uid)                                                                  | /v2/BlockUnblockNft/{nftuid}/{blockNft}             |
| ----------------------------------------------------------------------------------------------- | --------------------------------------------------- |
| Check if the metadata are valid                                                                 | /v2/CheckMetadata/{nftuid}                          |
| Delete all nfts from the database                                                               | /v2/DeleteAllNftsFromProject/{projectuid}           |
| Delete a nft from the database (nft uid)                                                        | /v2/DeleteNft/{nftuid}                              |
| Duplicate a token inside a project. If a token already exists, it will be skipped               | /v2/DuplicateNft/{nftuid}                           |
| List detail information about one nft specified by Id (nft uid)                                 | /v2/GetNftDetailsById/{nftuid}                      |
| List detail information about one nft specified by its name                                     | /v2/GetNftDetailsByTokenname/{projectuid}/{nftname} |
| List detail information about nfts with a specific state with Pagination support. (project uid) | /v2/GetNfts/{projectuid}/{state}/{count}/{page}     |
| Update the Metadata for one specific NFT                                                        | /v2/UpdateMetadata/{projectuid}/{nftuid}            |
| Upload a File to a project and pin it to IPFS                                                   | /v2/UploadNft/{projectuid}                          |

### Project

| Create a burning endpoint for a specific address                                         | /v2/CreateBurningAddress/{projectuid}/{addressactiveinhours} |
| ---------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| Create a new Project                                                                     | /v2/CreateProject                                            |
| Delete a project                                                                         | /v2/DeleteProject/{projectuid}                               |
| Return the count of the sold, reserved and free nfts (project uid)                       | /v2/Counts/{projectuid}                                      |
| Return the discounts for this project (project uid)                                      | /v2/Discounts/{projectuid}                                   |
| Return information about the identities (if the identity token was created) of a project | /v2/IdentityAccounts/{policyid}                              |
| Return the notifications for this project (project uid)                                  | /v2/Notifications/{projectuid}                               |
| Return the actual valid pricelist for this project (project uid)                         | /v2/Pricelist/{projectuid}                                   |
| Return detail information about a project                                                | /v2/ProjectDetails/{projectuid}                              |
| Return the saleconditions for this project (project uid)                                 | /v2/SaleConditions/{projectuid}                              |
| List all your projects                                                                   | /v2/ListProjects                                             |
| List all your projects with pagination                                                   | /v2/ListProjects/{count}/{page}                              |
| Update the discounts of a project                                                        | /v2/UpdateDiscounts/{projectuid}                             |
| Update the notifications of a project                                                    | /v2/UpdateNotifications/{projectuid}                         |
| Update a pricelist of a project                                                          | /v2/UpdatePricelist/{projectuid}                             |
| Update the saleconditions of a project                                                   | /v2/UpdateSaleConditions/{projectuid}                        |

### Payment transactions

| Create a payment transaction                         | /v2/CreatePaymentTransaction                                                              |
| ---------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| Return payment transaction state                     | /v2/ProceedPaymentTransaction/{paymenttransactionuid}/GetTransactionState                 |
| Return payment address                               | /v2/ProceedPaymentTransaction/{paymenttransactionuid}/PaymentAddress                      |
| Sign MultiSig                                        | /v2/ProceedPaymentTransaction/{paymenttransactionuid}/SignDecentralPayment                |
| Check payment address                                | /v2/ProceedPaymentTransaction/{paymenttransactionuid}/CheckPaymentAddress                 |
| Cancel payment transaction                           | /v2/ProceedPaymentTransaction/{paymenttransactionuid}/CancelTransaction                   |
| Return Pricelist of project                          | /v2/ProceedPaymentTransaction/{paymenttransactionuid}/GetPriceListForProject              |
| Lock NFT                                             | /v2/ProceedPaymentTransaction/{paymenttransactionuid}/LockNft                             |
| Lock ADA                                             | /v2/ProceedPaymentTransaction/{paymenttransactionuid}/LockAda                             |
| Submit Transaction                                   | /v2/ProceedPaymentTransaction/{paymenttransactionuid}/SubmitTransaction                   |
| Place bid on auction                                 | /v2/ProceedPaymentTransaction/{paymenttransactionuid}/BetOnAuction                        |
| Buy direct sale                                      | /v2/ProceedPaymentTransaction/{paymenttransactionuid}/BuyDirectsale                       |
| Buy from secondary sale (direct sale) smart contract | /v2/ProceedPaymentTransaction/{paymenttransactionuid}/BuyoutSmartcontractAddress          |
| Directsale offer                                     | /v2/ProceedPaymentTransaction/{paymenttransactionuid}/SellDirectsaleOffer                 |
| End transaction                                      | /v2/ProceedPaymentTransaction/{paymenttransactionuid}/EndTransaction                      |
| Reserve vie paymentgateway for mint and send         | /v2/ProceedPaymentTransaction/{paymenttransactionuid}/ReservePaymentgatewayMintAndSendNft |
| Mint and send                                        | /v2/ProceedPaymentTransaction/{paymenttransactionuid}/MintAndSendPaymentgatewayNft        |
| Add custom properties                                | /v2/ProceedPaymentTransaction/{paymenttransactionuid}/UpdateCustomProperties              |

### Whitelist

| Return all entries of a projects whitelist | /v2/ManageWhitelist/{projectuid}                         |
| ------------------------------------------ | -------------------------------------------------------- |
| Add an entry to a projects whitelist       | /v2/ManageWhitelist/{projectuid}/{address}/{countofnfts} |
| Delete an entry from a projects whitelist  | /v2/ManageWhitelist/{projectuid}/{address}               |

### Mint

| Mints random Nfts and sends it to an Address          | /v2/MintAndSendRandom/{projectuid}/{countnft}/{receiveraddress}              |
| ----------------------------------------------------- | ---------------------------------------------------------------------------- |
| Mints a specific Nft and sends it to an Address       | /v2/MintAndSendSpecific/{projectuid}/{nftuid}/{tokencount}/{receiveraddress} |
| Mints the royalty token                               | /v2/MintRoyaltyToken/{projectuid}/{royaltyaddress}/{percentage}              |
| ReMints a specific Nft and sends it to a burn address | /v2/RemintAndBurn/{projectuid}/{nftuid}                                      |

### Tools

| Check if there applies a discount for an address                          | /v2/CheckIfEglibleForDiscount/{projectuid}/{address}                  |
| ------------------------------------------------------------------------- | --------------------------------------------------------------------- |
| Check, if an address matches the sale condtions                           | /v2/CheckIfSaleCondtionsMet/{projectuid}/{address}/{countnft}         |
| Return the utxo of an address                                             | /v2/CheckUtxo/{address}                                               |
| Return active direct sale listings of a stake address                     | /v2/GetActiveDirectsaleListings/{stakeaddress}                        |
| Return the actual price in EUR and USD for ADA                            | /v2/GetAdaRates                                                       |
| Return all assets that are in a wallet                                    | /v2/GetAllAssetsInWallet/{address}                                    |
| Return the quantity of a specific token in a wallet                       | /v2/GetAmountOfSpecificTokenInWallet/{address}/{policyid}/{tokenname} |
| Return the quantity of a specific token in a wallet                       | /v2/GetAmountOfSpecificTokenInWallet/{policyid}/{tokenname}           |
| Return the Token Registry Information for a specific token (if available) | /v2/GetCardanoTokenRegistryInformation/{policyid}/{tokenname}         |
| Return a snapshot with all addresses and tokens for a specific policyid   | /v2/GetPolicySnapshot/{policyid}/{cumulateStakeAddresses}             |
| Return the royalty information for a specific policyid                    | /v2/GetRoyaltyInformation/{policyid}                                  |

### Address reservation (sale)

| Cancel a address reservation (project uid)                                                                                           | /v2/CancelAddressReservation/{projectuid}/{paymentaddress}                                   |
| ------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------- |
| Check an address for state changes (project uid)                                                                                     | /v2/CheckAddress/{projectuid}/{address}                                                      |
| Check an custom property for state changes (project uid)                                                                             | /v2/CheckAddressWithCustomproperty/{projectuid}/{customproperty}                             |
| Return an address for a random nft sale (project id)                                                                                 | /v2/GetPaymentAddressForRandomNftSale/{projectuid}/{countnft}/{lovelace}/{customeripaddress} |
| Return an address for a random nft sale (price from pricelist) (project id)                                                          | /v2/GetPaymentAddressForRandomNftSale/{projectuid}/{countnft}/{customeripaddress}            |
| Return an address for a specific nft sale (no random distribution) (project and nft id)                                              | /v2/GetPaymentAddressForSpecificNftSale/{nftuid}/{tokencount}/{lovelace}/{customeripaddress} |
| Return an address for a specific nft sale (no random distribution) - price from pricelist or specific nft price (project and nft id) | /v2/GetPaymentAddressForSpecificNftSale/{nftuid}/{tokencount}/{customeripaddress}            |
| Return an address for a multiple specific nfts sale (no random distribution) (project id)                                            | /v2/GetPaymentAddressForSpecificNftSale/{customeripaddress}                                  |

### Wallet validation

| Return the result of a wallet validation | /v2/CheckWalletValidation/{validationuid}       |
| ---------------------------------------- | ----------------------------------------------- |
| Return  an address for wallet validation | /v2/GetWalletValidationAddress/{validationname} |
| Return an address for wallet validation  | /v2/GetWalletValidationAddress                  |

### Managed wallets

| Create an Managed Wallet               | /v2/CreateWallet/{customerid}/{walletpassword}/{enterpriseaddress}/{walletname} |
| -------------------------------------- | ------------------------------------------------------------------------------- |
| Create an Managed Wallet               | /v2/CreateWallet/{customerid}/{walletpassword}/{enterpriseaddress}              |
| Return the utxo of an Managed Wallet   | /v2/GetWalletUtxo/{address}                                                     |
| Import an Wallet                       | /v2/ImportWallet/{customerid}                                                   |
| Return the utxo of an Managed Wallet   | /v2/ListAllWallets/{customerid}                                                 |
| Make a transaction on a managed Wallet | /v2/MakeTransaction/{customerid}/{senderaddress}/{walletpassword}               |

### Auctions

| Returns the state - and the last bids of a auction project | /v2/AuctionState/{auctionuid} |
| ---------------------------------------------------------- | ----------------------------- |
|                                                            |                               |

### Smart Contract

| Return smart contract address                                           | /v2/GetBuyOutSmartcontractAddress/{customerid}/{txHashLockedinAssets} |
| ----------------------------------------------------------------------- | --------------------------------------------------------------------- |
| Return the datum information for a smartcontract directsale transaction | /v2/GetDatumInformationForSmartcontractDirectsaleTransaction/{txhash} |
| Return listed Assets in Payment transaction                             | /v2/GetListedAssetPaymentTransaction/{policyid}/{assetnameinhex}      |

### IPFS

| Upload a File pin it to IPFS | /v2/UploadToIpfs/{customerid} |
| ---------------------------- | ----------------------------- |
|                              |                               |
