Create a file

A transaction that creates a new file on a Hedera network. The file is referenced by its file ID which can be obtained from the receipt or record once the transaction reaches consensus on a Hedera network. The file does not have a file name. If the file is too big to create with a single FileCreateTransaction(), the file can be appended with the remaining content multiple times using the FileAppendTransaction().

The maximum file size is 1,024 kB.

Transaction Signing Requirements

  • The key on the file is required to sign the transaction if different than the client operator account key

Transaction Fees

  • Please see the transaction and query fees table for base transaction fee

  • Please use the Hedera fee estimator to estimate your transaction fee cost

File Properties

Methods

new FileCreateTransaction()

The default max transaction fee (1 hbar) is not enough to create a a file. Use setDefaultMaxTransactionFee()to change the default max transaction fee from 1 hbar to 2 hbars.

Java
//Create the transaction
FileCreateTransaction transaction = new FileCreateTransaction()
    .addkey(fileKey) 
    .setContents(fileContents);
        
//Change the default max transaction fee to 2 hbars
FileCreateTransaction modifyMaxTransactionFee = transaction.setMaxTransactionFee(new Hbar(2)); 

//Prepare transaction for signing, sign with the key on the file, sign with the client operator key and submit to a Hedera network
TransactionId txId = modifyMaxTransactionFee.build(client).sign(fileKey).execute(client);

//Request the receipt
TransactionReceipt receipt = txId.getReceipt(client);

//Get the file ID
FileId newFileId = receipt.getFileId();

System.out.println("The new file ID is: " + newFileId);

//v1.3.2
JavaScript
//Create the transaction
const transaction = new FileCreateTransaction()
    .addkey(fileKey) 
    .setContents(fileContents);
        
//Change the default max transaction fee to 2 hbars
const modifyMaxTransactionFee = transaction.setMaxTransactionFee(new Hbar(2)); 

//Prepare transaction for signing, sign with the key on the file, sign with the client operator key and submit to a Hedera network
const txId = await modifyMaxTransactionFee.build(client).sign(fileKey).execute(client);

//Request the receipt
const receipt = await txId.getReceipt(client);

//Get the file ID
const newFileId = receipt.getFileId();

console.log("The new file ID is: " + newFileId);

//v1.4.4

Get transaction values

Java
//Create the transaction
FileCreateTransaction transaction = new FileCreateTransaction()
    .setKeys(key)
    .setContents(fileContents);
        
//Get the file contents
ByteString getContents = transaction.getContents();
JavaScript
//Create the transaction
const transaction = new FileCreateTransaction()
    .setKeys(key)
    .setContents(fileContents);
        
//Get the file contents
const getContents = transaction.getContents();
Go
//Create the transaction
transaction := hedera.NewFileCreateTransaction().
		SetKeys(filePublicKey).
		SetContents([]byte("Hello, World"))

//Get the file contents
getContents := transaction.GetContents()

Last updated