MCS 2.0 API

This is a Postman Collection for the Multi-Chain Storage API v1 endpoints. The page below describes different components of our API offering.

Authentication

Register for Multichain storage

POST https://api.multichain.storage/api/v1/user/register

Registration by Metamask wallet

Request Body

Name
Type
Description

public_key_address*

String

Wallet address of the user

{
    "status": "success",
    "data": {
        "nonce": "1086889515610840385225475684592216593766"
    }
}

Login for Multichain storage

POST https://api.multichain.storage/api/v1/user/login_by_metamask_signature

Login by signature via Metamask

Request Body

Name
Type
Description

nonce*

String

signature*

String

Created by nonce, private key, and public key address.

public_key_address*

String

Wallet address of the user

network*

String

Network for the chain environment

{
    "status": "success",
    "data": {
        "jwt_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjYyMjM3MDksImlhdCI6MTY2NjEzNzMwOSwic3ViIjoiNzExLHBvbHlnb24ubXVtYmFpIn0.SGu2DzoFcgNX9he_LHVUfQvfwM8rro_SsDXzH2imrKE"
    }
}

Common

Get system config

GET https://api.multichain.storage/api/v1/common/system/params

This endpoint allows you to get system config

{
    "data":
        "chain_name": "polygon.mainnet", 
        "payment_contract_address": "0xA1f32c758c4324cC3070A3AA107C4dC7DdFe1a6f",…}
        "chain_name": "polygon.mainnet"
        "dao_contract_address": "0x2621BB3140D8914806E977F7e6035B468675304D"
        "dao_threshold": 2
        "dex_address": "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506"
        "filecoin_price": 513880000
        "gas_limit": 8000000
        "lock_time": 6
        "mint_contract_address": "0x7a5FB09Adc5f1bCd7bd1E230Dcc8B6d933c4995E"
        "pay_multiply_factor": 1.5
        "payment_contract_address": "0xA1f32c758c4324cC3070A3AA107C4dC7DdFe1a6f"
        "payment_recipient_address": "0x7042d0a8F7ED7d6051Fd7032515338f59Ff872b2"
        "usdc_address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"
        "usdc_wFil_pool_contract": "0x230e57B69E3d45557e20a6238462564EBf4Fe2a9"
    "status": "success"
    }
}

Get host info

GET https://api.multichain.storage/api/v1/common/host/info

{
    "status": "success",
    "data": {
        "version": "MCS-2.0.0",
        "operating_system": "darwin",
        "architecture": "arm64",
        "cpu_number": 8,
        "current_unix_nano": 1654203545105082000
    }
}

Upload file

Get USDC/Filecoin exchange rate

GET https://api.multichain.storage/api/v1/billing/price/filecoin

This endpoint allows you to get the current exchange rate of USDC against Filecoin.

{
    "status":"success",
    "code":"200",
    "data":173
}

Get average Filecoin statistics.

GET https://api.filswan.com/stats/storage

This endpoint allows you to get average Filecoin storage price.

{
    "data":
    {
        "average_cost_push_message":" FIL",
        "average_data_cost_sealing_1TB":" FIL/TiB",
        "average_gas_cost_sealing_1TB":" FIL/TiB",
        "average_min_piece_size":" Byte",
        "average_price_per_GB_per_year":" FIL/GiB/year",
        "average_verified_price_per_GB_per_year":" FIL/GiB/year"},
        "historical_average_price_regular": " FIL/GiB/Day"
        "historical_average_price_verified": " FIL/GiB/Day"
    "status":"success"
}

Upload to IPFS

POST https://api.multichain.storage/api/v1/storage/ipfs/upload

This endpoint allows you to upload your file to IPFS server.

Request Body

Name
Type
Description

file*

Binary

file to be uploaded

duration*

String

days for the uploaded file to be kept on miner

file_type*

String

0:uploaded by user, 1:uploaded by nft

wallet_address*

String

wallet address used to pay

{
    "status": "success",
    "code": 200,
    "data": {
        "file_size": 2
        "ipfs_url": "https://ipfs.multichain.storage/ipfs/QmV9TXwuCutEUfcyMx4Ldk3MERubetXgCCkkE8QCHYyzL2"
        "payload_cid": "QmV9TXwuCutEUfcyMx4Ldk3MERubetXgCCkkE8QCHYyzL2"
        "source_file_upload_id": 150877
        "status": "Free"
        "w_cid": "1cdbc9a9-382a-4e53-9409-a0facb8fe31bQmV9TXwuCutEUfcyMx4Ldk3MERubetXgCCkkE8QCHYyzL2"
    }
}

My files

Get uploaded file list

GET https://api.multichain.storage/api/v1/storage/tasks/deals

This endpoint allows you to get a list of your uploaded files.

Path Parameters

Name
Type
Description

file_name

String

file name of the uploaded file

page_size

Number

valid integer, otherwise 10(default)

page_number

Number

if not a valid number, or <=0, then 1, else use provided value

wallet_address*

String

uploaded under this wallet

order_by

String

file_name,file_size,upload_at(default)

is_ascend

String

y:ascend, others: descend(default)

{
    "status": "success",
    "code": 200,
    "data": {
        "source_file_upload": [
            {
                "source_file_upload_id": 1,
                "car_file_id": 1,
                "file_name": "test20",
                "file_size": 1048671,
                "upload_at": 1651507047,
                "duration": 525,
                "pin_status": "Pinned",
                "payload_cid": "bafybeicxl5dk3iqejtbbcj2b77icx45unajw4qrakmd5ag46jlnidykk2y",
                "status": "Processing",
                "token_id": "",
                "mint_address": "",
                "nft_tx_hash": "",
                "offline_deal": [
                    {
                        "id": 1,
                        "car_file_id": 1,
                        "deal_cid": "bafyreihwmwh2jgapiube6wrviax2zolpe26w35w4wy2x6b7q6blff7mpwe",
                        "miner_id": 1,
                        "verified": false,
                        "start_epoch": 926524,
                        "sender_wallet_id": 1,
                        "deal_id": 167814,
                        "status": "Created",
                        "note": null,
                        "on_chain_status": "StorageDealError",
                        "tx_hash_unlock": null,
                        "unlock_at": 0,
                        "create_at": 1651507495,
                        "update_at": 1651516351,
                        "miner_fid": "t03354"
                    }
                ]
            },
            {
                "source_file_upload_id": 2,
                "car_file_id": 2,
                "file_name": "test20",
                "file_size": 1048671,
                "upload_at": 1651509153,
                "duration": 525,
                "pin_status": "Pinned",
                "payload_cid": "bafybeicxl5dk3iqejtbbcj2b77icx45unajw4qrakmd5ag46jlnidykk2y",
                "status": "Processing",
                "token_id": "",
                "mint_address": "",
                "nft_tx_hash": "",
                "offline_deal": [
                    {
                        "id": 2,
                        "car_file_id": 2,
                        "deal_cid": "bafyreic6dd722zindqx6svw4snk5czwn4hi4dprzcps3xkiiklqrz5ay5a",
                        "miner_id": 1,
                        "verified": false,
                        "start_epoch": 926588,
                        "sender_wallet_id": 1,
                        "deal_id": 167815,
                        "status": "Created",
                        "note": null,
                        "on_chain_status": "StorageDealError",
                        "tx_hash_unlock": null,
                        "unlock_at": 0,
                        "create_at": 1651509304,
                        "update_at": 1651516351,
                        "miner_fid": "t03354"
                    }
                ]
            },
            {
                "source_file_upload_id": 3,
                "car_file_id": 0,
                "file_name": "test20",
                "file_size": 1048671,
                "upload_at": 1651516702,
                "duration": 525,
                "pin_status": "Pinned",
                "payload_cid": "",
                "status": "Pending",
                "token_id": "",
                "mint_address": "",
                "nft_tx_hash": "",
                "offline_deal": []
            },
            {
                "source_file_upload_id": 4,
                "car_file_id": 0,
                "file_name": "test20",
                "file_size": 1048671,
                "upload_at": 1651519341,
                "duration": 525,
                "pin_status": "Pinned",
                "payload_cid": "",
                "status": "Pending",
                "token_id": "",
                "mint_address": "",
                "nft_tx_hash": "",
                "offline_deal": []
            }
        ],
        "total_record_count": 4
    }
}

Get deal details

GET https://api.multichain.storage/api/v1/storage/deal/detail/<deal_id>

This endpoint allows you to get deal details and DAO details.

Path Parameters

Name
Type
Description

source_file_upload_id*

String

{
    "status": "success",
    "code": 200,
    "data": {
        "dao_threshold": 2,
        "source_file_upload_deal": {
            "deal_id": 0,
            "deal_cid": "",
            "message_cid": "",
            "height": 0,
            "piece_cid": "",
            "verified_deal": false,
            "storage_price_per_epoch": 0,
            "signature": "",
            "signature_type": "",
            "created_at": 0,
            "piece_size_format": "",
            "start_height": 0,
            "end_height": 0,
            "client": "",
            "client_collateral_format": "",
            "provider": "",
            "provider_tag": "",
            "verified_provider": 0,
            "provider_collateral_format": "",
            "status": 0,
            "network_name": "",
            "storage_price": 0,
            "ipfs_url": "http://192.168.88.41:5050/ipfs/QmeHeqoByW6dGSba9joVUiPuyVafTm5m1qsEtRcYBmjtdr",
            "file_name": "test20",
            "w_cid": "cff75975-144c-4e10-a1d7-ae0c30c1365cQmeHeqoByW6dGSba9joVUiPuyVafTm5m1qsEtRcYBmjtdr",
            "locked_at": 1651507068,
            "locked_fee": "5364546000000000",
            "unlocked": false
        }
    }
}

get deal logs

GET https://api.multichain.storage/api/v1/storage/deal/log/<offline_deal_id>

This endpoint allows you to get offline deal logs

{
    "status": "success",
    "code": 200,
    "data": {
        "offline_deal_log": [
            {
                "id": 1,
                "offline_deal_id": 1,
                "on_chain_status": "StorageDealCheckForAcceptance",
                "on_chain_message": "Provider state: StorageDealWaitingForData",
                "create_at": 1651507615
            },
            {
                "id": 2,
                "offline_deal_id": 1,
                "on_chain_status": "StorageDealCheckForAcceptance",
                "on_chain_message": "Provider state: StorageDealPublish",
                "create_at": 1651507915
            },
            {
                "id": 3,
                "offline_deal_id": 1,
                "on_chain_status": "StorageDealCheckForAcceptance",
                "on_chain_message": "Provider state: StorageDealUnknown",
                "create_at": 1651509124
            }
        ]
    }
}

Get payment information

GET https://api.multichain.storage/api/v1/billing/deal/lockpayment/info

This endpoint allows you to get the specific payment information by payload CID.

Path Parameters

Name
Type
Description

source_file_upload_id*

String

{
    "status": "success",
    "code": 200,
    "data": {
        "w_cid": "cff75975-144c-4e10-a1d7-ae0c30c1365cQmeHeqoByW6dGSba9joVUiPuyVafTm5m1qsEtRcYBmjtdr",
        "pay_amount": "5364546000000000",
        "pay_tx_hash": "0x864cb80257ea9e51d8ac8bedbd367d69b8effd7278db845d72c38a45b68f5fed",
        "token_address": "0xe11A86849d99F524cAC3E7A0Ec1241828e332C62"
    }
}

Record mint info

POST https://api.multichain.storage/api/v1/storage/mint/info

This endpoint allows to record mint info to mcs database.

Request Body

Name
Type
Description

source_file_upload_id*

String

tx_hash*

String

token_id*

String

mint_address*

String

{
    "status": "success",
    "code": 200,
    "data": {
        "id": 1,
        "source_file_upload_id": 1,
        "nft_tx_hash": "ab",
        "mint_address": "eee",
        "token_id": "e",
        "create_at": 1651502337,
        "update_at": 1651502337
    }
}

Billing history

Get billing history

GET https://mcs-api.filswan.com/api/v1/billing

This endpoint allows you to get the billing history related to current wallet account.

Path Parameters

Name
Type
Description

wallet_address*

String

wallet who pay the file

page_size

Number

valid integer, otherwise 10(default)

page_number

Number

valid integer, otherwise 1(default)

file_name

String

file whose file_name include the parameter

order_by

String

pay_amount,unlock_amount,file_name,pay_at(default),unlock_at,deadline

is_ascend

String

y:ascend, others: descend(default)

{
    "status": "success",
    "code": 200,
    "data": {
        "billing": [
            {
                "pay_id": 1,
                "pay_tx_hash": "0x864cb80257ea9e51d8ac8bedbd367d69b8effd7278db845d72c38a45b68f5fed",
                "pay_amount": "5364546000000000",
                "unlock_amount": "",
                "file_name": "test20",
                "payload_cid": "bafybeicxl5dk3iqejtbbcj2b77icx45unajw4qrakmd5ag46jlnidykk2y",
                "pay_at": 1651507068,
                "unlock_at": 0,
                "deadline": 1652025461,
                "network_name": "polygon.mainnet",
                "token_name": "USDC"
            },
            {
                "pay_id": 2,
                "pay_tx_hash": "0x9d0bd6698230aadfd1c8fafe34db730385173fddeed1275f3c3a93563b16f8c5",
                "pay_amount": "5364546000000000",
                "unlock_amount": "",
                "file_name": "test20",
                "payload_cid": "bafybeicxl5dk3iqejtbbcj2b77icx45unajw4qrakmd5ag46jlnidykk2y",
                "pay_at": 1651509167,
                "unlock_at": 0,
                "deadline": 1652027565,
                "network_name": "polygon.mainnet",
                "token_name": "USDC"
            }
        ],
        "total_record_count": 2
    }
}

Last updated