# Transfer

## POST /transfer

> Transfer Metacoin or Token

```json
{"openapi":"3.0.0","info":{"title":"Metacoin API","version":"2.1"},"tags":[{"name":"Transfer","description":"Metacoin or Token transfer"}],"servers":[{"url":"http://testnetrest.metacoin.network:20922","description":"TESTnet API endpoint"},{"url":"https://testnetrest.metacoin.network:20923","description":"TESTnet API endpoint - HTTPS"},{"url":"https://rest.metacoin.network:20923","description":"Mainnet public node"}],"paths":{"/transfer":{"post":{"tags":["Transfer"],"summary":"Transfer Metacoin or Token","parameters":[{"name":"from","in":"query","schema":{"type":"string","format":"Metacoin Address"},"description":"Withdraw address","required":true},{"name":"to","in":"query","schema":{"type":"string","format":"Metacoin Address"},"description":"Deposit Address","required":true},{"name":"token","in":"query","schema":{"type":"integer"},"description":"Token ID, if 0 then Transfer Metacoin","required":true},{"name":"amount","in":"query","description":"Transfer amount Metacoin or Token","schema":{"type":"string","format":"integer"},"required":true},{"name":"checkkey","in":"query","schema":{"type":"string"},"description":"Temporary key for signing - using only transfer, not recording","required":true},{"name":"tags","in":"query","schema":{"type":"string","minLength":0,"maxLength":64},"description":"- Optional An arbitrary string that identifies a reason for payment or a account\n- Up to 64 characters are stored, and characters after 64 characters are not stored.\n"},{"$ref":"#/components/parameters/memo"},{"$ref":"#/components/parameters/unlockdate"},{"name":"signature","in":"query","required":true,"schema":{"type":"string","format":"base64"},"description":"- ECDSA sign for concat from, to, token, amount, checkkey\n- ex) ecdsa_sign(privatekey of from address, from +'|'+ to +'|'+ token +'|'+ amount+'|' + checkkey)\n"}],"responses":{"200":{"description":"successful operation","content":{"*/*":{"schema":{"type":"object","properties":{"transaction_id":{"type":"string","description":"Transaction ID"}}}}}},"400":{"description":"insufficient balance"},"404":{"description":"Address not found"}}}}},"components":{"parameters":{"memo":{"name":"memo","in":"query","schema":{"type":"string","minLength":0,"maxLength":2048},"description":"- It does not play any role. However, it is recorded in the Block and can be referenced to this value.\n- Up to 2048 characters are stored, and characters after 2048 characters are not stored.\n"},"unlockdate":{"name":"unlockdate","in":"query","schema":{"type":"string","format":"int"},"description":"- When transfer is allowed\n- Transfer is possible after the designated time\n"}}}}
```

## POST /multitransfer

> Multi Transfer Metacoin or Token

```json
{"openapi":"3.0.0","info":{"title":"Metacoin API","version":"2.1"},"tags":[{"name":"Transfer","description":"Metacoin or Token transfer"}],"servers":[{"url":"http://testnetrest.metacoin.network:20922","description":"TESTnet API endpoint"},{"url":"https://testnetrest.metacoin.network:20923","description":"TESTnet API endpoint - HTTPS"},{"url":"https://rest.metacoin.network:20923","description":"Mainnet public node"}],"paths":{"/multitransfer":{"post":{"tags":["Transfer"],"summary":"Multi Transfer Metacoin or Token","parameters":[{"name":"from","in":"query","schema":{"type":"string","format":"Metacoin Address"},"description":"Withdraw address","required":true},{"name":"transferlist","in":"query","schema":{"type":"array","format":"json","minItems":1,"maxItems":100,"items":{"type":"object","properties":{"address":{"type":"string","format":"Metacoin Address","description":"- **This value is required.**\n- Metacoin wallet ID\n"},"amount":{"type":"string","format":"integer","description":"- **This value is required.**\n- Payment amount\n- If no reward amount but need memo set \"0\"\n"},"unlockdate":{"type":"string","format":"integer","minLength":0,"description":"- **This value is required.**\n- When transfer is allowed\n- Transfer is possible after the designated time\n- If not specified, enter \"0\"\n"},"tag":{"type":"string","minLength":0,"maxLength":64,"description":"- Optional An arbitrary string that identifies a reason for payment or a account\n- Up to 64 characters are stored, and characters after 64 characters are not stored.\n"},"memo":{"type":"string","minLength":0,"maxLength":2048,"description":"- It does not play any role. However, it is recorded in the Block and can be referenced to this value.\n- Up to 2048 characters are stored, and characters after 2048 characters are not stored.\n"}}}},"description":"receive address, amount list","required":true},{"name":"token","in":"query","schema":{"type":"integer"},"description":"Token ID, if 0 then Transfer Metacoin","required":true},{"name":"checkkey","in":"query","schema":{"type":"string"},"description":"Temporary key for signing - using only transfer, not recording","required":true},{"name":"signature","in":"query","required":true,"schema":{"type":"string","format":"base64"},"description":"- ECDSA sign for concat from, transferlist, token, checkkey\n- ex) ecdsa_sign(privatekey of from address, from +'|'+ json_encode(transferlist) +'|'+ token +'|'+ checkkey)\n"}],"responses":{"200":{"description":"successful operation","content":{"*/*":{"schema":{"type":"object","properties":{"transaction_id":{"type":"string","description":"Transaction ID"}}}}}},"400":{"description":"insufficient balance"},"404":{"description":"Address not found"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://api.metacoin.network/metacoin-api-1/metacoin-api-version-2.1/reference/rest-api-reference/transfer.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
