[MERGE] catch up to master; update readme
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						@@ -1,2 +1,3 @@
 | 
			
		||||
/node_modules/
 | 
			
		||||
*~
 | 
			
		||||
.DS_Store
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										46
									
								
								Gruntfile.js
									
									
									
									
									
								
							
							
						
						@@ -1,46 +0,0 @@
 | 
			
		||||
module.exports = function ( grunt ) {
 | 
			
		||||
 | 
			
		||||
   /** 
 | 
			
		||||
   * Load required Grunt tasks. These are installed based on the versions listed
 | 
			
		||||
   * in `package.json` when you do `npm install` in this directory.
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
   grunt.loadNpmTasks('grunt-contrib-less');
 | 
			
		||||
   grunt.loadNpmTasks('grunt-contrib-watch');
 | 
			
		||||
 | 
			
		||||
	var taskConfig = {
 | 
			
		||||
 | 
			
		||||
		less: {
 | 
			
		||||
			compile: {
 | 
			
		||||
				files: {
 | 
			
		||||
					"www/css/main.css": "www/less/main.less"
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		delta: {
 | 
			
		||||
 | 
			
		||||
	      options: {
 | 
			
		||||
	        livereload: true
 | 
			
		||||
	      },
 | 
			
		||||
 | 
			
		||||
	      /**
 | 
			
		||||
	       * When the LESS files change, we need to compile and minify them.
 | 
			
		||||
	       */
 | 
			
		||||
	      less: {
 | 
			
		||||
	        files: [ 'www/**/*.less' ],
 | 
			
		||||
	        tasks: [ 'less:compile' ],
 | 
			
		||||
	      },
 | 
			
		||||
 | 
			
		||||
	    }
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	grunt.config.init(taskConfig);
 | 
			
		||||
 | 
			
		||||
	grunt.renameTask( 'watch', 'delta' );
 | 
			
		||||
  	grunt.registerTask( 'watch', [ 'less:compile', 'delta' ] );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	grunt.registerTask('default', ['less:compile']);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -1,5 +1,6 @@
 | 
			
		||||
ripple-dev-portal
 | 
			
		||||
=================
 | 
			
		||||
 | 
			
		||||
This master branch of this fork is no longer used. Use the [gh-pages](https://github.com/mDuo13/ripple-dev-portal/tree/gh-pages) branch, or various feature branches, instead.
 | 
			
		||||
The [Ripple Developer Portal](https://dev.ripple.com) is the authoritative source for Ripple documentation, including the `rippled` server, Ripple-REST API, Gatewayd, and other Ripple software.
 | 
			
		||||
 | 
			
		||||
Please contribute pull requests to the **gh-pages** branch with any improvements or revisions.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +0,0 @@
 | 
			
		||||
SERVER_TYPE="nginx"
 | 
			
		||||
BUILD_WEB_ASSETS="true"
 | 
			
		||||
STATIC_SUBDIR="www"
 | 
			
		||||
@@ -1,2 +0,0 @@
 | 
			
		||||
USE_GRUNT="true"
 | 
			
		||||
GRUNT_OPTIONS="" #by default the project compiles itself
 | 
			
		||||
@@ -1,3 +1,7 @@
 | 
			
		||||
# INTRODUCTION #
 | 
			
		||||
 | 
			
		||||
`ripple-rest : v1.1.1`
 | 
			
		||||
 | 
			
		||||
## Ripple-REST API ##
 | 
			
		||||
 | 
			
		||||
The `ripple-rest` API makes it easy to access the Ripple system via a RESTful web interface.  In this section, we will cover the concepts you need to understand, and get you started accessing the API and learning how to use it.
 | 
			
		||||
@@ -6,7 +10,7 @@ While there are other API's to use with Ripple (i.e. Accessing the `rippled` ser
 | 
			
		||||
 | 
			
		||||
Installation instructions and source code can be found in the `ripple-rest` repository <a href="https://github.com/ripple/ripple-rest" target="_blank">here</a>. 
 | 
			
		||||
 | 
			
		||||
Older versions of the `ripple-rest` documentation will archived <a href="https://github.com/ripple/ripple-dev-portal/archive" target="_blank">here</a>.
 | 
			
		||||
Older versions of the `ripple-rest` documentation will archived <a href="https://github.com/ripple/ripple-dev-portal/tree/master/archive" target="_blank">here</a>.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Available API Routes ##
 | 
			
		||||
@@ -640,13 +644,12 @@ __`POST /v1/accounts/{account}/settings`__
 | 
			
		||||
{
 | 
			
		||||
  "secret": "s...",
 | 
			
		||||
  "settings": {
 | 
			
		||||
    "transfer_rate": 100,
 | 
			
		||||
    "transfer_rate": 0,
 | 
			
		||||
    "password_spent": false,
 | 
			
		||||
    "require_destination_tag": false,
 | 
			
		||||
    "require_authorization": false,
 | 
			
		||||
    "disallow_xrp": false,
 | 
			
		||||
    "disable_master": false,
 | 
			
		||||
    "transaction_sequence": 22
 | 
			
		||||
    "disable_master": false
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								assets/img/rippleThrobber.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 734 B  | 
							
								
								
									
										
											BIN
										
									
								
								assets/img/ripple_logo_large.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 20 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/img/ripple_logo_small.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.8 KiB  | 
@@ -1,98 +0,0 @@
 | 
			
		||||
types {
 | 
			
		||||
  text/html                             html htm shtml;
 | 
			
		||||
  text/css                              css;
 | 
			
		||||
  text/cache-manifest                   manifest appcache;
 | 
			
		||||
  text/mathml                           mml;
 | 
			
		||||
  text/plain                            txt;
 | 
			
		||||
  text/vnd.sun.j2me.app-descriptor      jad;
 | 
			
		||||
  text/vnd.wap.wml                      wml;
 | 
			
		||||
  text/x-component                      htc;
 | 
			
		||||
  text/x-vcard                          vcf;
 | 
			
		||||
 | 
			
		||||
  # JavaScript
 | 
			
		||||
  application/javascript                js jsonp;
 | 
			
		||||
  application/json                      json;
 | 
			
		||||
 | 
			
		||||
  # Images
 | 
			
		||||
  image/png                             png;
 | 
			
		||||
  image/svg+xml                         svg svgz;
 | 
			
		||||
  image/tiff                            tif tiff;
 | 
			
		||||
  image/vnd.wap.wbmp                    wbmp;
 | 
			
		||||
  image/webp                            webp;
 | 
			
		||||
  image/x-icon                          ico;
 | 
			
		||||
  image/x-jng                           jng;
 | 
			
		||||
  image/bmp                             bmp;
 | 
			
		||||
  image/gif                             gif;
 | 
			
		||||
  image/jpeg                            jpeg jpg;
 | 
			
		||||
 | 
			
		||||
  application/xml                       rss atom xml rdf;
 | 
			
		||||
  application/java-archive              jar war ear;
 | 
			
		||||
  application/mac-binhex40              hqx;
 | 
			
		||||
  application/pdf                       pdf;
 | 
			
		||||
  application/postscript                ps eps ai;
 | 
			
		||||
  application/rtf                       rtf;
 | 
			
		||||
  application/vnd.wap.wmlc              wmlc;
 | 
			
		||||
  application/xhtml+xml                 xhtml;
 | 
			
		||||
  application/vnd.google-earth.kml+xml  kml;
 | 
			
		||||
  application/vnd.google-earth.kmz      kmz;
 | 
			
		||||
  application/x-7z-compressed           7z;
 | 
			
		||||
  application/x-chrome-extension        crx;
 | 
			
		||||
  application/x-opera-extension         oex;
 | 
			
		||||
  application/x-xpinstall               xpi;
 | 
			
		||||
  application/x-cocoa                   cco;
 | 
			
		||||
  application/x-java-archive-diff       jardiff;
 | 
			
		||||
  application/x-java-jnlp-file          jnlp;
 | 
			
		||||
  application/x-makeself                run;
 | 
			
		||||
  application/x-perl                    pl pm;
 | 
			
		||||
  application/x-pilot                   prc pdb;
 | 
			
		||||
  application/x-rar-compressed          rar;
 | 
			
		||||
  application/x-redhat-package-manager  rpm;
 | 
			
		||||
  application/x-sea                     sea;
 | 
			
		||||
  application/x-shockwave-flash         swf;
 | 
			
		||||
  application/x-stuffit                 sit;
 | 
			
		||||
  application/x-tcl                     tcl tk;
 | 
			
		||||
  application/x-x509-ca-cert            der pem crt;
 | 
			
		||||
  application/zip                       zip;
 | 
			
		||||
 | 
			
		||||
  application/octet-stream              bin exe dll;
 | 
			
		||||
  application/octet-stream              deb;
 | 
			
		||||
  application/octet-stream              dmg;
 | 
			
		||||
  application/octet-stream              iso img;
 | 
			
		||||
  application/octet-stream              msi msp msm;
 | 
			
		||||
  application/octet-stream              safariextz;
 | 
			
		||||
 | 
			
		||||
  # Audio
 | 
			
		||||
  audio/midi                            mid midi kar;
 | 
			
		||||
  audio/mpeg                            mp3;
 | 
			
		||||
  audio/ogg                             oga ogg;
 | 
			
		||||
  audio/mp4                             m4a f4a f4b aac;
 | 
			
		||||
  audio/x-realaudio                     ra;
 | 
			
		||||
  audio/x-wav                           wav;
 | 
			
		||||
 | 
			
		||||
  # Video
 | 
			
		||||
  video/3gpp                            3gpp 3gp;
 | 
			
		||||
  video/mp4                             mp4 m4v f4v f4p;
 | 
			
		||||
  video/mpeg                            mpeg mpg;
 | 
			
		||||
  video/ogg                             ogv;
 | 
			
		||||
  video/quicktime                       mov;
 | 
			
		||||
  video/webm                            webm;
 | 
			
		||||
  video/x-flv                           flv;
 | 
			
		||||
  video/x-mng                           mng;
 | 
			
		||||
  video/x-ms-asf                        asx asf;
 | 
			
		||||
  video/x-ms-wmv                        wmv;
 | 
			
		||||
  video/x-msvideo                       avi;
 | 
			
		||||
 | 
			
		||||
  # Webfonts
 | 
			
		||||
  application/font-woff                 woff;
 | 
			
		||||
  application/vnd.ms-fontobject         eot;
 | 
			
		||||
  application/x-font-ttf                ttf ttc;
 | 
			
		||||
  application/x-font-opentype           otf;
 | 
			
		||||
 | 
			
		||||
  # Microsoft Office
 | 
			
		||||
  application/msword                                                         doc;
 | 
			
		||||
  application/vnd.ms-excel                                                   xls;
 | 
			
		||||
  application/vnd.ms-powerpoint                                              ppt;
 | 
			
		||||
  application/vnd.openxmlformats-officedocument.wordprocessingml.document    docx;
 | 
			
		||||
  application/vnd.openxmlformats-officedocument.spreadsheetml.sheet          xlsx;
 | 
			
		||||
  application/vnd.openxmlformats-officedocument.presentationml.presentation  pptx;
 | 
			
		||||
}
 | 
			
		||||
@@ -1,180 +0,0 @@
 | 
			
		||||
# Set another default user than root for security reasons
 | 
			
		||||
user       www www;
 | 
			
		||||
 | 
			
		||||
# As a thumb rule: One per CPU. If you are serving a large amount
 | 
			
		||||
# of static files, which requires blocking disk reads, you may want
 | 
			
		||||
# to increase this from the number of cpu_cores available on your
 | 
			
		||||
# system.
 | 
			
		||||
#
 | 
			
		||||
# The maximum number of connections for Nginx is calculated by:
 | 
			
		||||
# max_clients = worker_processes * worker_connections
 | 
			
		||||
worker_processes 3;
 | 
			
		||||
daemon off;
 | 
			
		||||
 | 
			
		||||
# Maximum file descriptors that can be opened per process
 | 
			
		||||
# This should be > worker_connections
 | 
			
		||||
worker_rlimit_nofile 8192;
 | 
			
		||||
 | 
			
		||||
events {
 | 
			
		||||
  # When you need > 8000 * cpu_cores connections, you start optimizing
 | 
			
		||||
  # your OS, and this is probably the point at where you hire people
 | 
			
		||||
  # who are smarter than you, this is *a lot* of requests.
 | 
			
		||||
  worker_connections  8000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
http {
 | 
			
		||||
  # Set the mime-types via the mime.types external file
 | 
			
		||||
  include       mime.types;
 | 
			
		||||
 | 
			
		||||
  # And the fallback mime-type
 | 
			
		||||
  default_type  application/octet-stream;
 | 
			
		||||
 | 
			
		||||
  # Hide nginx version
 | 
			
		||||
  server_tokens off;
 | 
			
		||||
 | 
			
		||||
  # ~2 seconds is often enough for HTML/CSS, but connections in
 | 
			
		||||
  # Nginx are cheap, so generally it's safe to increase it
 | 
			
		||||
  keepalive_timeout 20;
 | 
			
		||||
 | 
			
		||||
  sendfile on;
 | 
			
		||||
 | 
			
		||||
  tcp_nopush on; # off may be better for Comet/long-poll stuff
 | 
			
		||||
  tcp_nodelay off; # on may be better for Comet/long-poll stuff
 | 
			
		||||
 | 
			
		||||
  # Enable Gzip:
 | 
			
		||||
  gzip on;
 | 
			
		||||
  gzip_http_version 1.0;
 | 
			
		||||
  gzip_comp_level 5;
 | 
			
		||||
  gzip_min_length 512;
 | 
			
		||||
  gzip_buffers 4 8k;
 | 
			
		||||
  gzip_proxied any;
 | 
			
		||||
  gzip_types
 | 
			
		||||
    # text/html is always compressed by HttpGzipModule
 | 
			
		||||
    text/css
 | 
			
		||||
    text/plain
 | 
			
		||||
    text/x-component
 | 
			
		||||
    application/javascript
 | 
			
		||||
    application/json
 | 
			
		||||
    application/xml
 | 
			
		||||
    application/xhtml+xml
 | 
			
		||||
    application/x-font-ttf
 | 
			
		||||
    application/x-font-opentype
 | 
			
		||||
    application/vnd.ms-fontobject
 | 
			
		||||
    image/svg+xml
 | 
			
		||||
    image/x-icon;
 | 
			
		||||
 | 
			
		||||
  # This should be turned on if you are going to have pre-compressed copies (.gz) of
 | 
			
		||||
  # static files available. If not it should be left off as it will cause extra I/O
 | 
			
		||||
  # for the check. It would be better to enable this in a location {} block for
 | 
			
		||||
  # a specific directory:
 | 
			
		||||
  # gzip_static on;
 | 
			
		||||
 | 
			
		||||
  gzip_disable "msie6";
 | 
			
		||||
  gzip_vary on;
 | 
			
		||||
 | 
			
		||||
  server {
 | 
			
		||||
    listen <%= ENV['PORT'] %>;
 | 
			
		||||
 | 
			
		||||
    # The host name to respond to
 | 
			
		||||
    server_name      dev.ripple.com;
 | 
			
		||||
 | 
			
		||||
    # Path for static files
 | 
			
		||||
    root www;
 | 
			
		||||
 | 
			
		||||
    #Specify a charset
 | 
			
		||||
    charset utf-8;
 | 
			
		||||
 | 
			
		||||
    # Custom 404 page
 | 
			
		||||
    error_page 404 /404.html;
 | 
			
		||||
 | 
			
		||||
    if ($http_x_forwarded_proto != "https") {
 | 
			
		||||
      rewrite ^(.*)$ https://$server_name$1 permanent;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # Expire rules for static content
 | 
			
		||||
 | 
			
		||||
    # Built-in filename-based cache busting
 | 
			
		||||
 | 
			
		||||
    # https://github.com/h5bp/html5-boilerplate/blob/5370479476dceae7cc3ea105946536d6bc0ee468/.htaccess#L403
 | 
			
		||||
    # This will route all requests for /css/style.20120716.css to /css/style.css
 | 
			
		||||
    # Read also this: github.com/h5bp/html5-boilerplate/wiki/cachebusting
 | 
			
		||||
    # This is not included by default, because it'd be better if you use the build
 | 
			
		||||
    # script to manage the file names.
 | 
			
		||||
    location ~* (.+)\.(\d+)\.(js|css|png|jpg|jpeg|gif)$ {
 | 
			
		||||
       try_files $uri $1.$3;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # No default expire rule. This config mirrors that of apache as outlined in the
 | 
			
		||||
    # html5-boilerplate .htaccess file. However, nginx applies rules by location,
 | 
			
		||||
    # the apache rules are defined by type. A concequence of this difference is that
 | 
			
		||||
    # if you use no file extension in the url and serve html, with apache you get an
 | 
			
		||||
    # expire time of 0s, with nginx you'd get an expire header of one month in the
 | 
			
		||||
    # future (if the default expire rule is 1 month). Therefore, do not use a
 | 
			
		||||
    # default expire rule with nginx unless your site is completely static
 | 
			
		||||
 | 
			
		||||
    # cache.appcache, your document html and data
 | 
			
		||||
    location ~* \.(?:manifest|appcache|html|xml|json)$ {
 | 
			
		||||
      expires -1;
 | 
			
		||||
      access_log logs/static.log;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # Feed
 | 
			
		||||
    location ~* \.(?:rss|atom)$ {
 | 
			
		||||
      expires 1h;
 | 
			
		||||
      add_header Cache-Control "public";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # Favicon
 | 
			
		||||
    location ~* \.ico$ {
 | 
			
		||||
      expires 1w;
 | 
			
		||||
      access_log off;
 | 
			
		||||
      add_header Cache-Control "public";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # Media: images, video, audio, HTC
 | 
			
		||||
    location ~* \.(?:jpg|jpeg|gif|png|ico|gz|svg|svgz|mp4|ogg|ogv|webm)$ {
 | 
			
		||||
      expires 1M;
 | 
			
		||||
      access_log off;
 | 
			
		||||
      add_header Cache-Control "public";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # CSS and Javascript
 | 
			
		||||
    location ~* \.(?:css|js)$ {
 | 
			
		||||
      expires 1y;
 | 
			
		||||
      access_log off;
 | 
			
		||||
      add_header Cache-Control "public";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # Cross domain webfont access
 | 
			
		||||
    location ~* \.(ttf|ttc|otf|eot|woff|font.css)$ {
 | 
			
		||||
        add_header "Access-Control-Allow-Origin" "*";
 | 
			
		||||
 | 
			
		||||
        # Also, set cache rules for webfonts.
 | 
			
		||||
        #
 | 
			
		||||
        # See http://wiki.nginx.org/HttpCoreModule#location
 | 
			
		||||
        # And https://github.com/h5bp/server-configs/issues/85
 | 
			
		||||
        # And https://github.com/h5bp/server-configs/issues/86
 | 
			
		||||
        expires 1M;
 | 
			
		||||
        access_log off;
 | 
			
		||||
        add_header Cache-Control "public";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # Force the latest IE version
 | 
			
		||||
    # Use ChromeFrame if it's installed for a better experience for the poor IE folk
 | 
			
		||||
    add_header "X-UA-Compatible" "IE=Edge,chrome=1";
 | 
			
		||||
 | 
			
		||||
    # Prevent clients from accessing hidden files (starting with a dot)
 | 
			
		||||
    location ~* (^|/)\. {
 | 
			
		||||
        return 403;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # Prevent clients from accessing to backup/config/source files
 | 
			
		||||
    location ~* (\.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist)|~)$ {
 | 
			
		||||
        return 403;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # Prevent mobile network providers from modifying your site
 | 
			
		||||
    add_header "Cache-Control" "no-transform";
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										207
									
								
								consensus-whitepaper.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,207 @@
 | 
			
		||||
<!doctype html>
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
  <meta charset='utf-8'>
 | 
			
		||||
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 | 
			
		||||
  <meta name="viewport" content="width=device-width">
 | 
			
		||||
 | 
			
		||||
  <title>Ripple Developer Portal: Consensus Whitepaper</title>
 | 
			
		||||
 | 
			
		||||
  <!-- favicon -->
 | 
			
		||||
  <link rel="icon" href="favicon.ico" type="image/x-icon"> 
 | 
			
		||||
  <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> 
 | 
			
		||||
 | 
			
		||||
  <!-- Flatdoc -->
 | 
			
		||||
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
 | 
			
		||||
  <script src='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/legacy.js'></script>
 | 
			
		||||
  <script src='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/flatdoc.js'></script>
 | 
			
		||||
  
 | 
			
		||||
   <!-- Bootstrap -->
 | 
			
		||||
   <link href="css/bootstrap.min.css" rel="stylesheet">
 | 
			
		||||
   <script src="js/bootstrap.min.js"></script>
 | 
			
		||||
 | 
			
		||||
  <!-- Flatdoc theme -->
 | 
			
		||||
  <!-- 
 | 
			
		||||
<link  href='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/theme-white/style.css' rel='stylesheet'>
 | 
			
		||||
  <script src='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/theme-white/script.js'></script>
 | 
			
		||||
 -->
 | 
			
		||||
 
 | 
			
		||||
	 <!-- Font Awesome -->
 | 
			
		||||
	<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
  <!-- Custom Stylesheet -->
 | 
			
		||||
  <link href='https://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet' type='text/css'>
 | 
			
		||||
  <link href='https://fonts.googleapis.com/css?family=Open+Sans:600italic,400,700,300' rel='stylesheet' type='text/css'>
 | 
			
		||||
  <link  href='https://dev.ripple.com/css/main.css' rel='stylesheet'>
 | 
			
		||||
  <link  href='css/custom.css' rel='stylesheet'>
 | 
			
		||||
  
 | 
			
		||||
	<link rel="shortcut icon" href="favicon.ico?v=2" type="image/x-icon">
 | 
			
		||||
	<link rel="icon" href="favicon.ico?v=2" type="image/x-icon">
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  <!-- start Mixpanel -->
 | 
			
		||||
  <script type="text/javascript">(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src=("https:"===e.location.protocol?"https:":"http:")+'//cdn.mxpnl.com/libs/mixpanel-2.2.min.js';f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f);b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==
 | 
			
		||||
typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" ");for(g=0;g<i.length;g++)f(c,i[g]);
 | 
			
		||||
b._i.push([a,e,d])};b.__SV=1.2}})(document,window.mixpanel||[]);
 | 
			
		||||
mixpanel.init("132d42885e094171f34467fc54da6fab");
 | 
			
		||||
  </script>
 | 
			
		||||
    
 | 
			
		||||
  <script>if (window.location.host == "dev.ripple.com") { mixpanel.track("consensus-whitepaper"); } </script>    
 | 
			
		||||
  <!-- end Mixpanel -->
 | 
			
		||||
 | 
			
		||||
  <!-- start google analytics -->
 | 
			
		||||
  <script>
 | 
			
		||||
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
 | 
			
		||||
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
 | 
			
		||||
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
 | 
			
		||||
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 | 
			
		||||
 | 
			
		||||
  ga('create', 'UA-49188512-1', 'ripple.com');
 | 
			
		||||
  ga('send', 'pageview');
 | 
			
		||||
 | 
			
		||||
  </script>
 | 
			
		||||
  <!-- end google analytics -->  
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  <!-- syntax selection js -->
 | 
			
		||||
  <script src='js/multicodetab.js'></script>
 | 
			
		||||
  <!-- 
 | 
			
		||||
<script>
 | 
			
		||||
    Flatdoc.run({
 | 
			
		||||
      fetcher: Flatdoc.file('ripplerest_api.md')
 | 
			
		||||
    });
 | 
			
		||||
  </script>
 | 
			
		||||
 -->
 | 
			
		||||
  <!-- Temporary shims until I modify the css directly -->
 | 
			
		||||
  <link type='text/css' rel='stylesheet' href='css/mod.css' />
 | 
			
		||||
  <script src='js/expandcode.js'></script>
 | 
			
		||||
  
 | 
			
		||||
</head>
 | 
			
		||||
<body role='flatdoc' class='no-literate'>
 | 
			
		||||
<!--Draft warning would go here-->
 | 
			
		||||
 	<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
        <div class="navbar-header">
 | 
			
		||||
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
 | 
			
		||||
            <span class="sr-only">Toggle navigation</span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
          </button>
 | 
			
		||||
          <a class="navbar-brand" href="https://dev.ripple.com/"><img class="small_logo" src="assets/img/ripple_logo_small.png"></a>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="navbar-collapse collapse">
 | 
			
		||||
          <ul class="nav navbar-nav">
 | 
			
		||||
			<li class="active"><a href="/">Resources</a></li>
 | 
			
		||||
            <li><a href="https://www.bountysource.com/teams/ripple/bounties">Bounties</a></li>
 | 
			
		||||
            <li><a href="https://ripplelabs.atlassian.net/">Bug Tracking</a></li>
 | 
			
		||||
            <li><a href="https://ripple.com/dev/blog/">Dev Blog</a></li>
 | 
			
		||||
            <li><a href="https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98">Forums</a></li>
 | 
			
		||||
            <li class="dropdown">
 | 
			
		||||
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">API Tool <span class="caret"></span></a>
 | 
			
		||||
              <ul class="dropdown-menu" role="menu">
 | 
			
		||||
                <li><a href="ripple-api-tool.html">WebSocket Tool</a></li>
 | 
			
		||||
                <li><a href="rest-api-tool.html">REST Tool</a></li>
 | 
			
		||||
              </ul>
 | 
			
		||||
            </li>
 | 
			
		||||
          </ul>
 | 
			
		||||
          	<div class='right'>
 | 
			
		||||
		 	 <!-- GitHub buttons -->
 | 
			
		||||
		 		 <iframe src="https://dev.ripple.com/vendor/ghbtn.html?user=ripple&repo=ripple-dev-portal&type=watch&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="110" height="20"></iframe>
 | 
			
		||||
			</div>
 | 
			
		||||
        </div><!--/.nav-collapse -->
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
<!-- 
 | 
			
		||||
  <div class="header-subnav-wrapper">
 | 
			
		||||
  <div class='header-subnav navbar-fixed-top'>
 | 
			
		||||
    <ul>
 | 
			
		||||
        <li><a href='?p=introduction' id='subnav-intro'>Introduction</a></li>
 | 
			
		||||
        <li><a href='?p=ripple-rest-api' id='subnav-rest'>Ripple-REST API</a></li>
 | 
			
		||||
        <li><a href='?p=web-sockets-api' id='subnav-websocket'>WebSocket & JSON-RPC APIs</a></li>
 | 
			
		||||
    </ul>
 | 
			
		||||
    <div class='clearer'> </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
 -->
 | 
			
		||||
  <div class='content-root'>
 | 
			
		||||
    <div class='menubar'>
 | 
			
		||||
      <div class='menu section' role='flatdoc-menu'></div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div role='flatdoc-content' class='content'>
 | 
			
		||||
	
 | 
			
		||||
		<p class="download_consensus"><a href="https://ripple.com/files/ripple_consensus_whitepaper.pdf"><i class="fa fa-download"></i> Download the Consensus Whitepaper</a></p>
 | 
			
		||||
		
 | 
			
		||||
		<iframe class="visible-lg-block visible-md-block" src="https://docs.google.com/viewer?url=https%3A%2F%2Fripple.com%2Ffiles%2Fripple_consensus_whitepaper.pdf&embedded=true" width="100%" height="1100" style="border: none;"></iframe>
 | 
			
		||||
	</div>
 | 
			
		||||
  </div>
 | 
			
		||||
<div class="footer">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
        <p class="text-muted">
 | 
			
		||||
        	<div class="row">
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links applications">
 | 
			
		||||
							<li><a href="https://www.rippletrade.com">Ripple Trade</a>
 | 
			
		||||
							<li><a href="https://www.ripplecharts.com">Ripple Charts</a>
 | 
			
		||||
							<li><a href="https://ripple.com/graph">Ripple Graph</a>
 | 
			
		||||
							<li><a href="http://codius.org/">Codius</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links middleware">
 | 
			
		||||
							<li><a href="gatewayd.html">Gatewayd</a>
 | 
			
		||||
							<li><a href="ripple-rest.html">Ripple REST</a>
 | 
			
		||||
							<li><a href="https://github.com/ripple/ripple-lib">Ripple Lib</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links core_network">
 | 
			
		||||
							<li><a href="rippled-apis.html">rippled</a>
 | 
			
		||||
							<li><a href="transactions.html">Transactions</a>
 | 
			
		||||
							<li><a href="consensus-whitepaper.html">Consensus</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
						<ul class="footer_links bounties">
 | 
			
		||||
							<li><a href="https://www.bountysource.com/teams/ripple/bounties">Bounties</a>
 | 
			
		||||
							<li><a href="https://ripplelabs.atlassian.net/">Bug tracking</a>
 | 
			
		||||
							<li><a href="guidelines.html">Brand guidelines</a>
 | 
			
		||||
							<li><a href="https://ripple.com/dev/blog/">Dev blog</a>
 | 
			
		||||
							<li><a href="https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98">Forums</a>
 | 
			
		||||
							<li><a href="https://ripple.com/wiki/Main_Page">Wiki</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-4 mail_chimp">
 | 
			
		||||
				<p>Join the mailing list!</p>
 | 
			
		||||
				<label for="mce-EMAIL">Email address</label>
 | 
			
		||||
					<!-- Begin MailChimp Signup Form -->
 | 
			
		||||
						<link href="//cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
 | 
			
		||||
						<style type="text/css">
 | 
			
		||||
							#mc_embed_signup{clear:left; font:14px; }
 | 
			
		||||
	
 | 
			
		||||
						</style>
 | 
			
		||||
						<div id="mc_embed_signup">
 | 
			
		||||
						<form action="//ripple.us4.list-manage.com/subscribe/post?u=245dbc1c47849f034390dc5bf&id=4dfbe160d0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
 | 
			
		||||
	
 | 
			
		||||
							<input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="" required>
 | 
			
		||||
							<!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
 | 
			
		||||
							<div style="position: absolute; left: -5000px; top: -50px;"><input type="text" name="b_245dbc1c47849f034390dc5bf_4dfbe160d0" tabindex="-1" value=""></div>
 | 
			
		||||
							<input type="submit" value="Submit" name="subscribe" id="mc-embedded-subscribe" class="button btn btn-primary">
 | 
			
		||||
						</form>
 | 
			
		||||
						</div>
 | 
			
		||||
 | 
			
		||||
					<!--End mc_embed_signup-->
 | 
			
		||||
				</div>
 | 
			
		||||
      		</div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										457
									
								
								css/api-style.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,457 @@
 | 
			
		||||
* {
 | 
			
		||||
  box-sizing:border-box;
 | 
			
		||||
}
 | 
			
		||||
body {
 | 
			
		||||
  background:#fafafa;
 | 
			
		||||
  background-image:url('img/bg-gray.png') repeat scroll center top transparent;
 | 
			
		||||
  color:#5b5b5b;
 | 
			
		||||
  font-family:'open sans';
 | 
			
		||||
  margin:0;
 | 
			
		||||
  padding:0;
 | 
			
		||||
}
 | 
			
		||||
h1 {
 | 
			
		||||
  font-size:35px;
 | 
			
		||||
  font-weight:300;
 | 
			
		||||
  text-align:center;
 | 
			
		||||
  border-bottom:1px solid #aaa;
 | 
			
		||||
  padding:0 0 20px 0;
 | 
			
		||||
  margin:30px 0;
 | 
			
		||||
  line-height:40px;
 | 
			
		||||
}
 | 
			
		||||
ul {
 | 
			
		||||
  list-style-type:none;
 | 
			
		||||
  padding:0;
 | 
			
		||||
}
 | 
			
		||||
h2 {
 | 
			
		||||
  font-family:'open sans';
 | 
			
		||||
  font-size:36px;
 | 
			
		||||
  font-weight:300;
 | 
			
		||||
  color:#173847;
 | 
			
		||||
}
 | 
			
		||||
#wrapper {
 | 
			
		||||
  padding:0 20px;
 | 
			
		||||
}
 | 
			
		||||
#command_wrapper {
 | 
			
		||||
  display:table;
 | 
			
		||||
  width:100%;
 | 
			
		||||
  padding:0;
 | 
			
		||||
  margin:0;
 | 
			
		||||
  border-spacing:0;
 | 
			
		||||
}
 | 
			
		||||
#command_wrapper > * {
 | 
			
		||||
  vertical-align:top;
 | 
			
		||||
  display:table-cell;
 | 
			
		||||
}
 | 
			
		||||
#command_list {
 | 
			
		||||
  display:table-cell;
 | 
			
		||||
  list-style-type:none;
 | 
			
		||||
  padding:36px 0 0 0;
 | 
			
		||||
  margin:0;
 | 
			
		||||
  height:100%;
 | 
			
		||||
}
 | 
			
		||||
#command_list li {
 | 
			
		||||
  padding:4px 12px;
 | 
			
		||||
  display:block;
 | 
			
		||||
  width:200px;
 | 
			
		||||
  cursor:pointer;
 | 
			
		||||
  border-radius:28px;
 | 
			
		||||
  box-sizing:border-box;
 | 
			
		||||
  user-select:none;
 | 
			
		||||
  -webkit-user-select:none;
 | 
			
		||||
  -moz-user-select:none;
 | 
			
		||||
  color:#0088CC;
 | 
			
		||||
}
 | 
			
		||||
#command_list li:hover {
 | 
			
		||||
  color:#444;
 | 
			
		||||
}
 | 
			
		||||
#command_list li.selected {
 | 
			
		||||
  color:#444;
 | 
			
		||||
  background:#f0f0f0;
 | 
			
		||||
}
 | 
			
		||||
#command_table {
 | 
			
		||||
  height:100%;
 | 
			
		||||
}
 | 
			
		||||
#io_wrapper {
 | 
			
		||||
  float:right;
 | 
			
		||||
  display:table;
 | 
			
		||||
  height:500px;
 | 
			
		||||
  padding:0;
 | 
			
		||||
  table-layout:fixed;
 | 
			
		||||
  border-spacing:24px 0;
 | 
			
		||||
  width:96%;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
}
 | 
			
		||||
#io_wrapper > div {
 | 
			
		||||
  display:table-row;
 | 
			
		||||
  width:100%;
 | 
			
		||||
  margin:0;
 | 
			
		||||
  padding:0;
 | 
			
		||||
}
 | 
			
		||||
#response, #response_body {
 | 
			
		||||
  min-height:100px;
 | 
			
		||||
  border-top-left-radius:0px !important;
 | 
			
		||||
  border-top-right-radius:0px !important;
 | 
			
		||||
}
 | 
			
		||||
#input {
 | 
			
		||||
  width: 30%;
 | 
			
		||||
}
 | 
			
		||||
#output {
 | 
			
		||||
  width: 60%;
 | 
			
		||||
}
 | 
			
		||||
h3 {
 | 
			
		||||
  margin:16px 0;
 | 
			
		||||
  font-family:'open sans';
 | 
			
		||||
  font-weight:300;
 | 
			
		||||
  font-size:24.5px;
 | 
			
		||||
}
 | 
			
		||||
#status {
 | 
			
		||||
  height:120px;
 | 
			
		||||
  overflow:auto;
 | 
			
		||||
  margin-bottom:10px;
 | 
			
		||||
  border-radius:4px;
 | 
			
		||||
  border:1px dotted #aaa;
 | 
			
		||||
  background:#f5f5f5;
 | 
			
		||||
  resize:vertical;
 | 
			
		||||
  display:none;
 | 
			
		||||
}
 | 
			
		||||
#status * {
 | 
			
		||||
  resize: none;
 | 
			
		||||
}
 | 
			
		||||
#status div.result {
 | 
			
		||||
  border-bottom:1px dotted #aaa;
 | 
			
		||||
  padding:5px 0;
 | 
			
		||||
}
 | 
			
		||||
#status div.result p {
 | 
			
		||||
  font-size:14px;
 | 
			
		||||
}
 | 
			
		||||
#status div.result div.key {
 | 
			
		||||
  padding:2px 2px 2px 6px;
 | 
			
		||||
}
 | 
			
		||||
#info span.command_name {
 | 
			
		||||
  display:inline-block;
 | 
			
		||||
}
 | 
			
		||||
#info span.timestamp, #info span.sizestamp {
 | 
			
		||||
  display:inline-block;
 | 
			
		||||
  margin:0 5px;
 | 
			
		||||
  color:#aaa;
 | 
			
		||||
}
 | 
			
		||||
#response.success {
 | 
			
		||||
  border-top:4px solid #B5CAA0;
 | 
			
		||||
}
 | 
			
		||||
#response.error {
 | 
			
		||||
  border-top: 4px solid #E83015;
 | 
			
		||||
}
 | 
			
		||||
#response div.result {
 | 
			
		||||
  border-bottom:1px dotted #aaa;
 | 
			
		||||
  overflow:auto;
 | 
			
		||||
}
 | 
			
		||||
#response:focus, #status:focus {
 | 
			
		||||
  outline:none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#request_options > div {
 | 
			
		||||
/*  float:right;
 | 
			
		||||
  margin:0;
 | 
			
		||||
  width:200px;
 | 
			
		||||
  color:#fff;
 | 
			
		||||
 /* 
 | 
			
		||||
 background-image:linear-gradient(283deg, rgba(255,255,255,0.1) 50%, transparent 55%), linear-gradient(top, rgba(255,255,255,0.15), transparent);
 | 
			
		||||
  background-image:-webkit-linear-gradient(283deg, rgba(255,255,255,0.1) 50%, transparent 55%), -webkit-linear-gradient(top, rgba(255,255,255,0.15), transparent);
 | 
			
		||||
  background-image:-moz-linear-gradient(283deg, rgba(255,255,255,0.1) 50%, transparent 55%), -moz-linear-gradient(top, rgba(255,255,255,0.15), transparent);
 | 
			
		||||
  background-image:linear-gradient(283deg, rgba(255,255,255,0.1) 50%, transparent 55%), linear-gradient(top, rgba(255,255,255,0.15), transparent);
 | 
			
		||||
  background-image:-webkit-linear-gradient(283deg, rgba(255,255,255,0.1) 50%, transparent 55%), -webkit-linear-gradient(top, rgba(255,255,255,0.15), transparent);
 | 
			
		||||
  background-image:-moz-linear-gradient(283deg, rgba(255,255,255,0.1) 50%, transparent 55%), -moz-linear-gradient(top, rgba(255,255,255,0.15), transparent);
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
  border-radius:4px;
 | 
			
		||||
  border-bottom:1px solid #fff;
 | 
			
		||||
  background-color: #346AA9;
 | 
			
		||||
  font-weight:300;
 | 
			
		||||
  font-size:16px;
 | 
			
		||||
/*   line-height:50px; 
 | 
			
		||||
  text-align:center;
 | 
			
		||||
  cursor:default;
 | 
			
		||||
 | 
			
		||||
  user-select:none;
 | 
			
		||||
  -webkit-user-select:none;
 | 
			
		||||
  -moz-user-select:none;
 | 
			
		||||
*/
 | 
			
		||||
  margin-top: 5px;
 | 
			
		||||
}
 | 
			
		||||
#request_button {
 | 
			
		||||
  background-color: #346AA9;
 | 
			
		||||
}
 | 
			
		||||
#request_button.depressed {
 | 
			
		||||
  background:#295F7A;
 | 
			
		||||
}
 | 
			
		||||
#sign_button {
 | 
			
		||||
  display:none;
 | 
			
		||||
  background:#42602D;
 | 
			
		||||
  margin-right:22px !important;
 | 
			
		||||
}
 | 
			
		||||
#sign_button.depressed {
 | 
			
		||||
  background:#304621;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.obscured {
 | 
			
		||||
  opacity:.7;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
::-webkit-scrollbar {
 | 
			
		||||
  width: 8px;
 | 
			
		||||
  height: 8px;
 | 
			
		||||
  cursor:default;
 | 
			
		||||
}
 | 
			
		||||
::-webkit-scrollbar-thumb {
 | 
			
		||||
  background:#aaa;
 | 
			
		||||
  border-radius: 4px;
 | 
			
		||||
  cursor:pointer;
 | 
			
		||||
}
 | 
			
		||||
#online_state {
 | 
			
		||||
  position:absolute;
 | 
			
		||||
  top:100px;
 | 
			
		||||
/*   right:20px; */
 | 
			
		||||
  line-height:50px;
 | 
			
		||||
  font-size:14px;
 | 
			
		||||
  font-style:italic;
 | 
			
		||||
}
 | 
			
		||||
#online_state.disconnected {
 | 
			
		||||
  color:#E83015;
 | 
			
		||||
}
 | 
			
		||||
#online_state.connecting { }
 | 
			
		||||
#online_state.connected {
 | 
			
		||||
  color: #4A593D;
 | 
			
		||||
}
 | 
			
		||||
#invalid {
 | 
			
		||||
  display:none;
 | 
			
		||||
  color:#E83015;
 | 
			
		||||
  font-family:'open sans';
 | 
			
		||||
  font-size:14px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#pause_button {
 | 
			
		||||
  display:inline-block;
 | 
			
		||||
  position:relative;
 | 
			
		||||
  right:-12px;
 | 
			
		||||
  top:3px;
 | 
			
		||||
  background:#aaa;
 | 
			
		||||
  color:#fff;
 | 
			
		||||
  font-size:10px;
 | 
			
		||||
  cursor:pointer;
 | 
			
		||||
  font-weight:bold;
 | 
			
		||||
  letter-spacing:-5px;
 | 
			
		||||
  text-align:center;
 | 
			
		||||
  width:28px;
 | 
			
		||||
  padding-right:6px;
 | 
			
		||||
  padding-bottom:2px;
 | 
			
		||||
  border-radius:4px;
 | 
			
		||||
  vertical-align:top;
 | 
			
		||||
  display:none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul.toolbar {
 | 
			
		||||
  background:#f5f5f5;
 | 
			
		||||
  font-size:.8em;
 | 
			
		||||
  border-radius:4px;
 | 
			
		||||
}
 | 
			
		||||
ul.toolbar li {
 | 
			
		||||
  display:inline-block;
 | 
			
		||||
  width:50px;
 | 
			
		||||
  text-align:center;
 | 
			
		||||
  color:#0088CC;
 | 
			
		||||
  line-height:28px;
 | 
			
		||||
  padding:0 8px;
 | 
			
		||||
  cursor:pointer;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* JSON syntax highlighting */
 | 
			
		||||
#request, #request_body,
 | 
			
		||||
#response, #response_body,
 | 
			
		||||
#rest_url_wrapper {
 | 
			
		||||
  font-family:'inconsolata',monospace;
 | 
			
		||||
  font-size:13px;
 | 
			
		||||
  line-height:20px;
 | 
			
		||||
  padding:6px;
 | 
			
		||||
  background:#f5f5f5;
 | 
			
		||||
  border:1px dotted #aaa;
 | 
			
		||||
  border-radius:4px;
 | 
			
		||||
  cursor:text;
 | 
			
		||||
  overflow:auto;
 | 
			
		||||
}
 | 
			
		||||
#status > div {
 | 
			
		||||
  border-bottom:1px dotted #aaa;
 | 
			
		||||
}
 | 
			
		||||
#description {
 | 
			
		||||
  margin-top:10px;
 | 
			
		||||
  padding:15px;
 | 
			
		||||
  border-radiuS:4px;
 | 
			
		||||
  font-size:16px;
 | 
			
		||||
  color:#3a87ad;
 | 
			
		||||
  background:#d9edf7;
 | 
			
		||||
  border:1px dotted #3a87ad;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*#selected_command {
 | 
			
		||||
  margin-top:-32px;
 | 
			
		||||
}*/
 | 
			
		||||
 | 
			
		||||
#selected_command a {
 | 
			
		||||
  text-decoration:none;
 | 
			
		||||
  color:#3a87ad;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#tooltip {
 | 
			
		||||
  position:absolute;
 | 
			
		||||
  display:none;
 | 
			
		||||
  padding:8px 16px;
 | 
			
		||||
  border-radius:4px;
 | 
			
		||||
  background:#FBEFD5;
 | 
			
		||||
  border:1px dotted #7A6943;
 | 
			
		||||
  color:#7A6943;
 | 
			
		||||
  font-family:'open sans';
 | 
			
		||||
  font-weight:300;
 | 
			
		||||
  font-size:14px;
 | 
			
		||||
  line-height:1.5em;
 | 
			
		||||
  max-width:300px;
 | 
			
		||||
  z-index:99;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.CodeMirror {
 | 
			
		||||
  background:inherit !important;
 | 
			
		||||
  color:inherit !important;
 | 
			
		||||
  height: auto !important;
 | 
			
		||||
  line-height:1.3 !important;
 | 
			
		||||
  font-size:14px !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.CodeMirror-selected {
 | 
			
		||||
  background:#ddd !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* JSON property */
 | 
			
		||||
span.cm-string:first-of-type {
 | 
			
		||||
  font-weight:bold !important;
 | 
			
		||||
  color:#574C57 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
span.cm-string {
 | 
			
		||||
  color:#516E41 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
span.cm-number {
 | 
			
		||||
  color:#F05E1C !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
span.cm-atom {
 | 
			
		||||
  color:#66327C !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Progress spinner animation */
 | 
			
		||||
@keyframes rotating {
 | 
			
		||||
    from {
 | 
			
		||||
        transform: rotate(0deg);
 | 
			
		||||
        -ms-transform: rotate(0deg);
 | 
			
		||||
        -moz-transform: rotate(0deg);
 | 
			
		||||
        -webkit-transform: rotate(0deg);
 | 
			
		||||
        -o-transform: rotate(0deg);
 | 
			
		||||
    }
 | 
			
		||||
    to {
 | 
			
		||||
        transform: rotate(360deg);
 | 
			
		||||
        -ms-transform: rotate(360deg);
 | 
			
		||||
        -moz-transform: rotate(360deg);
 | 
			
		||||
        -webkit-transform: rotate(360deg);
 | 
			
		||||
        -o-transform: rotate(360deg);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@-webkit-keyframes rotating /* Safari and Chrome */ {
 | 
			
		||||
    from {
 | 
			
		||||
        transform: rotate(0deg);
 | 
			
		||||
        -ms-transform: rotate(0deg);
 | 
			
		||||
        -moz-transform: rotate(0deg);
 | 
			
		||||
        -webkit-transform: rotate(0deg);
 | 
			
		||||
        -o-transform: rotate(0deg);
 | 
			
		||||
    }
 | 
			
		||||
    to {
 | 
			
		||||
        transform: rotate(360deg);
 | 
			
		||||
        -ms-transform: rotate(360deg);
 | 
			
		||||
        -moz-transform: rotate(360deg);
 | 
			
		||||
        -webkit-transform: rotate(360deg);
 | 
			
		||||
        -o-transform: rotate(360deg);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.loader {
 | 
			
		||||
    -webkit-animation: rotating 1s linear infinite;
 | 
			
		||||
    -moz-animation: rotating 1s linear infinite;
 | 
			
		||||
    -ms-animation: rotating 1s linear infinite;
 | 
			
		||||
    -o-animation: rotating 1s linear infinite;
 | 
			
		||||
    animation: rotating 1s linear infinite;
 | 
			
		||||
    width: 25px;height:25px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Rest-tool-specific stuff */
 | 
			
		||||
 | 
			
		||||
#rest_method {
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
    padding: 6px;
 | 
			
		||||
    vertical-align: middle;
 | 
			
		||||
    border: 1px dotted #aaa;
 | 
			
		||||
    border-radius: 4px;
 | 
			
		||||
    -moz-border-radius: 4px;
 | 
			
		||||
    -webkit-border-radius: 4px;
 | 
			
		||||
    margin-bottom: 3px;
 | 
			
		||||
    background-color: #c7254e;
 | 
			
		||||
    color: white;
 | 
			
		||||
    appearance: none;
 | 
			
		||||
    -moz-appearance: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#rest_url_wrapper {
 | 
			
		||||
    font-family: sans-serif;
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
    text-indent: -2em;
 | 
			
		||||
    padding-left: 2.5em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#rest_url {
 | 
			
		||||
    width: auto;
 | 
			
		||||
    border: 0;
 | 
			
		||||
    background: none;
 | 
			
		||||
    font-size:13px;
 | 
			
		||||
    vertical-align: top;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#rest_url .editable {
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    font-family:'inconsolata',monospace;
 | 
			
		||||
    border-width: 0 0px 1px 0;
 | 
			
		||||
    border-style: dotted;
 | 
			
		||||
    border-color: #aaa;
 | 
			
		||||
    min-width: 5em;
 | 
			
		||||
    background: none;
 | 
			
		||||
    vertical-align: top;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#rest_url .non_editable {
 | 
			
		||||
    vertical-align: top;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#rest_url_wrapper p {
 | 
			
		||||
    margin: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#rest_url div {
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#rest_url input {
 | 
			
		||||
    margin: 0 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#rest_url div label, 
 | 
			
		||||
#rest_url div input {
 | 
			
		||||
    display: block;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								css/api-style.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										5
									
								
								css/bootstrap.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										263
									
								
								css/codemirror.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,263 @@
 | 
			
		||||
/* BASICS */
 | 
			
		||||
 | 
			
		||||
.CodeMirror {
 | 
			
		||||
  /* Set height, width, borders, and global font properties here */
 | 
			
		||||
  font-family: monospace;
 | 
			
		||||
  height: 300px;
 | 
			
		||||
}
 | 
			
		||||
.CodeMirror-scroll {
 | 
			
		||||
  /* Set scrolling behaviour here */
 | 
			
		||||
  overflow: auto;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* PADDING */
 | 
			
		||||
 | 
			
		||||
.CodeMirror-lines {
 | 
			
		||||
  padding: 4px 0; /* Vertical padding around content */
 | 
			
		||||
}
 | 
			
		||||
.CodeMirror pre {
 | 
			
		||||
  padding: 0 4px; /* Horizontal padding of content */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
 | 
			
		||||
  background-color: white; /* The little square between H and V scrollbars */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* GUTTER */
 | 
			
		||||
 | 
			
		||||
.CodeMirror-gutters {
 | 
			
		||||
  border-right: 1px solid #ddd;
 | 
			
		||||
  background-color: #f7f7f7;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
.CodeMirror-linenumbers {}
 | 
			
		||||
.CodeMirror-linenumber {
 | 
			
		||||
  padding: 0 3px 0 5px;
 | 
			
		||||
  min-width: 20px;
 | 
			
		||||
  text-align: right;
 | 
			
		||||
  color: #999;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* CURSOR */
 | 
			
		||||
 | 
			
		||||
.CodeMirror div.CodeMirror-cursor {
 | 
			
		||||
  border-left: 1px solid black;
 | 
			
		||||
  z-index: 3;
 | 
			
		||||
}
 | 
			
		||||
/* Shown when moving in bi-directional text */
 | 
			
		||||
.CodeMirror div.CodeMirror-secondarycursor {
 | 
			
		||||
  border-left: 1px solid silver;
 | 
			
		||||
}
 | 
			
		||||
.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor {
 | 
			
		||||
  width: auto;
 | 
			
		||||
  border: 0;
 | 
			
		||||
  background: #7e7;
 | 
			
		||||
  z-index: 1;
 | 
			
		||||
}
 | 
			
		||||
/* Can style cursor different in overwrite (non-insert) mode */
 | 
			
		||||
.CodeMirror div.CodeMirror-cursor.CodeMirror-overwrite {}
 | 
			
		||||
 | 
			
		||||
.cm-tab { display: inline-block; }
 | 
			
		||||
 | 
			
		||||
/* DEFAULT THEME */
 | 
			
		||||
 | 
			
		||||
.cm-s-default .cm-keyword {color: #708;}
 | 
			
		||||
.cm-s-default .cm-atom {color: #219;}
 | 
			
		||||
.cm-s-default .cm-number {color: #164;}
 | 
			
		||||
.cm-s-default .cm-def {color: #00f;}
 | 
			
		||||
.cm-s-default .cm-variable {color: black;}
 | 
			
		||||
.cm-s-default .cm-variable-2 {color: #05a;}
 | 
			
		||||
.cm-s-default .cm-variable-3 {color: #085;}
 | 
			
		||||
.cm-s-default .cm-property {color: black;}
 | 
			
		||||
.cm-s-default .cm-operator {color: black;}
 | 
			
		||||
.cm-s-default .cm-comment {color: #a50;}
 | 
			
		||||
.cm-s-default .cm-string {color: #a11;}
 | 
			
		||||
.cm-s-default .cm-string-2 {color: #f50;}
 | 
			
		||||
.cm-s-default .cm-meta {color: #555;}
 | 
			
		||||
.cm-s-default .cm-qualifier {color: #555;}
 | 
			
		||||
.cm-s-default .cm-builtin {color: #30a;}
 | 
			
		||||
.cm-s-default .cm-bracket {color: #997;}
 | 
			
		||||
.cm-s-default .cm-tag {color: #170;}
 | 
			
		||||
.cm-s-default .cm-attribute {color: #00c;}
 | 
			
		||||
.cm-s-default .cm-header {color: blue;}
 | 
			
		||||
.cm-s-default .cm-quote {color: #090;}
 | 
			
		||||
.cm-s-default .cm-hr {color: #999;}
 | 
			
		||||
.cm-s-default .cm-link {color: #00c;}
 | 
			
		||||
 | 
			
		||||
.cm-negative {color: #d44;}
 | 
			
		||||
.cm-positive {color: #292;}
 | 
			
		||||
.cm-header, .cm-strong {font-weight: bold;}
 | 
			
		||||
.cm-em {font-style: italic;}
 | 
			
		||||
.cm-link {text-decoration: underline;}
 | 
			
		||||
 | 
			
		||||
.cm-s-default .cm-error {color: #f00;}
 | 
			
		||||
.cm-invalidchar {color: #f00;}
 | 
			
		||||
 | 
			
		||||
div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
 | 
			
		||||
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
 | 
			
		||||
.CodeMirror-activeline-background {background: #e8f2ff;}
 | 
			
		||||
 | 
			
		||||
/* STOP */
 | 
			
		||||
 | 
			
		||||
/* The rest of this file contains styles related to the mechanics of
 | 
			
		||||
   the editor. You probably shouldn't touch them. */
 | 
			
		||||
 | 
			
		||||
.CodeMirror {
 | 
			
		||||
  line-height: 1;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
  background: white;
 | 
			
		||||
  color: black;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.CodeMirror-scroll {
 | 
			
		||||
  /* 30px is the magic margin used to hide the element's real scrollbars */
 | 
			
		||||
  /* See overflow: hidden in .CodeMirror */
 | 
			
		||||
  margin-bottom: -30px; margin-right: -30px;
 | 
			
		||||
  padding-bottom: 30px; padding-right: 30px;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  outline: none; /* Prevent dragging from highlighting the element */
 | 
			
		||||
  position: relative;
 | 
			
		||||
  -moz-box-sizing: content-box;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
}
 | 
			
		||||
.CodeMirror-sizer {
 | 
			
		||||
  position: relative;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* The fake, visible scrollbars. Used to force redraw during scrolling
 | 
			
		||||
   before actuall scrolling happens, thus preventing shaking and
 | 
			
		||||
   flickering artifacts. */
 | 
			
		||||
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  z-index: 6;
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
.CodeMirror-vscrollbar {
 | 
			
		||||
  right: 0; top: 0;
 | 
			
		||||
  overflow-x: hidden;
 | 
			
		||||
  overflow-y: scroll;
 | 
			
		||||
}
 | 
			
		||||
.CodeMirror-hscrollbar {
 | 
			
		||||
  bottom: 0; left: 0;
 | 
			
		||||
  overflow-y: hidden;
 | 
			
		||||
  overflow-x: scroll;
 | 
			
		||||
}
 | 
			
		||||
.CodeMirror-scrollbar-filler {
 | 
			
		||||
  right: 0; bottom: 0;
 | 
			
		||||
}
 | 
			
		||||
.CodeMirror-gutter-filler {
 | 
			
		||||
  left: 0; bottom: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.CodeMirror-gutters {
 | 
			
		||||
  position: absolute; left: 0; top: 0;
 | 
			
		||||
  padding-bottom: 30px;
 | 
			
		||||
  z-index: 3;
 | 
			
		||||
}
 | 
			
		||||
.CodeMirror-gutter {
 | 
			
		||||
  white-space: normal;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  -moz-box-sizing: content-box;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
  padding-bottom: 30px;
 | 
			
		||||
  margin-bottom: -32px;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  /* Hack to make IE7 behave */
 | 
			
		||||
  *zoom:1;
 | 
			
		||||
  *display:inline;
 | 
			
		||||
}
 | 
			
		||||
.CodeMirror-gutter-elt {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  cursor: default;
 | 
			
		||||
  z-index: 4;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.CodeMirror-lines {
 | 
			
		||||
  cursor: text;
 | 
			
		||||
}
 | 
			
		||||
.CodeMirror pre {
 | 
			
		||||
  /* Reset some styles that the rest of the page might have set */
 | 
			
		||||
  -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
 | 
			
		||||
  border-width: 0;
 | 
			
		||||
  background: transparent;
 | 
			
		||||
  font-family: inherit;
 | 
			
		||||
  font-size: inherit;
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  white-space: pre;
 | 
			
		||||
  word-wrap: normal;
 | 
			
		||||
  line-height: inherit;
 | 
			
		||||
  color: inherit;
 | 
			
		||||
  z-index: 2;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  overflow: visible;
 | 
			
		||||
}
 | 
			
		||||
.CodeMirror-wrap pre {
 | 
			
		||||
  word-wrap: break-word;
 | 
			
		||||
  white-space: pre-wrap;
 | 
			
		||||
  word-break: normal;
 | 
			
		||||
}
 | 
			
		||||
.CodeMirror-code pre {
 | 
			
		||||
  border-right: 30px solid transparent;
 | 
			
		||||
  width: -webkit-fit-content;
 | 
			
		||||
  width: -moz-fit-content;
 | 
			
		||||
  width: fit-content;
 | 
			
		||||
}
 | 
			
		||||
.CodeMirror-wrap .CodeMirror-code pre {
 | 
			
		||||
  border-right: none;
 | 
			
		||||
  width: auto;
 | 
			
		||||
}
 | 
			
		||||
.CodeMirror-linebackground {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  left: 0; right: 0; top: 0; bottom: 0;
 | 
			
		||||
  z-index: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.CodeMirror-linewidget {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  z-index: 2;
 | 
			
		||||
  overflow: auto;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.CodeMirror-widget {}
 | 
			
		||||
 | 
			
		||||
.CodeMirror-wrap .CodeMirror-scroll {
 | 
			
		||||
  overflow-x: hidden;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.CodeMirror-measure {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 0;
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
  visibility: hidden;
 | 
			
		||||
}
 | 
			
		||||
.CodeMirror-measure pre { position: static; }
 | 
			
		||||
 | 
			
		||||
.CodeMirror div.CodeMirror-cursor {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  visibility: hidden;
 | 
			
		||||
  border-right: none;
 | 
			
		||||
  width: 0;
 | 
			
		||||
}
 | 
			
		||||
.CodeMirror-focused div.CodeMirror-cursor {
 | 
			
		||||
  visibility: visible;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.CodeMirror-selected { background: #d9d9d9; }
 | 
			
		||||
.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
 | 
			
		||||
 | 
			
		||||
.cm-searching {
 | 
			
		||||
  background: #ffa;
 | 
			
		||||
  background: rgba(255, 255, 0, .4);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* IE7 hack to prevent it from returning funny offsetTops on the spans */
 | 
			
		||||
.CodeMirror span { *vertical-align: text-bottom; }
 | 
			
		||||
 | 
			
		||||
@media print {
 | 
			
		||||
  /* Hide the cursor when printing */
 | 
			
		||||
  .CodeMirror div.CodeMirror-cursor {
 | 
			
		||||
    visibility: hidden;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										226
									
								
								css/custom-landing.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,226 @@
 | 
			
		||||
/************
 | 
			
		||||
  global
 | 
			
		||||
*********** */
 | 
			
		||||
 | 
			
		||||
body {
 | 
			
		||||
	background-color: #f5f5f5;
 | 
			
		||||
	font-family: 'Open Sans', sans-serif;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.wrapper {
 | 
			
		||||
	background-color: #fff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
a:hover {
 | 
			
		||||
	text-decoration: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.resources a {
 | 
			
		||||
    white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/************
 | 
			
		||||
  jumbotron
 | 
			
		||||
*********** */
 | 
			
		||||
 | 
			
		||||
.jumbotron {
 | 
			
		||||
 	margin-top: 50px;
 | 
			
		||||
 	background: #f5f5f5;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.jumbotron p {
 | 
			
		||||
 	font-size: 14px;
 | 
			
		||||
	font-weight: 400; 	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.main_callout {
 | 
			
		||||
	padding-top:10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.join {
 | 
			
		||||
	font-weight: 500 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
img.large_logo {
 | 
			
		||||
	padding: 10px 20px 10px 10px;
 | 
			
		||||
	width: 100%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.jumbotron p.api_btn {
 | 
			
		||||
	/* text-align: center; 
 | 
			
		||||
	padding: 20px;*/
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.jumbotron h4 {
 | 
			
		||||
	font-weight: 800;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
button.api {
 | 
			
		||||
	padding: 6px 30px;
 | 
			
		||||
	font-size: 24px;
 | 
			
		||||
	letter-spacing: 2px;
 | 
			
		||||
	background-color: #346AA9;
 | 
			
		||||
	margin-top:20px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
button.api:hover {
 | 
			
		||||
background-color: #428bca;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@media (min-width: 992px) {
 | 
			
		||||
 | 
			
		||||
	.jumbotron .col-md-6 {
 | 
			
		||||
		padding-left: 60px;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
  
 | 
			
		||||
/************
 | 
			
		||||
  	nav
 | 
			
		||||
*********** */
 | 
			
		||||
 | 
			
		||||
.navbar-inverse {
 | 
			
		||||
	background-color: #346AA9;
 | 
			
		||||
	border-color: #346AA9;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form {
 | 
			
		||||
	border-color: #346AA9;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.navbar-collapse {
 | 
			
		||||
	-webkit-box-shadow: none;
 | 
			
		||||
	box-shadow: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.navbar-inverse .navbar-brand, .navbar-inverse .navbar-nav>li>a {
 | 
			
		||||
	color: #fff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.navbar-brand {
 | 
			
		||||
	padding: 8px 10px 10px 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.navbar-inverse .navbar-nav>.active>a, .navbar-inverse .navbar-nav>.active>a:hover, .navbar-inverse .navbar-nav>.active>a:focus, .navbar-inverse .navbar-nav>.open>a, .navbar-inverse .navbar-nav>.open>a:hover, .navbar-inverse .navbar-nav>.open>a:focus {
 | 
			
		||||
	background-color: #4a7ab3 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.navbar-inverse .navbar-toggle {
 | 
			
		||||
	border-color: #346AA9;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus {
 | 
			
		||||
	background-color: #4a7ab3;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.right {
 | 
			
		||||
	float: right;
 | 
			
		||||
	margin-top: 15px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@media (max-width: 768px) {
 | 
			
		||||
 | 
			
		||||
	.right {
 | 
			
		||||
		float: left;
 | 
			
		||||
		margin-top: 0px;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
/************
 | 
			
		||||
  footer
 | 
			
		||||
*********** */
 | 
			
		||||
.footer {
 | 
			
		||||
	width: 100%;
 | 
			
		||||
	height: 100%;
 | 
			
		||||
	background-color: #f5f5f5;
 | 
			
		||||
	margin-top:20px;
 | 
			
		||||
	color: #878787;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.container .text-muted {
 | 
			
		||||
	margin: 20px 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul.footer_links {
 | 
			
		||||
	list-style: none;
 | 
			
		||||
	padding: 10px 0 0 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul.footer_links a {
 | 
			
		||||
	color: #878787;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/************
 | 
			
		||||
Mail chimp
 | 
			
		||||
*********** */
 | 
			
		||||
input#mce-EMAIL, input#mce-EMAIL2 {
 | 
			
		||||
	height: 34px !important;
 | 
			
		||||
	border: 1px solid #ccc !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#mc_embed_signup input.email, #mc_embed_signup input.email2 {
 | 
			
		||||
	width: 38% !important;
 | 
			
		||||
	display: inline-block !important;
 | 
			
		||||
	margin-right: 2% !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#mc_embed_signup input.button, #mc_embed_signup input.button2 {
 | 
			
		||||
	display: inline-block !important;
 | 
			
		||||
	height: 34px !important;
 | 
			
		||||
	width: 26% !important;
 | 
			
		||||
	font-weight: 300 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
input#mc-embedded-subscribe, input#mc-embedded-subscribe2 {
 | 
			
		||||
	background-color: #346AA9 !important;
 | 
			
		||||
	vertical-align: bottom !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#mc_embed_signup form, #mc_embed_signup form2 {
 | 
			
		||||
	padding: 0 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/************
 | 
			
		||||
Main content
 | 
			
		||||
*********** */
 | 
			
		||||
 | 
			
		||||
.main_title {
 | 
			
		||||
	font-size: 30px;
 | 
			
		||||
	font-weight: 300;
 | 
			
		||||
	margin-top:10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.description h2{
 | 
			
		||||
	font-size: 24px;
 | 
			
		||||
	font-weight: 600;
 | 
			
		||||
	margin: 20px 0 15px 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.resources li {
 | 
			
		||||
	display: inline;
 | 
			
		||||
	margin-right: 15px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul.resources {
 | 
			
		||||
	padding: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.last {
 | 
			
		||||
	margin-bottom: 40px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.description.highlight {
 | 
			
		||||
	background: #f5f5f5;
 | 
			
		||||
	padding-bottom: 15px;
 | 
			
		||||
	margin: 22px 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@media (max-width: 992px) {
 | 
			
		||||
	.description.highlight {
 | 
			
		||||
		padding-top: 10px;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										301
									
								
								css/custom.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,301 @@
 | 
			
		||||
/* Additional Styling */
 | 
			
		||||
 | 
			
		||||
html, body, h1, td, textarea, input {
 | 
			
		||||
	font-family: 'Open Sans', sans-serif !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
body .content-root {
 | 
			
		||||
	background: none !important;
 | 
			
		||||
	box-shadow: none !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.header {
 | 
			
		||||
	background: #346AA9;
 | 
			
		||||
	height: 50px;
 | 
			
		||||
	-webkit-box-shadow: none;
 | 
			
		||||
	box-shadow: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.header .left {
 | 
			
		||||
	float: none;
 | 
			
		||||
	max-width: 1170px;
 | 
			
		||||
	margin: auto;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.header-subnav-wrapper {
 | 
			
		||||
	background: #f3f6fb;
 | 
			
		||||
	border-bottom: solid 1px #dfe2e7;
 | 
			
		||||
	margin-top: 50px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.header-subnav {
 | 
			
		||||
	max-width: 1170px;
 | 
			
		||||
	margin: auto;
 | 
			
		||||
	border-bottom: none !important;
 | 
			
		||||
	position: fixed !important;
 | 
			
		||||
	width: 100%;
 | 
			
		||||
	margin-top: 51px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.content-root {
 | 
			
		||||
	max-width: 1024px;
 | 
			
		||||
	margin: auto;
 | 
			
		||||
	margin-top: 50px;
 | 
			
		||||
	padding-top: 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.content img {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.content h4, body:not(.big-h3) .content h3 {
 | 
			
		||||
/* Fix for anchor links hiding under fixed header */
 | 
			
		||||
    padding-top: 80px;
 | 
			
		||||
    margin-top: -50px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Undo some of bootstrap's code styling that clashes */
 | 
			
		||||
.content pre code {
 | 
			
		||||
    white-space: pre;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.content pre {
 | 
			
		||||
    background: none;
 | 
			
		||||
}
 | 
			
		||||
/* end bootstrap code styling fix */
 | 
			
		||||
 | 
			
		||||
.menubar {
 | 
			
		||||
	padding-top: 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.menubar.fixed {
 | 
			
		||||
	margin-right: auto;
 | 
			
		||||
	margin-left: auto;
 | 
			
		||||
	margin-top: 50px;
 | 
			
		||||
	margin-bottom: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.menubar.fixed.leaveroomforfooter {
 | 
			
		||||
	margin-bottom: 183px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.header-subnav li a:active {
 | 
			
		||||
color: #f09 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.content a[title="Source"] {
 | 
			
		||||
    float:right;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#selected_command a:hover {
 | 
			
		||||
    text-decoration: underline;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Brand Guidelines */
 | 
			
		||||
 | 
			
		||||
.brand_guidelines .content-root {
 | 
			
		||||
	padding: 0 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@media (min-width: 720px) {
 | 
			
		||||
	.menubar {
 | 
			
		||||
		right: 794px;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@media (max-width: 480px) {
 | 
			
		||||
	body {
 | 
			
		||||
		overflow-x: hidden;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	.header-subnav ul {
 | 
			
		||||
		margin: auto;
 | 
			
		||||
		max-width: 480px;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	.header-subnav li {
 | 
			
		||||
		width: 350px;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	.header-subnav li a {
 | 
			
		||||
		padding: 10px 5px !important;
 | 
			
		||||
		font-size: .8em;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/* Force table to not be like tables anymore */
 | 
			
		||||
	table, thead, tbody, th, td, tr { 
 | 
			
		||||
		display: block; 
 | 
			
		||||
		max-width: 300px;
 | 
			
		||||
		margin: auto;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	thead tr { 
 | 
			
		||||
		position: absolute;
 | 
			
		||||
		top: -9999px;
 | 
			
		||||
		left: -9999px;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	tr { border: 1px solid #ccc; }
 | 
			
		||||
	
 | 
			
		||||
	td { 
 | 
			
		||||
		border: none;
 | 
			
		||||
		position: relative;
 | 
			
		||||
		padding-left: 50%; 
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	#command_wrapper {
 | 
			
		||||
	    display: block !important;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	#command_wrapper #command_list {
 | 
			
		||||
	    display: block;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	#online_state {
 | 
			
		||||
	    top: 50px !important;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/************
 | 
			
		||||
  api tool(s)
 | 
			
		||||
*********** */
 | 
			
		||||
 | 
			
		||||
body #online_state {
 | 
			
		||||
    position: absolute;
 | 
			
		||||
    right: 50px;
 | 
			
		||||
    top: 70px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/************
 | 
			
		||||
  	nav
 | 
			
		||||
*********** */
 | 
			
		||||
 | 
			
		||||
.navbar-inverse {
 | 
			
		||||
	background-color: #346AA9;
 | 
			
		||||
	border-color: #346AA9;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form {
 | 
			
		||||
	border-color: #346AA9;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.navbar-collapse {
 | 
			
		||||
	-webkit-box-shadow: none;
 | 
			
		||||
	box-shadow: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.navbar-inverse .navbar-brand, .navbar-inverse .navbar-nav>li>a {
 | 
			
		||||
	color: #fff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.navbar-brand {
 | 
			
		||||
	padding: 8px 10px 10px 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.navbar-inverse .navbar-nav>.active>a, .navbar-inverse .navbar-nav>.active>a:hover, .navbar-inverse .navbar-nav>.active>a:focus, .navbar-inverse .navbar-nav>.open>a, .navbar-inverse .navbar-nav>.open>a:hover, .navbar-inverse .navbar-nav>.open>a:focus {
 | 
			
		||||
	background-color: #4a7ab3 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.navbar-inverse .navbar-toggle {
 | 
			
		||||
	border-color: #346AA9;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus {
 | 
			
		||||
	background-color: #4a7ab3;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.right {
 | 
			
		||||
	float: right;
 | 
			
		||||
	margin-top: 15px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.nav>li {
 | 
			
		||||
	font-size: 14px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@media (max-width: 720px) {
 | 
			
		||||
 | 
			
		||||
	.right {
 | 
			
		||||
		float: left;
 | 
			
		||||
		margin-top: 0px;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/************
 | 
			
		||||
  footer
 | 
			
		||||
*********** */
 | 
			
		||||
.footer {
 | 
			
		||||
	width: 100%;
 | 
			
		||||
	background-color: #f5f5f5;
 | 
			
		||||
	margin-top:20px;
 | 
			
		||||
	color: #878787;
 | 
			
		||||
	padding-bottom: 20px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.container .text-muted {
 | 
			
		||||
	margin: 20px 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul.footer_links {
 | 
			
		||||
	list-style: none;
 | 
			
		||||
	padding: 10px 0 0 0;
 | 
			
		||||
	font-size: 14px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul.footer_links a {
 | 
			
		||||
	color: #878787;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul.footer_links a:hover {
 | 
			
		||||
	text-decoration: underline;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/************
 | 
			
		||||
Mail chimp
 | 
			
		||||
*********** */
 | 
			
		||||
input#mce-EMAIL {
 | 
			
		||||
	height: 34px !important;
 | 
			
		||||
	border: 1px solid #ccc !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#mc_embed_signup input.email {
 | 
			
		||||
	width: 38% !important;
 | 
			
		||||
	display: inline-block !important;
 | 
			
		||||
	margin-right: 2% !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#mc_embed_signup input.button {
 | 
			
		||||
	display: inline-block !important;
 | 
			
		||||
	height: 34px !important;
 | 
			
		||||
	width: 26% !important;
 | 
			
		||||
	font-weight: 400 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
input#mc-embedded-subscribe {
 | 
			
		||||
	background-color: #346AA9 !important;
 | 
			
		||||
	vertical-align: bottom !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#mc_embed_signup form {
 | 
			
		||||
	padding: 0 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.mail_chimp p {
 | 
			
		||||
	margin-bottom: 10px;
 | 
			
		||||
	font-size: 14px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/************
 | 
			
		||||
consensus whitepaper
 | 
			
		||||
*********** */
 | 
			
		||||
 | 
			
		||||
.download_consensus {
 | 
			
		||||
	font-size: 24px;
 | 
			
		||||
	text-align: center;
 | 
			
		||||
	padding: 5px;
 | 
			
		||||
}
 | 
			
		||||
@@ -152,7 +152,7 @@
 | 
			
		||||
  -moz-box-sizing: border-box;
 | 
			
		||||
}
 | 
			
		||||
body {
 | 
			
		||||
  color: #898788;
 | 
			
		||||
  color: #393738;
 | 
			
		||||
  font-family: 'Open Sans', sans-serif;
 | 
			
		||||
}
 | 
			
		||||
body .content-root {
 | 
			
		||||
@@ -1,14 +1,15 @@
 | 
			
		||||
.draft-comment {background: #faa; border: 1px solid #d88; padding: 2px;}
 | 
			
		||||
 | 
			
		||||
td {border: 1px solid #DBDDE2 !important; padding: .2em;}
 | 
			
		||||
table { border-collapse: collapse; clear: left; width: 550px}
 | 
			
		||||
th { padding: .2em; }
 | 
			
		||||
table { border-collapse: collapse; clear: left; }
 | 
			
		||||
th { padding: .2em; font-weight: bold; }
 | 
			
		||||
 | 
			
		||||
body .content-root {
 | 
			
		||||
    background-color: #F3F6FB;
 | 
			
		||||
    box-shadow: 930px 0 #FFFFFF inset, 931px 0 #DFE2E7 inset, 940px 0 5px -10px rgba(0, 0, 0, 0.1) inset;
 | 
			
		||||
}
 | 
			
		||||
code { max-height: 14em; overflow: auto;}
 | 
			
		||||
.content code { color: #111; }
 | 
			
		||||
.expanded { max-height: none; overflow: none;}
 | 
			
		||||
 | 
			
		||||
.content h2, .menu a.level-2 {
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
/* ----------------------------------------------------------------------------
 | 
			
		||||
 * Fonts
 | 
			
		||||
 */
 | 
			
		||||
@import url("http://fonts.googleapis.com/css?family=Montserrat:700|Open+Sans:300");
 | 
			
		||||
 | 
			
		||||
/* ----------------------------------------------------------------------------
 | 
			
		||||
 * Base
 | 
			
		||||
 */
 | 
			
		||||
@@ -125,7 +125,6 @@ a {
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
}
 | 
			
		||||
a:hover {
 | 
			
		||||
  color: #228a8a;
 | 
			
		||||
}
 | 
			
		||||
/* ----------------------------------------------------------------------------
 | 
			
		||||
 * Content styling
 | 
			
		||||
@@ -666,12 +665,8 @@ a.big.button {
 | 
			
		||||
}
 | 
			
		||||
a.big.button,
 | 
			
		||||
a.big.button:visited {
 | 
			
		||||
  color: #2badad;
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
}
 | 
			
		||||
a.big.button:hover {
 | 
			
		||||
  background: #2badad;
 | 
			
		||||
}
 | 
			
		||||
a.big.button:hover,
 | 
			
		||||
a.big.button:hover:visited {
 | 
			
		||||
  color: #fff;
 | 
			
		||||
@@ -742,9 +737,6 @@ a.big.button:hover:visited {
 | 
			
		||||
.menu a:visited {
 | 
			
		||||
  color: #2badad;
 | 
			
		||||
}
 | 
			
		||||
.menu a:hover {
 | 
			
		||||
  color: #228a8a;
 | 
			
		||||
}
 | 
			
		||||
.menu a.level-1 {
 | 
			
		||||
  font-family: montserrat, sans-serif;
 | 
			
		||||
  text-transform: uppercase;
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								favicon.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.1 KiB  | 
| 
		 Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB  | 
							
								
								
									
										183
									
								
								gatewayd.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,183 @@
 | 
			
		||||
<!doctype html>
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
  <meta charset='utf-8'>
 | 
			
		||||
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 | 
			
		||||
  <meta name="viewport" content="width=device-width">
 | 
			
		||||
 | 
			
		||||
  <title>Ripple Developer Portal: Gatewayd</title>
 | 
			
		||||
 | 
			
		||||
  <!-- favicon -->
 | 
			
		||||
  <link rel="icon" href="favicon.ico" type="image/x-icon"> 
 | 
			
		||||
  <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> 
 | 
			
		||||
 | 
			
		||||
  <!-- Flatdoc -->
 | 
			
		||||
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
 | 
			
		||||
  <script src='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/legacy.js'></script>
 | 
			
		||||
  <script src='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/flatdoc.js'></script>
 | 
			
		||||
  
 | 
			
		||||
   <!-- Bootstrap -->
 | 
			
		||||
 
 | 
			
		||||
   <link href="css/bootstrap.min.css" rel="stylesheet">
 | 
			
		||||
   <script src="js/bootstrap.min.js"></script>
 | 
			
		||||
 | 
			
		||||
  <!-- Flatdoc theme -->
 | 
			
		||||
  <link  href='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/theme-white/style.css' rel='stylesheet'>
 | 
			
		||||
  <script src='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/theme-white/script.js'></script>
 | 
			
		||||
 | 
			
		||||
  <!-- Custom Stylesheet -->
 | 
			
		||||
  <link href='https://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet' type='text/css'>
 | 
			
		||||
  <link href='https://fonts.googleapis.com/css?family=Open+Sans:600italic,400,700,300' rel='stylesheet' type='text/css'>
 | 
			
		||||
  <link  href='css/main.css' rel='stylesheet'>
 | 
			
		||||
  <link  href='css/custom.css' rel='stylesheet'>
 | 
			
		||||
  
 | 
			
		||||
  <!-- start Mixpanel -->
 | 
			
		||||
  <script type="text/javascript">(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src=("https:"===e.location.protocol?"https:":"http:")+'//cdn.mxpnl.com/libs/mixpanel-2.2.min.js';f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f);b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==
 | 
			
		||||
typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" ");for(g=0;g<i.length;g++)f(c,i[g]);
 | 
			
		||||
b._i.push([a,e,d])};b.__SV=1.2}})(document,window.mixpanel||[]);
 | 
			
		||||
mixpanel.init("132d42885e094171f34467fc54da6fab");
 | 
			
		||||
  </script>
 | 
			
		||||
    
 | 
			
		||||
  <script> if (window.location.host == "dev.ripple.com") {mixpanel.track("gatewayd");}</script>    
 | 
			
		||||
  <!-- end Mixpanel -->
 | 
			
		||||
 | 
			
		||||
  <!-- start google analytics -->
 | 
			
		||||
  <script>
 | 
			
		||||
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
 | 
			
		||||
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
 | 
			
		||||
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
 | 
			
		||||
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 | 
			
		||||
 | 
			
		||||
  ga('create', 'UA-49188512-1', 'ripple.com');
 | 
			
		||||
  ga('send', 'pageview');
 | 
			
		||||
 | 
			
		||||
  </script>
 | 
			
		||||
  <!-- end google analytics -->  
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  <!-- syntax selection js -->
 | 
			
		||||
  <script src='js/multicodetab.js'></script>
 | 
			
		||||
   <script>
 | 
			
		||||
    $(document).on('flatdoc:ready', $().multicode_tabs);
 | 
			
		||||
  </script>
 | 
			
		||||
    <script>
 | 
			
		||||
    Flatdoc.run({
 | 
			
		||||
      fetcher: Flatdoc.file('gatewayd.md')
 | 
			
		||||
    });
 | 
			
		||||
  </script>
 | 
			
		||||
  <link type='text/css' rel='stylesheet' href='css/mod.css' />
 | 
			
		||||
  <script src='js/expandcode.js'></script>
 | 
			
		||||
  <script src="js/fixsidebarscroll.js"></script>
 | 
			
		||||
  
 | 
			
		||||
</head>
 | 
			
		||||
<body role='flatdoc' class='no-literate'>
 | 
			
		||||
 	<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
        <div class="navbar-header">
 | 
			
		||||
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
 | 
			
		||||
            <span class="sr-only">Toggle navigation</span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
          </button>
 | 
			
		||||
          <a class="navbar-brand" href="https://dev.ripple.com/"><img class="small_logo" src="assets/img/ripple_logo_small.png"></a>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="navbar-collapse collapse">
 | 
			
		||||
          <ul class="nav navbar-nav">
 | 
			
		||||
			<li class="active"><a href="/">Resources</a></li>
 | 
			
		||||
            <li><a href="https://www.bountysource.com/teams/ripple/bounties">Bounties</a></li>
 | 
			
		||||
            <li><a href="https://ripplelabs.atlassian.net/">Bug Tracking</a></li>
 | 
			
		||||
            <li><a href="https://ripple.com/dev/blog/">Dev Blog</a></li>
 | 
			
		||||
            <li><a href="https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98">Forums</a></li>
 | 
			
		||||
            <li class="dropdown">
 | 
			
		||||
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">API Tool <span class="caret"></span></a>
 | 
			
		||||
              <ul class="dropdown-menu" role="menu">
 | 
			
		||||
                <li><a href="ripple-api-tool.html">WebSocket Tool</a></li>
 | 
			
		||||
                <li><a href="rest-api-tool.html">REST Tool</a></li>
 | 
			
		||||
              </ul>
 | 
			
		||||
            </li>
 | 
			
		||||
          </ul>
 | 
			
		||||
          	<div class='right'>
 | 
			
		||||
		 	 <!-- GitHub buttons -->
 | 
			
		||||
		 		 <iframe src="https://dev.ripple.com/vendor/ghbtn.html?user=ripple&repo=ripple-dev-portal&type=watch&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="110" height="20"></iframe>
 | 
			
		||||
			</div>
 | 
			
		||||
        </div><!--/.nav-collapse -->
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    
 | 
			
		||||
  <div class='content-root'>
 | 
			
		||||
    <div class='menubar'>
 | 
			
		||||
      <div class='menu section' role='flatdoc-menu'></div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div role='flatdoc-content' class='content'>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
<div class="footer">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
        <p class="text-muted">
 | 
			
		||||
        	<div class="row">
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links applications">
 | 
			
		||||
							<li><a href="https://www.rippletrade.com">Ripple Trade</a>
 | 
			
		||||
							<li><a href="https://www.ripplecharts.com">Ripple Charts</a>
 | 
			
		||||
							<li><a href="https://ripple.com/graph">Ripple Graph</a>
 | 
			
		||||
							<li><a href="http://codius.org/">Codius</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links middleware">
 | 
			
		||||
							<li><a href="gatewayd.html">Gatewayd</a>
 | 
			
		||||
							<li><a href="ripple-rest.html">Ripple REST</a>
 | 
			
		||||
							<li><a href="https://github.com/ripple/ripple-lib">Ripple Lib</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links core_network">
 | 
			
		||||
							<li><a href="rippled-apis.html">rippled</a>
 | 
			
		||||
							<li><a href="transactions.html">Transactions</a>
 | 
			
		||||
							<li><a href="consensus-whitepaper.html">Consensus</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
						<ul class="footer_links bounties">
 | 
			
		||||
							<li><a href="https://www.bountysource.com/teams/ripple/bounties">Bounties</a>
 | 
			
		||||
							<li><a href="https://ripplelabs.atlassian.net/">Bug tracking</a>
 | 
			
		||||
							<li><a href="guidelines.html">Brand guidelines</a>
 | 
			
		||||
							<li><a href="https://ripple.com/dev/blog/">Dev blog</a>
 | 
			
		||||
							<li><a href="https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98">Forums</a>
 | 
			
		||||
							<li><a href="https://ripple.com/wiki/Main_Page">Wiki</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-4 mail_chimp">
 | 
			
		||||
				<p>Join the mailing list!</p>
 | 
			
		||||
				<label for="mce-EMAIL">Email address</label>
 | 
			
		||||
					<!-- Begin MailChimp Signup Form -->
 | 
			
		||||
						<link href="//cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
 | 
			
		||||
						<style type="text/css">
 | 
			
		||||
							#mc_embed_signup{clear:left; font:14px; }
 | 
			
		||||
	
 | 
			
		||||
						</style>
 | 
			
		||||
						<div id="mc_embed_signup">
 | 
			
		||||
						<form action="//ripple.us4.list-manage.com/subscribe/post?u=245dbc1c47849f034390dc5bf&id=4dfbe160d0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
 | 
			
		||||
	
 | 
			
		||||
							<input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="" required>
 | 
			
		||||
							<!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
 | 
			
		||||
							<div style="position: absolute; left: -5000px; top: -50px;"><input type="text" name="b_245dbc1c47849f034390dc5bf_4dfbe160d0" tabindex="-1" value=""></div>
 | 
			
		||||
							<input type="submit" value="Submit" name="subscribe" id="mc-embedded-subscribe" class="button btn btn-primary">
 | 
			
		||||
						</form>
 | 
			
		||||
						</div>
 | 
			
		||||
 | 
			
		||||
					<!--End mc_embed_signup-->
 | 
			
		||||
				</div>
 | 
			
		||||
      		</div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										2862
									
								
								gatewayd.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -1,49 +1,44 @@
 | 
			
		||||
<!doctype html>
 | 
			
		||||
<!--
 | 
			
		||||
 | 
			
		||||
  Instructions:
 | 
			
		||||
 | 
			
		||||
  - Save this file.
 | 
			
		||||
  - Replace "ripple" with your GitHub ripplename.
 | 
			
		||||
  - Replace "ripple-client" with your GitHub ripple-client name.
 | 
			
		||||
  - Replace "Ripple Web Client" with Ripple Web Client name.
 | 
			
		||||
  - Upload this file (or commit to GitHub Pages).
 | 
			
		||||
 | 
			
		||||
  Customize as you see fit!
 | 
			
		||||
 | 
			
		||||
-->
 | 
			
		||||
<html>
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
    <meta charset='utf-8'>
 | 
			
		||||
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 | 
			
		||||
    <meta name="viewport" content="width=device-width">
 | 
			
		||||
 | 
			
		||||
    <title>Ripple Web Client</title>
 | 
			
		||||
    <title>Ripple Dev Portal: Brand Guidelines</title>
 | 
			
		||||
 | 
			
		||||
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>  
 | 
			
		||||
    <script src="js/bootstrap-modal.js"></script>
 | 
			
		||||
  <!-- favicon -->
 | 
			
		||||
  <link rel="icon" href="favicon.ico" type="image/x-icon"> 
 | 
			
		||||
  <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> 
 | 
			
		||||
 | 
			
		||||
  <!-- Flatdoc -->
 | 
			
		||||
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
 | 
			
		||||
  <script src='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/legacy.js'></script>
 | 
			
		||||
  <script src='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/flatdoc.js'></script>
 | 
			
		||||
  
 | 
			
		||||
   <!-- Bootstrap -->
 | 
			
		||||
 
 | 
			
		||||
   <link href="css/bootstrap.min.css" rel="stylesheet">
 | 
			
		||||
   <script src="js/bootstrap.min.js"></script>
 | 
			
		||||
   
 | 
			
		||||
    <!-- Custom Js -->
 | 
			
		||||
    <script src="js/main.js"></script>
 | 
			
		||||
    
 | 
			
		||||
	<script src="js/main.js"></script>
 | 
			
		||||
 | 
			
		||||
  <!-- Flatdoc theme -->
 | 
			
		||||
  <link  href='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/theme-white/style.css' rel='stylesheet'>
 | 
			
		||||
  <script src='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/theme-white/script.js'></script>
 | 
			
		||||
 | 
			
		||||
  <!-- Custom Stylesheet -->
 | 
			
		||||
  <link href='https://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet' type='text/css'>
 | 
			
		||||
  <link href='https://fonts.googleapis.com/css?family=Open+Sans:600italic,400,700,300' rel='stylesheet' type='text/css'>
 | 
			
		||||
  <link  href='https://dev.ripple.com/css/main.css' rel='stylesheet'>
 | 
			
		||||
  <link  href='css/custom.css' rel='stylesheet'>
 | 
			
		||||
  
 | 
			
		||||
	<link rel="shortcut icon" href="favicon.ico?v=2" type="image/x-icon">
 | 
			
		||||
	<link rel="icon" href="favicon.ico?v=2" type="image/x-icon">
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    <script src='vendor/flatdoc/v/0.8.0/legacy.js'></script>
 | 
			
		||||
    <script src='vendor/flatdoc/v/0.8.0/flatdoc.js'></script>
 | 
			
		||||
 | 
			
		||||
    <!-- Flatdoc theme -->
 | 
			
		||||
    <link  href='vendor/flatdoc/v/0.8.0/theme-white/style.css' rel='stylesheet'>
 | 
			
		||||
    <script src='vendor/flatdoc/v/0.8.0/theme-white/script.js'></script>
 | 
			
		||||
 | 
			
		||||
    <!-- Meta -->
 | 
			
		||||
    <meta content="Ripple Web Client" property="og:title">
 | 
			
		||||
    <meta content="Ripple Web Client description goes here." name="description">
 | 
			
		||||
 | 
			
		||||
    <!-- Custom Stylesheet -->
 | 
			
		||||
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:600italic,400,700,300' rel='stylesheet' type='text/css'>
 | 
			
		||||
    <link  href='css/main.css' rel='stylesheet'>
 | 
			
		||||
 | 
			
		||||
    <!-- Custom Js -->
 | 
			
		||||
  <!-- start Mixpanel -->
 | 
			
		||||
  <script type="text/javascript">(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src=("https:"===e.location.protocol?"https:":"http:")+'//cdn.mxpnl.com/libs/mixpanel-2.2.min.js';f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f);b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==
 | 
			
		||||
typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" ");for(g=0;g<i.length;g++)f(c,i[g]);
 | 
			
		||||
@@ -51,7 +46,7 @@ b._i.push([a,e,d])};b.__SV=1.2}})(document,window.mixpanel||[]);
 | 
			
		||||
mixpanel.init("132d42885e094171f34467fc54da6fab");
 | 
			
		||||
  </script>
 | 
			
		||||
    
 | 
			
		||||
  <script>mixpanel.track("brand-guide");</script>    
 | 
			
		||||
  <script>if (window.location.host == "dev.ripple.com") { mixpanel.track("brand-guide"); }</script>    
 | 
			
		||||
  <!-- end Mixpanel -->
 | 
			
		||||
 
 | 
			
		||||
  <!-- Initializer -->
 | 
			
		||||
@@ -62,28 +57,40 @@ mixpanel.init("132d42885e094171f34467fc54da6fab");
 | 
			
		||||
        });
 | 
			
		||||
    </script>
 | 
			
		||||
</head>
 | 
			
		||||
<body role='flatdoc'>
 | 
			
		||||
<body class="brand_guidelines" role='flatdoc'>
 | 
			
		||||
 | 
			
		||||
    <div class='header'>
 | 
			
		||||
        <div class='left'>
 | 
			
		||||
          <h1>{<i class="icon-ripple-logo"></i>}</h1>
 | 
			
		||||
          <ul>
 | 
			
		||||
        <li><a href='index.html'>Documentation</a></li>
 | 
			
		||||
        <li><a href='https://ripple.com/dev/blog'>Developer blog</a></li>
 | 
			
		||||
        <li><a href='https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98' target='_blank'>Developer Forum</a></li>
 | 
			
		||||
        <li class="active"><a href='#'>Brand Guidelines</a></li>
 | 
			
		||||
        <li><a href='https://ripple.com/forum/viewforum.php?f=20'target='_blank'>Bounties</a></li>               
 | 
			
		||||
 	<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
        <div class="navbar-header">
 | 
			
		||||
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
 | 
			
		||||
            <span class="sr-only">Toggle navigation</span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
          </button>
 | 
			
		||||
          <a class="navbar-brand" href="https://dev.ripple.com/"><img class="small_logo" src="assets/img/ripple_logo_small.png"></a>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="navbar-collapse collapse">
 | 
			
		||||
          <ul class="nav navbar-nav">
 | 
			
		||||
			<li class="active"><a href="/">Resources</a></li>
 | 
			
		||||
            <li><a href="https://www.bountysource.com/teams/ripple/bounties">Bounties</a></li>
 | 
			
		||||
            <li><a href="https://ripplelabs.atlassian.net/">Bug Tracking</a></li>
 | 
			
		||||
            <li><a href="https://ripple.com/dev/blog/">Dev Blog</a></li>
 | 
			
		||||
            <li><a href="https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98">Forums</a></li>
 | 
			
		||||
            <li class="dropdown">
 | 
			
		||||
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">API Tool <span class="caret"></span></a>
 | 
			
		||||
              <ul class="dropdown-menu" role="menu">
 | 
			
		||||
                <li><a href="ripple-api-tool.html">WebSocket Tool</a></li>
 | 
			
		||||
                <li><a href="rest-api-tool.html">REST Tool</a></li>
 | 
			
		||||
              </ul>
 | 
			
		||||
            </li>
 | 
			
		||||
          </ul>
 | 
			
		||||
 | 
			
		||||
          <a href="" class="header-menu-button">
 | 
			
		||||
              
 | 
			
		||||
          </a>
 | 
			
		||||
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class='right'>
 | 
			
		||||
              <!-- GitHub buttons: see http://ghbtns.com 
 | 
			
		||||
<iframe src="/vendor/ghbtn.html?user=ripple&repo=ripple-dev-portal&type=watch&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="110" height="20"></iframe> -->
 | 
			
		||||
        </div>
 | 
			
		||||
          	<div class='right'>
 | 
			
		||||
		 	 <!-- GitHub buttons -->
 | 
			
		||||
		 		 <iframe src="https://dev.ripple.com/vendor/ghbtn.html?user=ripple&repo=ripple-dev-portal&type=watch&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="110" height="20"></iframe>
 | 
			
		||||
			</div>
 | 
			
		||||
        </div><!--/.nav-collapse -->
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class='content-root  guidelines-content'>
 | 
			
		||||
@@ -391,11 +398,77 @@ mixpanel.init("132d42885e094171f34467fc54da6fab");
 | 
			
		||||
                <input type="checkbox">  I agree to Ripple Labs’ terms and conditions.
 | 
			
		||||
              </label>
 | 
			
		||||
            </div>            
 | 
			
		||||
            <a class="btn btn-disabled" id="btn-download" disabled="">Download</a>
 | 
			
		||||
            <a class="btn btn-disabled" id="btn-download">Download</a>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
<div class="footer">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
        <p class="text-muted">
 | 
			
		||||
        	<div class="row">
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links applications">
 | 
			
		||||
							<li><a href="https://www.rippletrade.com">Ripple Trade</a>
 | 
			
		||||
							<li><a href="https://www.ripplecharts.com">Ripple Charts</a>
 | 
			
		||||
							<li><a href="https://ripple.com/graph">Ripple Graph</a>
 | 
			
		||||
							<li><a href="http://codius.org/">Codius</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links middleware">
 | 
			
		||||
							<li><a href="gatewayd.html">Gatewayd</a>
 | 
			
		||||
							<li><a href="ripple-rest.html">Ripple REST</a>
 | 
			
		||||
							<li><a href="https://github.com/ripple/ripple-lib">Ripple Lib</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links core_network">
 | 
			
		||||
							<li><a href="rippled-apis.html">rippled</a>
 | 
			
		||||
							<li><a href="transactions.html">Transactions</a>
 | 
			
		||||
							<li><a href="consensus-whitepaper.html">Consensus</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
						<ul class="footer_links bounties">
 | 
			
		||||
							<li><a href="https://www.bountysource.com/teams/ripple/bounties">Bounties</a>
 | 
			
		||||
							<li><a href="https://ripplelabs.atlassian.net/">Bug tracking</a>
 | 
			
		||||
							<li><a href="guidelines.html">Brand guidelines</a>
 | 
			
		||||
							<li><a href="https://ripple.com/dev/blog/">Dev blog</a>
 | 
			
		||||
							<li><a href="https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98">Forums</a>
 | 
			
		||||
							<li><a href="https://ripple.com/wiki/Main_Page">Wiki</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-4 mail_chimp">
 | 
			
		||||
				<p>Join the mailing list!</p>
 | 
			
		||||
				<label for="mce-EMAIL">Email address</label>
 | 
			
		||||
					<!-- Begin MailChimp Signup Form -->
 | 
			
		||||
						<link href="//cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
 | 
			
		||||
						<style type="text/css">
 | 
			
		||||
							#mc_embed_signup{clear:left; font:14px; }
 | 
			
		||||
	
 | 
			
		||||
						</style>
 | 
			
		||||
						<div id="mc_embed_signup">
 | 
			
		||||
						<form action="//ripple.us4.list-manage.com/subscribe/post?u=245dbc1c47849f034390dc5bf&id=4dfbe160d0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
 | 
			
		||||
	
 | 
			
		||||
							<input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="" required>
 | 
			
		||||
							<!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
 | 
			
		||||
							<div style="position: absolute; left: -5000px; top: -50px;"><input type="text" name="b_245dbc1c47849f034390dc5bf_4dfbe160d0" tabindex="-1" value=""></div>
 | 
			
		||||
							<input type="submit" value="Submit" name="subscribe" id="mc-embedded-subscribe" class="button btn btn-primary">
 | 
			
		||||
						</form>
 | 
			
		||||
						</div>
 | 
			
		||||
 | 
			
		||||
					<!--End mc_embed_signup-->
 | 
			
		||||
				</div>
 | 
			
		||||
      		</div>
 | 
			
		||||
        </p>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB  | 
| 
		 Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB  | 
| 
		 Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB  | 
| 
		 Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB  | 
| 
		 Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 9.3 KiB  | 
| 
		 Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB  | 
| 
		 Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB  | 
| 
		 Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB  | 
| 
		 Before Width: | Height: | Size: 262 B After Width: | Height: | Size: 262 B  | 
| 
		 Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB  | 
| 
		 Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								img/gatewayd-datamodel_current.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 40 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								img/gatewayd_architecture.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 44 KiB  | 
| 
		 Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB  | 
| 
		 Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB  | 
| 
		 Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB  | 
| 
		 Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB  | 
| 
		 Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB  | 
| 
		 Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB  | 
| 
		 Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB  | 
| 
		 Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB  | 
| 
		 Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB  | 
							
								
								
									
										282
									
								
								index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,282 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html lang="en">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8">
 | 
			
		||||
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1">
 | 
			
		||||
    <title>Ripple Dev Portal Resources</title>
 | 
			
		||||
 | 
			
		||||
    <!-- Bootstrap -->
 | 
			
		||||
	<link href="css/bootstrap.min.css" rel="stylesheet">
 | 
			
		||||
    
 | 
			
		||||
    <!--  Google Font -->
 | 
			
		||||
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,600' rel='stylesheet' type='text/css'>
 | 
			
		||||
   
 | 
			
		||||
  	<!-- Font Awesome -->
 | 
			
		||||
	<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
 | 
			
		||||
	
 | 
			
		||||
	<!-- Custom stuff -->
 | 
			
		||||
    <link href="css/custom-landing.css" rel="stylesheet">
 | 
			
		||||
    
 | 
			
		||||
    <link rel="shortcut icon" href="favicon.ico?v=2" type="image/x-icon">
 | 
			
		||||
	<link rel="icon" href="favicon.ico?v=2" type="image/x-icon">
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
 | 
			
		||||
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
 | 
			
		||||
    <!--[if lt IE 9]>
 | 
			
		||||
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
 | 
			
		||||
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
 | 
			
		||||
    <![endif]-->
 | 
			
		||||
    
 | 
			
		||||
      <!-- start Mixpanel -->
 | 
			
		||||
  <script type="text/javascript">(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src=("https:"===e.location.protocol?"https:":"http:")+'//cdn.mxpnl.com/libs/mixpanel-2.2.min.js';f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f);b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==
 | 
			
		||||
typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" ");for(g=0;g<i.length;g++)f(c,i[g]);
 | 
			
		||||
b._i.push([a,e,d])};b.__SV=1.2}})(document,window.mixpanel||[]);
 | 
			
		||||
mixpanel.init("132d42885e094171f34467fc54da6fab");
 | 
			
		||||
  </script>
 | 
			
		||||
    
 | 
			
		||||
  <script>if (window.location.host == "dev.ripple.com") { mixpanel.track("View"); }</script>    
 | 
			
		||||
  <!-- end Mixpanel -->
 | 
			
		||||
    
 | 
			
		||||
    <!-- start google analytics -->
 | 
			
		||||
	  <script>
 | 
			
		||||
	  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
 | 
			
		||||
	  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
 | 
			
		||||
	  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
 | 
			
		||||
	  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 | 
			
		||||
 | 
			
		||||
	  ga('create', 'UA-49188512-1', 'ripple.com');
 | 
			
		||||
	  ga('send', 'pageview');
 | 
			
		||||
 | 
			
		||||
	  </script>
 | 
			
		||||
  <!-- end google analytics -->  
 | 
			
		||||
  
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
  <div class="wrapper">
 | 
			
		||||
	<!--   navigation -->
 | 
			
		||||
  	<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
        <div class="navbar-header">
 | 
			
		||||
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
 | 
			
		||||
            <span class="sr-only">Toggle navigation</span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
          </button>
 | 
			
		||||
          <a class="navbar-brand" href="https://dev.ripple.com/"><img class="small_logo" src="assets/img/ripple_logo_small.png"></a>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="navbar-collapse collapse">
 | 
			
		||||
          <ul class="nav navbar-nav">
 | 
			
		||||
			<li class="active"><a href="/">Resources</a></li>
 | 
			
		||||
            <li><a href="https://www.bountysource.com/teams/ripple/bounties">Bounties</a></li>
 | 
			
		||||
            <li><a href="https://ripplelabs.atlassian.net/">Bug Tracking</a></li>
 | 
			
		||||
            <li><a href="https://ripple.com/dev/blog/">Dev Blog</a></li>
 | 
			
		||||
            <li><a href="https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98">Forums</a></li>
 | 
			
		||||
            <li class="dropdown">
 | 
			
		||||
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">API Tool <span class="caret"></span></a>
 | 
			
		||||
              <ul class="dropdown-menu" role="menu">
 | 
			
		||||
                <li><a href="ripple-api-tool.html">WebSocket Tool</a></li>
 | 
			
		||||
                <li><a href="rest-api-tool.html">REST Tool</a></li>
 | 
			
		||||
              </ul>
 | 
			
		||||
            </li>
 | 
			
		||||
          </ul>
 | 
			
		||||
          	<div class='right'>
 | 
			
		||||
		 	 <!-- GitHub buttons -->
 | 
			
		||||
		 		 <iframe src="https://dev.ripple.com/vendor/ghbtn.html?user=ripple&repo=ripple-dev-portal&type=watch&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="110" height="20"></iframe>
 | 
			
		||||
			</div>
 | 
			
		||||
        </div><!--/.nav-collapse -->
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <!-- jumbotron -->
 | 
			
		||||
	<!-- <div class="container theme-showcase" role="main"> -->
 | 
			
		||||
    <div class="jumbotron">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
      	<div class="row">
 | 
			
		||||
      		<div class="col-md-12">
 | 
			
		||||
       		 <div class="col-md-6">
 | 
			
		||||
       		 	<img class="large_logo" src="assets/img/ripple_logo_large.png">
 | 
			
		||||
       		 </div>
 | 
			
		||||
       		 <div class="col-md-6">
 | 
			
		||||
       		 	<h4>Build on the world's first protocol for value exchange</h4>
 | 
			
		||||
        		<p class="main_callout">Ripple is a protocol for making financial transactions worldwide, with no central authority responsible for managing it. Anyone can run a server, connect to the network, and start doing business. Get started by submitting API calls to our public servers now.</p>
 | 
			
		||||
      		 	
 | 
			
		||||
				<p class="api_btn"><a href="ripple-api-tool.html"><button type="button" class="button btn btn-primary api">Try it!</button></a></p>
 | 
			
		||||
      		 </div>
 | 
			
		||||
      		</div>
 | 
			
		||||
      	</div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
   <!--  </div> -->
 | 
			
		||||
    
 | 
			
		||||
    <!-- main container -->
 | 
			
		||||
	<div class="container">
 | 
			
		||||
		 <div class="row">
 | 
			
		||||
		 
 | 
			
		||||
		<!--  Applications -->
 | 
			
		||||
		
 | 
			
		||||
			<div class="col-md-3 main_title"><i class="fa fa-tachometer"></i> Applications</div>
 | 
			
		||||
			<div class="col-md-9 description">
 | 
			
		||||
				<h2>Ripple Trade</h2>
 | 
			
		||||
					<p>The official open-source web client to Ripple.</p>
 | 
			
		||||
						<ul class="resources">
 | 
			
		||||
							<li>Resources:</li>
 | 
			
		||||
							<li><a href="https://www.rippletrade.com"><i class="fa fa-home"></i> Website </a></li>
 | 
			
		||||
							<li><a href="https://github.com/ripple/ripple-client"><i class="fa fa-code"></i> Source </a></li>
 | 
			
		||||
							<li><a href="https://www.bountysource.com/trackers/3604734-ripple-trade"><i class="fa fa-dot-circle-o"></i> Bounties </a></li>
 | 
			
		||||
						</ul>
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="col-md-3 main_title"></div>
 | 
			
		||||
			<div class="col-md-9 description highlight">
 | 
			
		||||
				<h2>Ripple Charts</h2>
 | 
			
		||||
					<p>Live charts showing trading metrics and activity.</p>
 | 
			
		||||
						<ul class="resources">
 | 
			
		||||
							<li>Resources:</li>
 | 
			
		||||
							<li><a href="https://www.ripplecharts.com"><i class="fa fa-home"></i> Website </a></li>
 | 
			
		||||
							<li><a href="http://docs.rippledataapi.apiary.io/"><i class="fa fa-file-text-o"></i> Overview </a></li>
 | 
			
		||||
							<li><a href="https://github.com/ripple/ripplecharts-frontend"><i class="fa fa-code"></i> Source (Frontend) </a></li>
 | 
			
		||||
							<li><a href="https://github.com/ripple/ripple-data-api"><i class="fa fa-code"></i> Source (Data API) </a></li>
 | 
			
		||||
							<li><a href="https://www.bountysource.com/trackers/3954022-ripple-charts"><i class="fa fa-dot-circle-o"></i> Bounties </a></li>
 | 
			
		||||
						</ul>
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="col-md-3 main_title"></div>
 | 
			
		||||
			<div class="col-md-9 description">
 | 
			
		||||
				<h2>Ripple Graph</h2>
 | 
			
		||||
					<p>Interactive graph visualization of the Ripple ledger.</p>
 | 
			
		||||
						<ul class="resources">
 | 
			
		||||
							<li>Resources:</li>
 | 
			
		||||
							<li><a href="https://ripple.com/graph"><i class="fa fa-home"></i> Website </a></li>
 | 
			
		||||
							<li><a href="https://github.com/ripple/ripple-graph"><i class="fa fa-code"></i> Source </a></li>
 | 
			
		||||
						</ul>
 | 
			
		||||
			</div>
 | 
			
		||||
		
 | 
			
		||||
			
 | 
			
		||||
			
 | 
			
		||||
		<!-- Middleware -->
 | 
			
		||||
			<div class="col-md-3 main_title"><i class="fa fa-cogs"></i> Middleware</div>
 | 
			
		||||
			<div class="col-md-9 description highlight">
 | 
			
		||||
				<h2>Gatewayd</h2>
 | 
			
		||||
					<p>Framework software for building a gateway—just add the connections to your payment system.</p>
 | 
			
		||||
						<ul class="resources">
 | 
			
		||||
							<li>Resources:</li>
 | 
			
		||||
							<li><a href="gatewayd.html"><i class="fa fa-cubes"></i> API Reference </a></li>
 | 
			
		||||
							<li><a href="https://github.com/ripple/gatewayd"><i class="fa fa-code"></i> Source </a></li>
 | 
			
		||||
							<li><a href="https://www.bountysource.com/trackers/552820-gatewayd"><i class="fa fa-dot-circle-o"></i> Bounties </a></li>
 | 
			
		||||
						</ul>
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="col-md-3 main_title"></div>
 | 
			
		||||
			<div class="col-md-9 description">
 | 
			
		||||
				<h2>Ripple REST</h2>
 | 
			
		||||
					<p>Easily connect with a rippled server using REST: check balances, set trust lines, and more.</p>
 | 
			
		||||
						<ul class="resources">
 | 
			
		||||
							<li>Resources:</li>
 | 
			
		||||
							<li><a href="ripple-rest.html"><i class="fa fa-cubes"></i> API Reference </a></li>
 | 
			
		||||
							<li><a href="https://github.com/ripple/ripple-rest"><i class="fa fa-code"></i> Source </a></li>
 | 
			
		||||
							<li><a href="https://www.bountysource.com/trackers/500333-ripple-rest-api"><i class="fa fa-dot-circle-o"></i> Bounties </a></li>
 | 
			
		||||
						</ul>
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="col-md-3 main_title"></div>
 | 
			
		||||
			<div class="col-md-9 description last highlight">
 | 
			
		||||
				<h2>Ripple Lib</h2>
 | 
			
		||||
					<p>A JavaScript API for interacting with rippled.</p>
 | 
			
		||||
						<ul class="resources">
 | 
			
		||||
							<li>Resources:</li>
 | 
			
		||||
							<li><a href="https://github.com/ripple/ripple-lib"><i class="fa fa-code"></i> Source </a></li>
 | 
			
		||||
							<li><a href="https://www.bountysource.com/trackers/323756-ripple-lib"><i class="fa fa-dot-circle-o"></i> Bounties </a></li>
 | 
			
		||||
						</ul>
 | 
			
		||||
			</div>
 | 
			
		||||
			
 | 
			
		||||
		<!-- Core Network -->
 | 
			
		||||
			<div class="col-md-3 main_title"><i class="fa fa-database"></i> Core Network</div>
 | 
			
		||||
			<div class="col-md-9 description last">
 | 
			
		||||
				<h2>rippled</h2>
 | 
			
		||||
					<p>The core server that makes the Ripple network possible.</p>
 | 
			
		||||
						<ul class="resources">
 | 
			
		||||
							<li>Resources:</li>
 | 
			
		||||
							<li><a href="rippled-apis.html"><i class="fa fa-cubes"></i> API Reference </a></li>
 | 
			
		||||
							<li><a href="https://github.com/ripple/rippled"><i class="fa fa-code"></i> Source </a></li>
 | 
			
		||||
							<li><a href="https://www.bountysource.com/trackers/304896-rippled"><i class="fa fa-dot-circle-o"></i> Bounties </a></li>
 | 
			
		||||
							<li><a href="consensus-whitepaper.html"><i class="fa fa-file"></i> Consensus Whitepaper </a></li>
 | 
			
		||||
							<li><a href="transactions.html"><i class="fa fa-cubes"></i> Transaction Format </a></li>
 | 
			
		||||
						</ul>
 | 
			
		||||
			</div>
 | 
			
		||||
			
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
	
 | 
			
		||||
	<div class="footer">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
        <p class="text-muted">
 | 
			
		||||
        	<div class="row">
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links applications">
 | 
			
		||||
							<li><a href="https://www.rippletrade.com">Ripple Trade</a>
 | 
			
		||||
							<li><a href="https://www.ripplecharts.com">Ripple Charts</a>
 | 
			
		||||
							<li><a href="https://ripple.com/graph">Ripple Graph</a>
 | 
			
		||||
							<li><a href="http://codius.org/">Codius</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links middleware">
 | 
			
		||||
							<li><a href="gatewayd.html">Gatewayd</a>
 | 
			
		||||
							<li><a href="ripple-rest.html">Ripple REST</a>
 | 
			
		||||
							<li><a href="https://github.com/ripple/ripple-lib">Ripple Lib</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links core_network">
 | 
			
		||||
							<li><a href="rippled-apis.html">rippled</a>
 | 
			
		||||
							<li><a href="transactions.html">Transactions</a>
 | 
			
		||||
							<li><a href="consensus-whitepaper.html">Consensus</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
						<ul class="footer_links bounties">
 | 
			
		||||
							<li><a href="https://www.bountysource.com/teams/ripple/bounties">Bounties</a>
 | 
			
		||||
							<li><a href="https://ripplelabs.atlassian.net/">Bug tracking</a>
 | 
			
		||||
							<li><a href="guidelines.html">Brand guidelines</a>
 | 
			
		||||
							<li><a href="https://ripple.com/dev/blog/">Dev blog</a>
 | 
			
		||||
							<li><a href="https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98">Forums</a>
 | 
			
		||||
							<li><a href="https://ripple.com/wiki/Main_Page">Wiki</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-4">
 | 
			
		||||
				<p>Join the mailing list!</p>
 | 
			
		||||
				<label for="mce-EMAIL">Email address</label>
 | 
			
		||||
					<!-- Begin MailChimp Signup Form -->
 | 
			
		||||
						<link href="//cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
 | 
			
		||||
						<style type="text/css">
 | 
			
		||||
							#mc_embed_signup{clear:left; font:14px; }
 | 
			
		||||
	
 | 
			
		||||
						</style>
 | 
			
		||||
						<div id="mc_embed_signup">
 | 
			
		||||
						<form action="//ripple.us4.list-manage.com/subscribe/post?u=245dbc1c47849f034390dc5bf&id=4dfbe160d0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
 | 
			
		||||
	
 | 
			
		||||
							<input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="" required>
 | 
			
		||||
							<!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
 | 
			
		||||
							<div style="position: absolute; left: -5000px; top: -50px;"><input type="text" name="b_245dbc1c47849f034390dc5bf_4dfbe160d0" tabindex="-1" value=""></div>
 | 
			
		||||
							<input type="submit" value="Submit" name="subscribe" id="mc-embedded-subscribe" class="button btn btn-primary">
 | 
			
		||||
						</form>
 | 
			
		||||
						</div>
 | 
			
		||||
 | 
			
		||||
					<!--End mc_embed_signup-->
 | 
			
		||||
				</div>
 | 
			
		||||
      		</div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
 | 
			
		||||
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
 | 
			
		||||
    <!-- Include all compiled plugins (below), or include individual files as needed -->
 | 
			
		||||
    <script src="js/bootstrap.min.js"></script>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -4,7 +4,13 @@ Ripple is a decentralized, peer-to-peer network for moving value using cryptogra
 | 
			
		||||
 | 
			
		||||
# Ripple Client Applications #
 | 
			
		||||
 | 
			
		||||
The official web client for the Ripple Network is available at [https://ripple.com/client/](). In order to get an account on the network, you will have to find someone to give or sell you some amount of XRP in excess of the reserve requirement. In the future, official downloadable clients will also be available.
 | 
			
		||||
The official web client for the Ripple Network is available at [https://rippletrade.com/](). There is also an official downloadable client at [http://download.ripple.com/](). 
 | 
			
		||||
 | 
			
		||||
In order to activate your account, you must fund it with enough XRP to meet the account reserve (currently 20 XRP). You can do this in a few different ways:
 | 
			
		||||
 | 
			
		||||
* You can buy XRP with Bitcoins in the Ripple Trade client, under the [Fund](https://www.rippletrade.com/#/fund) tab.
 | 
			
		||||
* You can have someone who is already on the network send a payment to your account's address. 
 | 
			
		||||
* Keep an eye out for promotions that give away free XRP to developers.
 | 
			
		||||
 | 
			
		||||
# Ripple APIs #
 | 
			
		||||
 | 
			
		||||
@@ -16,9 +22,9 @@ If you are building your own client, you have several options of interfaces that
 | 
			
		||||
 | 
			
		||||
| Tool | Summary | Interface | Abstraction Level | Pros | Cons |
 | 
			
		||||
|------|---------|-----------------------|-------------------|------|------|
 | 
			
		||||
| [gatewayd](https://github.com/ripple/gatewayd) | Skeleton for implementing gateway functionality as a Node.js application | HTTP | Very high | ✓ Most functionality needed to operate a gateway is already implemented | ✗ Only intended for gateways <br> ✗ Requires Node.js |
 | 
			
		||||
| [Ripple-REST](?p=ripple-rest-api) | RESTful interface to `rippled` as a Node.js application | HTTP | High | ✓ Simple robust transaction submission <br> ✓ Broad HTTP-client support | ✗ Lacks access to a few features like viewing currency exchange offers <br> ✗ Requires Node.js |
 | 
			
		||||
| [ripple-lib](https://github.com/ripple/ripple-lib) | Reference implementation for accessing the WebSocket API | Javascript | Moderate | ✓ Simple robust transaction submission<span class='draft-comment'>(Confirm this)</span> <br> ✓ Good balance of simplicity and power | ✗ Javascript only (Clients for other languages are in progress) |
 | 
			
		||||
| [rippled WebSocket API](?p=web-sockets-api) | Powerful, asynchronous API built on the WebSocket protocol | [WebSocket](http://en.wikipedia.org/wiki/Websocket) | Low | ✓ Access to all Ripple functionality <br> ✓ Can be pushed ordered stream data | ✗ Fewer convenient abstractions <br> ✗ WebSocket clients are rare outside of Javascript |
 | 
			
		||||
| [rippled JSON-RPC API](?p=web-sockets-api) <!--note: that's not a typo, the websocket and json-rpc docs are on the same page--> | Powerful, synchronous API built on the [JSON-RPC convention](http://json-rpc.org/) | HTTP | Low | ✓ Access to almost all Ripple functionality <br> ✓ Broad HTTP-client support | ✗ Fewer convenient abstractions <br> ✗ Callbacks may arrive out of order <br> ✗ No incremental pathfinding |
 | 
			
		||||
| [gatewayd](https://github.com/ripple/gatewayd) | Skeleton for implementing gateway functionality as a Node.js application | HTTP interface | Very high abstraction | ✓ Most functionality needed to operate a gateway is already implemented | ✗ Only intended for gateways <br> ✗ Requires Node.js |
 | 
			
		||||
| [Ripple-REST](?p=ripple-rest-api) | RESTful interface to `rippled` as a Node.js application | HTTP interface | High abstraction | ✓ Simple robust transaction submission <br> ✓ Broad HTTP-client support | ✗ Lacks access to a few features like viewing currency exchange offers <br> ✗ Requires Node.js |
 | 
			
		||||
| [ripple-lib](https://github.com/ripple/ripple-lib) | Reference implementation for accessing the WebSocket API | Javascript library | Moderate abstraction | ✓ Simple robust transaction submission<br> ✓ Good balance of simplicity and power | ✗ Javascript only (Clients for other languages are in progress) |
 | 
			
		||||
| [rippled WebSocket API](?p=web-sockets-api) | Powerful, asynchronous API built on the WebSocket protocol | [WebSocket](http://en.wikipedia.org/wiki/Websocket) interface | Low abstraction | ✓ Access to all Ripple functionality <br> ✓ Can be pushed ordered stream data | ✗ Fewer convenient abstractions <br> ✗ WebSocket clients are rare outside of Javascript |
 | 
			
		||||
| [rippled JSON-RPC API](?p=web-sockets-api) <!--note: that's not a typo, the websocket and json-rpc docs are on the same page--> | Powerful, synchronous API built on the [JSON-RPC convention](http://json-rpc.org/) | HTTP interface | Low abstraction | ✓ Access to almost all Ripple functionality <br> ✓ Broad HTTP-client support | ✗ Fewer convenient abstractions <br> ✗ Callbacks may arrive out of order <br> ✗ No incremental pathfinding |
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										632
									
								
								js/api-main.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,632 @@
 | 
			
		||||
 | 
			
		||||
;(function() {
 | 
			
		||||
 | 
			
		||||
  var request_button  = $('#request_button');
 | 
			
		||||
  var online_state    = $('#online_state');
 | 
			
		||||
  var command_wrapper = $('#command_wrapper');
 | 
			
		||||
  var command_list    = $(command_wrapper).find('#command_list');
 | 
			
		||||
  var commands        = $(command_list).find('li');
 | 
			
		||||
  var command_table   = $(command_wrapper).find('#command_table');
 | 
			
		||||
  var input           = $(command_wrapper).find('#input');
 | 
			
		||||
  var description     = $(input).find('#description');
 | 
			
		||||
  var options         = $(input).find('#options');
 | 
			
		||||
  var output          = $(command_wrapper).find('#output');
 | 
			
		||||
  var response        = $(command_wrapper).find('#response');
 | 
			
		||||
  var request         = $(command_wrapper).find('#request');
 | 
			
		||||
  var status          = $(command_wrapper).find('#status');
 | 
			
		||||
  var info            = $(command_wrapper).find('#info');
 | 
			
		||||
  var spinner = $(".loader");
 | 
			
		||||
 | 
			
		||||
  var remote = new ripple.Remote({
 | 
			
		||||
    trusted:        true,
 | 
			
		||||
    local_signing:  true,
 | 
			
		||||
    local_fee:      false,
 | 
			
		||||
    servers: [
 | 
			
		||||
      {
 | 
			
		||||
        host:    's1.ripple.com',
 | 
			
		||||
        port:    443,
 | 
			
		||||
        secure:  true
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  function set_online_state(state) {
 | 
			
		||||
    var state = state.toLowerCase();
 | 
			
		||||
    $(online_state).removeClass();
 | 
			
		||||
    $(online_state).addClass(state);
 | 
			
		||||
    $(online_state).text(state);
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  remote.on('disconnect', function() {
 | 
			
		||||
    set_online_state('disconnected');
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  remote.on('connect', function() {
 | 
			
		||||
    set_online_state('connected');
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  /* ---- ---- ---- ---- ---- */
 | 
			
		||||
 | 
			
		||||
  //For tracking request IDs
 | 
			
		||||
  function id() { return id._c; };
 | 
			
		||||
 | 
			
		||||
  id._c = 2;
 | 
			
		||||
 | 
			
		||||
  id.reset = function() {
 | 
			
		||||
    id._c = remote._get_server()._id;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  /* ---- ---- ---- ---- ---- */
 | 
			
		||||
 | 
			
		||||
  //Build requests
 | 
			
		||||
  var selected_request = { };
 | 
			
		||||
  var requests = { };
 | 
			
		||||
 | 
			
		||||
  $(commands).each(function(i, el) {
 | 
			
		||||
    requests[$(el).text()] = 0;
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  function Request(cmd, attrs) {
 | 
			
		||||
    var obj = {
 | 
			
		||||
      id:       void(0),
 | 
			
		||||
      name:     cmd,
 | 
			
		||||
      message:  { command:  cmd }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Object.keys(attrs || { }).forEach(function(k) {
 | 
			
		||||
      if (k[0] === '_') {
 | 
			
		||||
        obj[k] = attrs[k];
 | 
			
		||||
      } else {
 | 
			
		||||
        obj.message[k] = attrs[k];
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    requests[cmd] = obj;
 | 
			
		||||
 | 
			
		||||
    return obj;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  var sample_address = 'r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59';
 | 
			
		||||
  var sample_tx = 'E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7';
 | 
			
		||||
 | 
			
		||||
  /* ---- ---- */
 | 
			
		||||
 | 
			
		||||
  Request('server_info', {
 | 
			
		||||
    _description: 'Returns information about the state of the server for human consumption. Results are subject to change without notice.',
 | 
			
		||||
    _link: 'rippled-apis.html#server-info'
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  Request('server_state', {
 | 
			
		||||
    _description: 'Returns information about the state of the server for machine consumption.',
 | 
			
		||||
    _link: 'rippled-apis.html#server-state'
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  Request('ping', {
 | 
			
		||||
    _description: 'This command is used to check connectivity for clients. Websocket clients can use this to determine turn around time and actively discover loss of connectivity to a server.',
 | 
			
		||||
    _link: 'rippled-apis.html#ping'
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  /* ---- ---- */
 | 
			
		||||
 | 
			
		||||
  Request('subscribe', {
 | 
			
		||||
    accounts: [ ],
 | 
			
		||||
    streams: [ 'server', 'ledger' ],
 | 
			
		||||
    _description: 'Start receiving selected streams from the server.',
 | 
			
		||||
    _link: 'rippled-apis.html#subscribe'
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  Request('unsubscribe', {
 | 
			
		||||
    accounts: [ ],
 | 
			
		||||
    streams: [ 'server', 'ledger' ],
 | 
			
		||||
    _description: 'Stop receiving selected streams from the server.',
 | 
			
		||||
    _link: 'rippled-apis.html#unsubscribe'
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  /* ---- ---- */
 | 
			
		||||
 | 
			
		||||
  Request('ledger', {
 | 
			
		||||
    ledger_index:  void(0),
 | 
			
		||||
    ledger_hash:   void(0),
 | 
			
		||||
    full:          false,
 | 
			
		||||
    expand:        false,
 | 
			
		||||
    transactions:  true,
 | 
			
		||||
    accounts:      true,
 | 
			
		||||
    _description: 'Returns ledger information.',
 | 
			
		||||
    _link: 'rippled-apis.html#ledger'
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  Request('ledger_entry', {
 | 
			
		||||
    type:          'account_root',
 | 
			
		||||
    account_root:  sample_address,
 | 
			
		||||
    ledger_index:   'validated',
 | 
			
		||||
    ledger_hash:  void(0),
 | 
			
		||||
    _description: 'Returns a ledger entry. For untrusted servers, the index option provides raw access to ledger entries and proof.',
 | 
			
		||||
    _link: 'rippled-apis.html#ledger-entry'
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  Request('ledger_closed', {
 | 
			
		||||
    _description: 'Returns the most recent closed ledger index. If a validation list has been provided, then validations should be available.',
 | 
			
		||||
    _link: 'rippled-apis.html#ledger-closed'
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  Request('ledger_current', {
 | 
			
		||||
    _description: 'Returns the current proposed ledger index. Proof is not possible for the current ledger. This command is primarily useful for testing.',
 | 
			
		||||
    _link: 'rippled-apis.html#ledger-current'
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  /* ---- ---- */
 | 
			
		||||
 | 
			
		||||
  Request('account_info', {
 | 
			
		||||
    account: sample_address,
 | 
			
		||||
    _description: 'Returns information about the specified account.',
 | 
			
		||||
    _link: 'rippled-apis.html#account-info'
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  Request('account_lines', {
 | 
			
		||||
    account:        sample_address,
 | 
			
		||||
    account_index:  void(0),
 | 
			
		||||
    ledger:         'current',
 | 
			
		||||
    _description: 'Returns information about the ripple credit lines for the specified account.',
 | 
			
		||||
    _link: 'rippled-apis.html#account-lines'
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  Request('account_offers', {
 | 
			
		||||
    account:        sample_address,
 | 
			
		||||
    account_index:  void(0),
 | 
			
		||||
    ledger:         'current',
 | 
			
		||||
    _description: 'Returns the outstanding offers for a specified account.',
 | 
			
		||||
    _link: 'rippled-apis.html#account-offers'
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  Request('account_tx', {
 | 
			
		||||
    account:           sample_address,
 | 
			
		||||
    ledger_index_min:  -1,
 | 
			
		||||
    ledger_index_max:  -1,
 | 
			
		||||
    binary:            false,
 | 
			
		||||
    count:             false,
 | 
			
		||||
    descending:        false,
 | 
			
		||||
    offset:            0,
 | 
			
		||||
    limit:             10,
 | 
			
		||||
    forward:           false,
 | 
			
		||||
    marker:            void(0),
 | 
			
		||||
    _description: 'Returns a list of transactions that applied to a specified account.',
 | 
			
		||||
    _link: 'rippled-apis.html#account-tx'
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  /* ---- ---- */
 | 
			
		||||
 | 
			
		||||
  Request('transaction_entry', {
 | 
			
		||||
    tx_hash:       sample_tx,
 | 
			
		||||
    ledger_index:  348734,
 | 
			
		||||
    ledger_hash:   void(0),
 | 
			
		||||
    _description: 'Returns information about a specified transaction.',
 | 
			
		||||
    _link: 'rippled-apis.html#transaction-entry'
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  Request('tx', {
 | 
			
		||||
    transaction: sample_tx,
 | 
			
		||||
    _description: 'Returns information about a specified transaction.',
 | 
			
		||||
    _link: 'rippled-apis.html#tx'
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  Request('tx_history', {
 | 
			
		||||
    start: 10,
 | 
			
		||||
    _description: 'Returns the last N transactions starting from start index, in descending order, by ledger sequence number. Server sets N.',
 | 
			
		||||
    _link: 'rippled-apis.html#tx-history'
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  Request('book_offers', {
 | 
			
		||||
    ledger_hash: void(0),
 | 
			
		||||
    ledger_index: void(0),
 | 
			
		||||
    taker: sample_address,
 | 
			
		||||
    taker_gets: ripple.Amount.from_json('1/EUR/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B').to_json(),
 | 
			
		||||
    taker_pays: ripple.Amount.from_json('1/USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B').to_json(),
 | 
			
		||||
    _description: 'Returns the offers for an order book as one or more pages.',
 | 
			
		||||
    _link: 'rippled-apis.html#book-offers'
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  Request('path_find', {
 | 
			
		||||
    subcommand: 'create',
 | 
			
		||||
    source_account: sample_address,
 | 
			
		||||
    destination_account: 'r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59',
 | 
			
		||||
    destination_amount: ripple.Amount.from_json('0.001/USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B').to_json(),
 | 
			
		||||
    _description: 'Find or modify a payment pathway between specified accounts.',
 | 
			
		||||
    _link: 'rippled-apis.html#path-find'
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  Request('ripple_path_find', {
 | 
			
		||||
    ledger_hash : void(0),
 | 
			
		||||
    ledger_index : void(0),
 | 
			
		||||
    source_account : sample_address,
 | 
			
		||||
    source_currencies : [ { currency : 'USD' } ],
 | 
			
		||||
    destination_account : 'r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59',
 | 
			
		||||
    destination_amount : ripple.Amount.from_json('0.001/USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B').to_json(),
 | 
			
		||||
    _description: 'Find a path and estimated costs. For non-interactive use, such as automated payment sending from business integrations, ripple_path_find gives you single response that you can use immediately. However, for uses that need updated paths as new ledgers close, repeated calls becomes expensive. In those cases, when possible, use the RPC path_find in place of this API.',
 | 
			
		||||
    _link: 'rippled-apis.html#ripple-path-find'
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  Request('submit', {
 | 
			
		||||
    secret: 'sssssssssssssssssssssssssssss',
 | 
			
		||||
    tx_json: {
 | 
			
		||||
      Flags: 0,
 | 
			
		||||
      TransactionType: 'AccountSet',
 | 
			
		||||
      Account: 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn',
 | 
			
		||||
      Sequence: void(0),
 | 
			
		||||
      Fee: '15',
 | 
			
		||||
      Flags: 0
 | 
			
		||||
    },
 | 
			
		||||
    _description: 'Submits a transaction to the network. <span class="btn-danger">Please, only use test accounts here.</span>',
 | 
			
		||||
    _link: 'rippled-apis.html#submit'
 | 
			
		||||
  });
 | 
			
		||||
  
 | 
			
		||||
  Request('sign', {
 | 
			
		||||
  tx_json : {
 | 
			
		||||
      "TransactionType" : "Payment",
 | 
			
		||||
      "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
 | 
			
		||||
      "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
 | 
			
		||||
      "Amount" : { 
 | 
			
		||||
         "currency" : "USD",
 | 
			
		||||
         "value" : "1",
 | 
			
		||||
         "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn"
 | 
			
		||||
      }
 | 
			
		||||
   },
 | 
			
		||||
   secret : "sssssssssssssssssssssssssssss",
 | 
			
		||||
   offline: false,
 | 
			
		||||
   _description: 'Sends a transaction to be signed by the server. <span class="btn-danger">Please, only use test accounts here.</span>',
 | 
			
		||||
   _link: 'rippled-apis.html#sign'
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
  /* ---- ---- ---- ---- ---- */
 | 
			
		||||
 | 
			
		||||
  function rewrite_obj(obj) {
 | 
			
		||||
    if (typeof obj === 'string') {
 | 
			
		||||
      var obj = JSON.parse(obj);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    var rewrite = { };
 | 
			
		||||
    if (obj.id) rewrite.id = obj.id;
 | 
			
		||||
    if (obj.command) rewrite.command = obj.command;
 | 
			
		||||
    if (obj.status) rewrite.status = obj.status;
 | 
			
		||||
    if (obj.type) rewrite.type = obj.type;
 | 
			
		||||
 | 
			
		||||
    Object.keys(obj).forEach(function(k) {
 | 
			
		||||
      if (!rewrite.hasOwnProperty(k)) {
 | 
			
		||||
        rewrite[k] = obj[k];
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    return rewrite;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  var cm_request = CodeMirror(request.get(0), {
 | 
			
		||||
    mode: 'javascript',
 | 
			
		||||
    json: true,
 | 
			
		||||
    smartIndent: false
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  var cm_response = CodeMirror(response.get(0), {
 | 
			
		||||
    mode: 'javascript',
 | 
			
		||||
    json: true,
 | 
			
		||||
    smartIndent: false,
 | 
			
		||||
    readOnly: true
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  function set_input(command) {
 | 
			
		||||
    var message = command.message;
 | 
			
		||||
 | 
			
		||||
    if (command._description) {
 | 
			
		||||
      //$(description).html(command._description).show();
 | 
			
		||||
      $(description).html($('<a>').attr('href', command._link).html(command._description));
 | 
			
		||||
    } else {
 | 
			
		||||
      $(description).hide();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    $('#selected_command').html($('<a>')
 | 
			
		||||
                                .attr('href', command._link)
 | 
			
		||||
                                .text(command.name));
 | 
			
		||||
 | 
			
		||||
    cm_request.setValue(JSON.stringify(message, null, 2));
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  var STREAM_PAUSED = false;
 | 
			
		||||
  var STREAM_SHOWN  = false;
 | 
			
		||||
  var WAITING       = false;
 | 
			
		||||
  var events = [ ];
 | 
			
		||||
 | 
			
		||||
  function set_output(message) {
 | 
			
		||||
    var parsed = rewrite_obj(message);
 | 
			
		||||
    var is_response = (parsed.type === 'response');
 | 
			
		||||
 | 
			
		||||
    if (is_response && parsed.id === id._c) {
 | 
			
		||||
      if (!WAITING) return;
 | 
			
		||||
      else WAITING = false;
 | 
			
		||||
      spinner.hide();
 | 
			
		||||
 | 
			
		||||
      var request_header = '<span class="request_name">'
 | 
			
		||||
      + selected_request.name;
 | 
			
		||||
      + '</span>';
 | 
			
		||||
 | 
			
		||||
      var timestamp = '<span class="timestamp">'
 | 
			
		||||
      + (Date.now() - selected_request.t) + 'ms'
 | 
			
		||||
      + '</span>';
 | 
			
		||||
 | 
			
		||||
      $(request_button).removeClass('depressed');
 | 
			
		||||
 | 
			
		||||
      $(info).html(request_header + timestamp);
 | 
			
		||||
 | 
			
		||||
      $(response).removeClass()
 | 
			
		||||
      $(response).addClass(parsed.error ? 'error' : 'success');
 | 
			
		||||
 | 
			
		||||
      cm_response.setValue(JSON.stringify(parsed, null, 2));
 | 
			
		||||
 | 
			
		||||
      ++id._c;
 | 
			
		||||
    } else if (!is_response && !STREAM_PAUSED) {
 | 
			
		||||
      var el = $('<div class="status">').get(0);
 | 
			
		||||
 | 
			
		||||
      $(status).prepend(el);
 | 
			
		||||
 | 
			
		||||
      CodeMirror(el, {
 | 
			
		||||
        value:        JSON.stringify(parsed, null, 2),
 | 
			
		||||
        mode:         'javascript',
 | 
			
		||||
        json:         true,
 | 
			
		||||
        smartIndent:  false,
 | 
			
		||||
        readOnly:     true
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
      events.unshift(parsed);
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  function select_request(request) {
 | 
			
		||||
    selected_request = requests[request];
 | 
			
		||||
    selected_request.message.id = id();
 | 
			
		||||
    selected_request.message = rewrite_obj(selected_request.message);
 | 
			
		||||
    set_input(selected_request);
 | 
			
		||||
    
 | 
			
		||||
    //Remove sign button & sequence number lookup
 | 
			
		||||
 | 
			
		||||
//    if (selected_request.name !== 'submit') {
 | 
			
		||||
//      $('#sign_button').hide();
 | 
			
		||||
//      return;
 | 
			
		||||
//    }
 | 
			
		||||
 | 
			
		||||
    if (!remote._connected) {
 | 
			
		||||
      remote.once('connected', function() {
 | 
			
		||||
        select_request(request);
 | 
			
		||||
      });
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
//    $('#sign_button').show();
 | 
			
		||||
 | 
			
		||||
//    var tx_json = selected_request.message.tx_json;
 | 
			
		||||
 | 
			
		||||
//    if (ripple.UInt160.is_valid(tx_json.Account)) {
 | 
			
		||||
//      selected_request.message.id = id._c;
 | 
			
		||||
//      remote.request_account_info(tx_json.Account, function(err, info) {
 | 
			
		||||
//        id.reset();
 | 
			
		||||
//        tx_json.Sequence = info.account_data.Sequence;
 | 
			
		||||
//        set_input(selected_request);
 | 
			
		||||
//      });
 | 
			
		||||
//    }
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  /* ---- ---- ---- ---- ---- */
 | 
			
		||||
 | 
			
		||||
  $(commands).click(function() {
 | 
			
		||||
    var cmd = $(this).text().trim();
 | 
			
		||||
 | 
			
		||||
    if (!requests[cmd]) return;
 | 
			
		||||
 | 
			
		||||
    select_request(cmd, true);
 | 
			
		||||
    window.location.hash = cmd;
 | 
			
		||||
 | 
			
		||||
    $(this).siblings().removeClass('selected');
 | 
			
		||||
    $(this).addClass('selected');
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  var previous_key = void(0);
 | 
			
		||||
 | 
			
		||||
  $(window).keydown(function(e) {
 | 
			
		||||
    if (e.which === 13 && previous_key === 17) {
 | 
			
		||||
      //ctrl + enter
 | 
			
		||||
      e.preventDefault();
 | 
			
		||||
      e.stopPropagation();
 | 
			
		||||
      $(request_button).click();
 | 
			
		||||
    }
 | 
			
		||||
    previous_key = e.which;
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  /* ---- ---- ---- ---- ---- */
 | 
			
		||||
 | 
			
		||||
  function prepare_request(request) {
 | 
			
		||||
  
 | 
			
		||||
    var isArray = Array.isArray(request);
 | 
			
		||||
    var result  = isArray ? [ ] : { };
 | 
			
		||||
 | 
			
		||||
    Object.keys(request).forEach(function(k) {
 | 
			
		||||
      var v = request[k];
 | 
			
		||||
      switch (typeof v) {
 | 
			
		||||
        case 'undefined': break;
 | 
			
		||||
        case 'object':
 | 
			
		||||
          result[k] = prepare_request(v);
 | 
			
		||||
          break;
 | 
			
		||||
        default:
 | 
			
		||||
          result[k] = v;
 | 
			
		||||
          break
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    if (isArray) {
 | 
			
		||||
      result = result.filter(function(el) {
 | 
			
		||||
        return el !== null && typeof el !== 'undefined'
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    var empty = isArray && result.length === 0;
 | 
			
		||||
 | 
			
		||||
    return empty ? void(0) : result;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  $('#stream_show').click(function() {
 | 
			
		||||
    if ($(status).is(':visible')) {
 | 
			
		||||
      $(status).hide();
 | 
			
		||||
      $(status).empty();
 | 
			
		||||
      $(this).text('show');
 | 
			
		||||
      STREAM_SHOWN = false;
 | 
			
		||||
    } else {
 | 
			
		||||
      $(this).text('hide');
 | 
			
		||||
      $(status).show();
 | 
			
		||||
      STREAM_SHOWN = true;
 | 
			
		||||
 | 
			
		||||
      events.forEach(function(event) {
 | 
			
		||||
        var el = $('<div class="json status">')[0];
 | 
			
		||||
        $(status).append(el);
 | 
			
		||||
        CodeMirror(el, {
 | 
			
		||||
          value: JSON.stringify(event, null, 2),
 | 
			
		||||
          mode: 'javascript',
 | 
			
		||||
          json: true
 | 
			
		||||
        });
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  $('#stream_pause').click(function() {
 | 
			
		||||
    if ($(this).hasClass('paused')) {
 | 
			
		||||
      $(this).removeClass('paused');
 | 
			
		||||
      $(this).text('pause');
 | 
			
		||||
      $(status).removeClass('obscured');
 | 
			
		||||
      STREAM_PAUSED = false;
 | 
			
		||||
    } else {
 | 
			
		||||
      $(this).addClass('paused');
 | 
			
		||||
      $(this).text('unpause');
 | 
			
		||||
      $(status).addClass('obscured');
 | 
			
		||||
      STREAM_PAUSED = true;
 | 
			
		||||
    };
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
//stop opening all links in new tabs
 | 
			
		||||
//  $(document.body).delegate('a', 'click', function(e) {
 | 
			
		||||
//    e.preventDefault();
 | 
			
		||||
//    e.stopPropagation();
 | 
			
		||||
//    window.open($(this).attr('href'));
 | 
			
		||||
//  });
 | 
			
		||||
 | 
			
		||||
  var tooltip = $('#tooltip');
 | 
			
		||||
  var mousedown = false;
 | 
			
		||||
 | 
			
		||||
  $(window).mousedown(function() { mousedown = true; });
 | 
			
		||||
  $(window).mouseup(function() { mousedown = false; });
 | 
			
		||||
 | 
			
		||||
//get rid of sign button
 | 
			
		||||
//  $('#sign_button').click(function() {
 | 
			
		||||
//    if (selected_request._signed) return;
 | 
			
		||||
//
 | 
			
		||||
//    var self = this;
 | 
			
		||||
//    var message = cm_request.getValue();
 | 
			
		||||
//
 | 
			
		||||
//    try {
 | 
			
		||||
//      message = JSON.parse(message);
 | 
			
		||||
//    } catch(e) {
 | 
			
		||||
//      alert('Invalid JSON');
 | 
			
		||||
//      return;
 | 
			
		||||
//    }
 | 
			
		||||
//
 | 
			
		||||
//    var tx_json = message.tx_json;
 | 
			
		||||
//
 | 
			
		||||
//    if (!ripple.UInt160.is_valid(tx_json.Account)) {
 | 
			
		||||
//      alert('Account is invalid');
 | 
			
		||||
//      return;
 | 
			
		||||
//    }
 | 
			
		||||
//
 | 
			
		||||
//    if (!message.secret) {
 | 
			
		||||
//      alert('Transacting account must have specified secret');
 | 
			
		||||
//      return;
 | 
			
		||||
//    }
 | 
			
		||||
//
 | 
			
		||||
//    $(this).addClass('depressed');
 | 
			
		||||
//
 | 
			
		||||
//    remote.account(tx_json.Account).get_next_sequence(function(e, s) {
 | 
			
		||||
//      id.reset();
 | 
			
		||||
//      tx_json.Sequence = s;
 | 
			
		||||
//
 | 
			
		||||
//      try {
 | 
			
		||||
//        var tx = remote.transaction();
 | 
			
		||||
//        tx.tx_json = tx_json;
 | 
			
		||||
//        tx._secret = message.secret;
 | 
			
		||||
//        tx.complete();
 | 
			
		||||
//        tx.sign();
 | 
			
		||||
//      } catch(e) {
 | 
			
		||||
//        alert('Unable to sign transaction ' + e.message);
 | 
			
		||||
//        $(self).removeClass('depressed');
 | 
			
		||||
//        return;
 | 
			
		||||
//      }
 | 
			
		||||
//
 | 
			
		||||
//      message.tx_blob = tx.serialize().to_hex();
 | 
			
		||||
//
 | 
			
		||||
//      delete message.secret;
 | 
			
		||||
//      delete message.tx_json;
 | 
			
		||||
//
 | 
			
		||||
//      selected_request.message = message;
 | 
			
		||||
//      selected_request._signed = true;
 | 
			
		||||
//
 | 
			
		||||
//      set_input(selected_request);
 | 
			
		||||
//
 | 
			
		||||
//      $(self).removeClass('depressed');
 | 
			
		||||
//    });
 | 
			
		||||
//  });
 | 
			
		||||
 | 
			
		||||
  function send_request() {
 | 
			
		||||
    var request = remote.request_server_info();
 | 
			
		||||
    var value   = cm_request.getValue();
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      var message = JSON.parse(value);
 | 
			
		||||
    } catch(e) {
 | 
			
		||||
      alert('Invalid request JSON');
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    $(this).addClass('depressed');
 | 
			
		||||
    $(response).addClass('obscured');
 | 
			
		||||
 | 
			
		||||
    WAITING                  = true;
 | 
			
		||||
    selected_request.message = message;
 | 
			
		||||
    selected_request.t       = Date.now();
 | 
			
		||||
    spinner.show();
 | 
			
		||||
 | 
			
		||||
    request.message = prepare_request(message);
 | 
			
		||||
    request.request();
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  function init() {
 | 
			
		||||
    id._c = remote._get_server()._id;
 | 
			
		||||
    remote._get_server().on('message', set_output);
 | 
			
		||||
    $(request_button).click(send_request);
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  $(function() {
 | 
			
		||||
    set_online_state('connecting');
 | 
			
		||||
 | 
			
		||||
    remote.connect(init);
 | 
			
		||||
 | 
			
		||||
    if (window.location.hash) {
 | 
			
		||||
      var cmd   = window.location.hash.slice(1).toLowerCase();
 | 
			
		||||
      var keys  = Object.keys(requests);
 | 
			
		||||
      var index = keys.indexOf(cmd);
 | 
			
		||||
 | 
			
		||||
      if (index === -1) return;
 | 
			
		||||
 | 
			
		||||
      var el = $(commands).eq(index);
 | 
			
		||||
 | 
			
		||||
      select_request(cmd);
 | 
			
		||||
      window.cmd = cmd;
 | 
			
		||||
 | 
			
		||||
      $(el).siblings().removeClass('selected');
 | 
			
		||||
      $(el).addClass('selected');
 | 
			
		||||
    } else {
 | 
			
		||||
      select_request('server_info');
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
})();
 | 
			
		||||
							
								
								
									
										1
									
								
								js/api-main.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										6
									
								
								js/api-ripple.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										462
									
								
								js/apitool-rest.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,462 @@
 | 
			
		||||
var commands = $("#command_list li");
 | 
			
		||||
var request_body = $("#request_body");
 | 
			
		||||
var request_button = $("#request_button");
 | 
			
		||||
var response_body = $("#response_body");
 | 
			
		||||
var response_code = $("#rest_responsecode");
 | 
			
		||||
var rest_url = $('#rest_url');
 | 
			
		||||
var rest_method = $("#rest_method");
 | 
			
		||||
var selected_command = $("#selected_command");
 | 
			
		||||
var spinner = $(".loader");
 | 
			
		||||
var reminders = $("#rest_url_wrapper .rest_reminders");
 | 
			
		||||
var test_warning = $("#test_warning");
 | 
			
		||||
 | 
			
		||||
var GET = "GET";
 | 
			
		||||
var POST = "POST";
 | 
			
		||||
var PUT = "PUT";
 | 
			
		||||
var DELETE = "DELETE";
 | 
			
		||||
var URL_BASE = "https://api.ripple.com:443";
 | 
			
		||||
 | 
			
		||||
var DOC_BASE = "ripple-rest.html";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function slugify(str) {
 | 
			
		||||
  str = str.replace(/^\s+|\s+$/g, ''); // trim
 | 
			
		||||
  str = str.toLowerCase();
 | 
			
		||||
  
 | 
			
		||||
  // remove accents, swap ñ for n, etc
 | 
			
		||||
  var from = "àáäâèéëêìíïîòóöôùúüûñç·/_,:;";
 | 
			
		||||
  var to   = "aaaaeeeeiiiioooouuuunc------";
 | 
			
		||||
  for (var i=0, l=from.length ; i<l ; i++) {
 | 
			
		||||
    str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  str = str.replace(/[^a-z0-9 -]/g, '') // remove invalid chars
 | 
			
		||||
    .replace(/\s+/g, '-') // collapse whitespace and replace by -
 | 
			
		||||
    .replace(/-+/g, '-'); // collapse dashes
 | 
			
		||||
 | 
			
		||||
  return str;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//Build requests
 | 
			
		||||
var requests = { };
 | 
			
		||||
function Request(name, obj) {
 | 
			
		||||
    obj.name = name;
 | 
			
		||||
    requests[slugify(name)] = obj;
 | 
			
		||||
 | 
			
		||||
    return obj;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
$(commands).click(function() {
 | 
			
		||||
    var cmd = slugify($(this).text().trim());
 | 
			
		||||
 | 
			
		||||
    if (!requests[cmd]) return;
 | 
			
		||||
 | 
			
		||||
    select_request(cmd, true);
 | 
			
		||||
    window.location.hash = cmd;
 | 
			
		||||
 | 
			
		||||
    $(this).siblings().removeClass('selected');
 | 
			
		||||
    $(this).addClass('selected');
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//---------- List of requests ------------------------//
 | 
			
		||||
 | 
			
		||||
var DEFAULT_ADDRESS_1 = "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn";
 | 
			
		||||
var DEFAULT_ADDRESS_2 = "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX";
 | 
			
		||||
var DEFAULT_HASH = "9D591B18EDDD34F0B6CF4223A2940AEA2C3CC778925BABF289E0011CD8FA056E";
 | 
			
		||||
 | 
			
		||||
Request('Generate Account', {
 | 
			
		||||
    method: GET,
 | 
			
		||||
    path: "/v1/accounts/new",
 | 
			
		||||
    description: 'Generate the keys for a potential new account',
 | 
			
		||||
    link: '#generate-account'
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
Request('Get Account Balances', {
 | 
			
		||||
    method: GET,
 | 
			
		||||
    path: '/v1/accounts/{:address}/balances?{:query_params}',
 | 
			
		||||
    description: 'Retrieve the current balances for the given Ripple account',
 | 
			
		||||
    link: '#get-account-balances',
 | 
			
		||||
    params: {
 | 
			
		||||
        "{:address}": DEFAULT_ADDRESS_1,
 | 
			
		||||
        "{:query_params}": "currency=USD"
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
Request('Get Account Settings', {
 | 
			
		||||
    method: GET,
 | 
			
		||||
    path: '/v1/accounts/{:address}/settings',
 | 
			
		||||
    description: 'Retrieve the current settings for the given Ripple account',
 | 
			
		||||
    link: '#get-account-settings',
 | 
			
		||||
    params: {
 | 
			
		||||
        "{:address}": DEFAULT_ADDRESS_1
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
Request('Update Account Settings', {
 | 
			
		||||
    method: POST,
 | 
			
		||||
    path: '/v1/accounts/{:address}/settings',
 | 
			
		||||
    description: 'Change the current settings for the given Ripple account.',
 | 
			
		||||
    link: '#update-account-settings',
 | 
			
		||||
    test_only: true,
 | 
			
		||||
    params: {
 | 
			
		||||
        "{:address}": DEFAULT_ADDRESS_1
 | 
			
		||||
    },
 | 
			
		||||
    body: {
 | 
			
		||||
        secret: "sssssssssssssssssssssssssssss",
 | 
			
		||||
        settings: {
 | 
			
		||||
            require_destination_tag: false,
 | 
			
		||||
            require_authorization: false,
 | 
			
		||||
            disallow_xrp: false,
 | 
			
		||||
            disable_master: false,
 | 
			
		||||
            email_hash: "98b4375e1d753e5b91627516f6d70977"
 | 
			
		||||
        } 
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
Request('Prepare Payment', {
 | 
			
		||||
    method: GET,
 | 
			
		||||
    path: '/v1/accounts/{:source_address}/payments/paths/{:destination_address}/{:amount}?{:query_params}',
 | 
			
		||||
    description: 'Change the current settings for the given Ripple account',
 | 
			
		||||
    link: '#prepare-payment',
 | 
			
		||||
    params: {
 | 
			
		||||
        "{:source_address}": DEFAULT_ADDRESS_1,
 | 
			
		||||
        "{:destination_address}": DEFAULT_ADDRESS_2,
 | 
			
		||||
        "{:amount}": "1+USD+rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
 | 
			
		||||
        "{:query_params}": "source_currencies=USD"
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
Request('Submit Payment', {
 | 
			
		||||
    method: POST,
 | 
			
		||||
    path: '/v1/payments',
 | 
			
		||||
    description: 'Send a prepared payment to the network.',
 | 
			
		||||
    link: '#submit-payment',
 | 
			
		||||
    test_only: true,
 | 
			
		||||
    body: {
 | 
			
		||||
      "secret": "sssssssssssssssssssssssssssss",
 | 
			
		||||
      "client_resource_id": "348170b9-16b9-4927-854d-7f9d4a2a692d",
 | 
			
		||||
      "payment":     {
 | 
			
		||||
          "source_account": DEFAULT_ADDRESS_1,
 | 
			
		||||
          "source_tag": "",
 | 
			
		||||
          "source_amount": {
 | 
			
		||||
            "value": "1",
 | 
			
		||||
            "currency": "USD",
 | 
			
		||||
            "issuer": ""
 | 
			
		||||
          },
 | 
			
		||||
          "source_slippage": "0",
 | 
			
		||||
          "destination_account": DEFAULT_ADDRESS_2,
 | 
			
		||||
          "destination_tag": "",
 | 
			
		||||
          "destination_amount": {
 | 
			
		||||
            "value": "1",
 | 
			
		||||
            "currency": "USD",
 | 
			
		||||
            "issuer": DEFAULT_ADDRESS_1
 | 
			
		||||
          },
 | 
			
		||||
          "invoice_id": "",
 | 
			
		||||
          "paths": "[]",
 | 
			
		||||
          "partial_payment": false,
 | 
			
		||||
          "no_direct_ripple": false
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
Request("Confirm Payment", {
 | 
			
		||||
    method: GET,
 | 
			
		||||
    path: "/v1/accounts/{:address}/payments/{:hash}",
 | 
			
		||||
    description: "Retrieve details of a payment and its status",
 | 
			
		||||
    link: "#confirm-payment",
 | 
			
		||||
    params: {
 | 
			
		||||
        "{:address}": DEFAULT_ADDRESS_1,
 | 
			
		||||
        "{:hash}": DEFAULT_HASH
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
Request("Get Payment History", {
 | 
			
		||||
    method: GET,
 | 
			
		||||
    path: "/v1/accounts/{:address}/payments?{:query_params}",
 | 
			
		||||
    description: "Browse through the history of payments sent and received by an account",
 | 
			
		||||
    link: "#get-payment-history",
 | 
			
		||||
    params: {
 | 
			
		||||
        "{:address}": DEFAULT_ADDRESS_1,
 | 
			
		||||
        "{:query_params}": "direction=incoming&exclude_failed=true"
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
Request("Get Trustlines", {
 | 
			
		||||
    method: GET,
 | 
			
		||||
    path: "/v1/accounts/{:address}/trustlines?{:query_params}",
 | 
			
		||||
    description: "Check the status of one or more trustlines attached to an account",
 | 
			
		||||
    link: "#reviewing-trustlines",
 | 
			
		||||
    params: {
 | 
			
		||||
        "{:address}": DEFAULT_ADDRESS_1,
 | 
			
		||||
        "{:query_params}": "currency=USD&counterparty=ra5nK24KXen9AHvsdFTKHSANinZseWnPcX"
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
Request("Grant Trustline", {
 | 
			
		||||
    method: POST,
 | 
			
		||||
    path: "/v1/accounts/{:address}/trustlines",
 | 
			
		||||
    description: "Add or modify a trustline from this account.",
 | 
			
		||||
    link: "#granting-a-trustline",
 | 
			
		||||
    test_only: true,
 | 
			
		||||
    params: {
 | 
			
		||||
        "{:address}": DEFAULT_ADDRESS_1
 | 
			
		||||
    },
 | 
			
		||||
    body: {
 | 
			
		||||
        "secret": "sneThnzgBgxc3zXPG....",
 | 
			
		||||
        "trustline": {
 | 
			
		||||
            "limit": "110",
 | 
			
		||||
            "currency": "USD",
 | 
			
		||||
            "counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q",
 | 
			
		||||
            "allows_rippling": false
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
Request("Check Notifications", {
 | 
			
		||||
    method: GET,
 | 
			
		||||
    path: "/v1/accounts/{:address}/notifications/{:hash}",
 | 
			
		||||
    description: "Browse through the history of payments sent and received by an account",
 | 
			
		||||
    link: "#checking-notifications",
 | 
			
		||||
    params: {
 | 
			
		||||
        "{:address}": DEFAULT_ADDRESS_1,
 | 
			
		||||
        "{:hash}": DEFAULT_HASH
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
Request("Check Connection", {
 | 
			
		||||
    method: GET,
 | 
			
		||||
    path: "/v1/server/connected",
 | 
			
		||||
    description: "Check whether the REST server is connected to a rippled server",
 | 
			
		||||
    link: "#check-connection-state"
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
Request("Get Server Status", {
 | 
			
		||||
    method: GET,
 | 
			
		||||
    path: "/v1/server",
 | 
			
		||||
    description: "Retrieve information about the current status of the Ripple-REST server and the rippled server it is connected to",
 | 
			
		||||
    link: "#get-server-status"
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
Request("Retrieve Ripple Transaction", {
 | 
			
		||||
    method: GET,
 | 
			
		||||
    path: "/v1/tx/{:hash}",
 | 
			
		||||
    description: "Retrieve a raw Ripple transaction",
 | 
			
		||||
    link: "#retrieve-ripple-transaction",
 | 
			
		||||
    params: {
 | 
			
		||||
        "{:hash}": DEFAULT_HASH
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
Request("Generate UUID", {
 | 
			
		||||
    method: GET,
 | 
			
		||||
    path: "/v1/uuid",
 | 
			
		||||
    description: "Create a universally-unique identifier (UUID) to use as the client resource ID for a payment",
 | 
			
		||||
    link: "#create-client-resource-id"
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
//---------- End req. List ---------------------------//
 | 
			
		||||
 | 
			
		||||
var cm_request = CodeMirror(request_body.get(0), {
 | 
			
		||||
    mode: 'javascript',
 | 
			
		||||
    json: true,
 | 
			
		||||
    smartIndent: false
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
var cm_response = CodeMirror(response_body.get(0), {
 | 
			
		||||
    mode: 'javascript',
 | 
			
		||||
    json: true,
 | 
			
		||||
    smartIndent: false,
 | 
			
		||||
    readOnly: true
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
function update_method(el) {
 | 
			
		||||
    if (el === undefined) {
 | 
			
		||||
        method = $(this).val();
 | 
			
		||||
    } else {
 | 
			
		||||
        method = $(el).val();
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    if (method == GET || method == DELETE) {
 | 
			
		||||
        request_body.hide();
 | 
			
		||||
    } else {
 | 
			
		||||
        request_body.show();
 | 
			
		||||
        cm_request.refresh();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function change_path(command) {
 | 
			
		||||
    rest_url.empty();
 | 
			
		||||
    reminders.html(" ");
 | 
			
		||||
    
 | 
			
		||||
    var re = /(\{:[^}]+\})/g; // match stuff like {:address}
 | 
			
		||||
    params = command.path.split(re);
 | 
			
		||||
    
 | 
			
		||||
    //console.log(params);
 | 
			
		||||
    for (i=0; i<params.length; i++) {
 | 
			
		||||
        if (params[i].match(/\{:[^}]+\}/) !== null) {
 | 
			
		||||
            if (command.params === undefined || command.params[params[i]] === undefined) {
 | 
			
		||||
                var default_val = params[i];
 | 
			
		||||
            } else {
 | 
			
		||||
                var default_val = command.params[params[i]];
 | 
			
		||||
            }
 | 
			
		||||
            //rest_url.append("<span class='editable' contenteditable='true' id='resturl_"+params[i]+"'>"+default_val+"</span>");
 | 
			
		||||
            
 | 
			
		||||
            var new_div = $("<div>").appendTo(rest_url);
 | 
			
		||||
            var new_param = $("<input type='text' id='resturl_"+params[i]+"' value='"+default_val+"' class='editable' title='"+params[i]+"' />").appendTo(new_div);
 | 
			
		||||
            new_param.autosizeInput({"space": 0});
 | 
			
		||||
            //var new_label = $("<label class='reminder' for='resturl_"+params[i]+"'>"+params[i]+"</label>").appendTo(new_div);
 | 
			
		||||
            
 | 
			
		||||
            
 | 
			
		||||
        } else {
 | 
			
		||||
            rest_url.append("<span class='non_editable'>"+params[i]+"</span>");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function select_request(request) {
 | 
			
		||||
    command = requests[request];
 | 
			
		||||
    
 | 
			
		||||
    if (command.test_only === true) {
 | 
			
		||||
        test_warning.show();
 | 
			
		||||
    } else {
 | 
			
		||||
        test_warning.hide();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (command.description) {
 | 
			
		||||
        $(description).html($('<a>')
 | 
			
		||||
            .attr('href', DOC_BASE+command.link)
 | 
			
		||||
            .html(command.description));
 | 
			
		||||
        $(description).show();
 | 
			
		||||
    } else {
 | 
			
		||||
        $(description).hide();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    selected_command.html($('<a>')
 | 
			
		||||
                    .attr('href', DOC_BASE+command.link)
 | 
			
		||||
                    .text(command.name));
 | 
			
		||||
                                
 | 
			
		||||
    //rest_url.val(command.path);
 | 
			
		||||
    //rest_url.text(command.path);
 | 
			
		||||
    change_path(command);
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
//    rest_method.val(command.method);
 | 
			
		||||
//    rest_method.change();
 | 
			
		||||
    request_button.val(command.method);
 | 
			
		||||
    request_button.text(command.method+" request");
 | 
			
		||||
    update_method(request_button);
 | 
			
		||||
    
 | 
			
		||||
    if (command.method == POST || command.method == PUT) {
 | 
			
		||||
        cm_request.setValue(JSON.stringify(command.body, null, 2));
 | 
			
		||||
    } else {
 | 
			
		||||
        //No body, so wipe out the current contents.
 | 
			
		||||
        //This prevents confusion if the user toggles the HTTP method dropdown
 | 
			
		||||
        cm_request.setValue("");
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    reset_response_area();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//helper to fill the default payment with a new UUID
 | 
			
		||||
function get_uuid(callback) {
 | 
			
		||||
    $.get(URL_BASE + "/v1/uuid").done(callback);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function get_path() {
 | 
			
		||||
    s = "";
 | 
			
		||||
    rest_url.find(".non_editable, .editable").each(function() {
 | 
			
		||||
        if (this.tagName == "INPUT") {
 | 
			
		||||
            s += $(this).val();
 | 
			
		||||
        } else {
 | 
			
		||||
            s += $(this).text();
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
    return s;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function send_request() {
 | 
			
		||||
    //var method = rest_method.val();
 | 
			
		||||
    var method = request_button.val();
 | 
			
		||||
    if (method != GET && method != POST && method != PUT && method != DELETE) {
 | 
			
		||||
        console.log("ERROR: unrecognized http method");
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    //var path = rest_url.val();
 | 
			
		||||
    var path = get_path();
 | 
			
		||||
 | 
			
		||||
    $(this).addClass('depressed');
 | 
			
		||||
    response_body.addClass('obscured');
 | 
			
		||||
 | 
			
		||||
    if (method == PUT || method == POST) {
 | 
			
		||||
        var body   = cm_request.getValue();
 | 
			
		||||
        $.ajax({
 | 
			
		||||
            type: method,
 | 
			
		||||
            url: URL_BASE + path,
 | 
			
		||||
            data: body,
 | 
			
		||||
            contentType: 'application/json',
 | 
			
		||||
            processData: false
 | 
			
		||||
        }).done(success_output).fail(error_output).always(reset_sending_status);
 | 
			
		||||
    } else {
 | 
			
		||||
        $.ajax({
 | 
			
		||||
            type: method,
 | 
			
		||||
            url: URL_BASE + path
 | 
			
		||||
        }).done(success_output).fail(error_output).always(reset_sending_status);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    spinner.show();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function error_output(xhr,status,statusText) {
 | 
			
		||||
    response_code.text(xhr.status+" "+xhr.statusText);
 | 
			
		||||
    cm_response.setValue(xhr.responseText);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function success_output(body,status,xhr) {
 | 
			
		||||
    response_code.text(xhr.status+" "+xhr.statusText);
 | 
			
		||||
    cm_response.setValue(JSON.stringify(body, null, 2));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function reset_sending_status() {
 | 
			
		||||
    response_body.removeClass('obscured');
 | 
			
		||||
    request_button.removeClass('depressed');
 | 
			
		||||
    spinner.hide();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function reset_response_area() {
 | 
			
		||||
    cm_response.setValue("");
 | 
			
		||||
    response_code.text("");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$(document).ready(function() {
 | 
			
		||||
    request_button.click(send_request);
 | 
			
		||||
    //rest_method.change(update_method);
 | 
			
		||||
    
 | 
			
		||||
    get_uuid(function(resp,status,xhr) {
 | 
			
		||||
        requests["submit-payment"].body.client_resource_id = resp.uuid;
 | 
			
		||||
        if (window.location.hash == "#submit-payment") {
 | 
			
		||||
            //we might have already loaded the call by the time the AJAX
 | 
			
		||||
            // completes, so refresh the default body.
 | 
			
		||||
            // Debatably a bad idea, because if the AJAX takes so long that the
 | 
			
		||||
            // user has already started editing the call, it'll reset it.
 | 
			
		||||
            select_request("submit-payment");
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    if (window.location.hash) {
 | 
			
		||||
      var cmd   = window.location.hash.slice(1).toLowerCase();
 | 
			
		||||
      var keys  = Object.keys(requests);
 | 
			
		||||
      var index = keys.indexOf(cmd);
 | 
			
		||||
 | 
			
		||||
      if (index === -1) return;
 | 
			
		||||
 | 
			
		||||
      var el = commands.eq(index);
 | 
			
		||||
 | 
			
		||||
      select_request(cmd);
 | 
			
		||||
 | 
			
		||||
      $(el).siblings().removeClass('selected');
 | 
			
		||||
      $(el).addClass('selected');
 | 
			
		||||
    } else {
 | 
			
		||||
      select_request('generate-account');
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										6
									
								
								js/bootstrap.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										2
									
								
								js/cm-javascript.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										1314
									
								
								js/es5-shim.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -1,6 +1,8 @@
 | 
			
		||||
$(document).on('flatdoc:ready', function() {
 | 
			
		||||
function make_code_expandable() {
 | 
			
		||||
    $('code').dblclick(function(eo) {
 | 
			
		||||
        $(eo.target).toggleClass('expanded');
 | 
			
		||||
    });
 | 
			
		||||
    $('code').attr('title', 'Double-click to expand/collapse');
 | 
			
		||||
});
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$(document).on('flatdoc:ready', make_code_expandable);
 | 
			
		||||
							
								
								
									
										7
									
								
								js/fixsidebarscroll.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,7 @@
 | 
			
		||||
$(window).scroll(function() {
 | 
			
		||||
   if($(window).scrollTop() + $(window).height() > $(document).height() - 183) {
 | 
			
		||||
       $(".menubar.fixed").addClass("leaveroomforfooter");
 | 
			
		||||
   } else {
 | 
			
		||||
       $(".menubar.fixed").removeClass("leaveroomforfooter");
 | 
			
		||||
   }
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										1
									
								
								js/jquery.autosize.input.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1 @@
 | 
			
		||||
var Plugins;(function(n){var t=function(){function n(n){typeof n=="undefined"&&(n=30);this.space=n}return n}(),i;n.AutosizeInputOptions=t;i=function(){function n(t,i){var r=this;this._input=$(t);this._options=$.extend({},n.getDefaultOptions(),i);this._mirror=$('<span style="position:absolute; top:-999px; left:0; white-space:pre;"/>');$.each(["fontFamily","fontSize","fontWeight","fontStyle","letterSpacing","textTransform","wordSpacing","textIndent"],function(n,t){r._mirror[0].style[t]=r._input.css(t)});$("body").append(this._mirror);this._input.on("keydown keyup input propertychange change",function(){r.update()});(function(){r.update()})()}return n.prototype.getOptions=function(){return this._options},n.prototype.update=function(){var n=this._input.val()||"",t;n!==this._mirror.text()&&(this._mirror.text(n),t=this._mirror.width()+this._options.space,this._input.width(t))},n.getDefaultOptions=function(){return this._defaultOptions},n.getInstanceKey=function(){return"autosizeInputInstance"},n._defaultOptions=new t,n}();n.AutosizeInput=i,function(t){var i="autosize-input",r=["text","password","search","url","tel","email","number"];t.fn.autosizeInput=function(u){return this.each(function(){if(this.tagName=="INPUT"&&t.inArray(this.type,r)>-1){var f=t(this);f.data(n.AutosizeInput.getInstanceKey())||(u==undefined&&(u=f.data(i)),f.data(n.AutosizeInput.getInstanceKey(),new n.AutosizeInput(this,u)))}})};t(function(){t("input[data-"+i+"]").autosizeInput()})}(jQuery)})(Plugins||(Plugins={}))
 | 
			
		||||
							
								
								
									
										26
									
								
								js/toc.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,26 @@
 | 
			
		||||
var toc = [
 | 
			
		||||
    {
 | 
			
		||||
        "file": "intro.md",
 | 
			
		||||
        "title": "Introduction",
 | 
			
		||||
        "slug": "intro",
 | 
			
		||||
        "breadcrumbs": []
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "file": "websocket_api.md",
 | 
			
		||||
        "title": "WebSocket and JSON-RPC APIs",
 | 
			
		||||
        "slug": "websocket",
 | 
			
		||||
        "breadcrumbs": []
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "file": "ripplerest_api.md",
 | 
			
		||||
        "title": "Ripple-REST API",
 | 
			
		||||
        "slug": "ripple-rest",
 | 
			
		||||
        "breadcrumbs": []
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "file": "gatewayd.md",
 | 
			
		||||
        "title": "gatewayd",
 | 
			
		||||
        "slug": "gatewayd",
 | 
			
		||||
        "breadcrumbs": []
 | 
			
		||||
    }
 | 
			
		||||
];
 | 
			
		||||
@@ -1,8 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "ripple-docs",
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "grunt": "~0.4.2",
 | 
			
		||||
    "grunt-contrib-less": "~0.8.2",
 | 
			
		||||
    "grunt-contrib-watch": "~0.5.3"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										244
									
								
								rest-api-tool.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,244 @@
 | 
			
		||||
<!doctype html>
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
  <meta charset='utf-8'>
 | 
			
		||||
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 | 
			
		||||
  <meta name="viewport" content="width=device-width">
 | 
			
		||||
 | 
			
		||||
  <title>Ripple Developer Portal: Ripple-REST API Tool</title>
 | 
			
		||||
 | 
			
		||||
  <!-- favicon -->
 | 
			
		||||
  <link rel="icon" href="favicon.ico" type="image/x-icon"> 
 | 
			
		||||
  <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> 
 | 
			
		||||
 | 
			
		||||
  <!-- Flatdoc -->
 | 
			
		||||
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
 | 
			
		||||
  <script src='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/legacy.js'></script>
 | 
			
		||||
  <script src='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/flatdoc.js'></script>
 | 
			
		||||
  
 | 
			
		||||
   <!-- Bootstrap -->
 | 
			
		||||
 
 | 
			
		||||
   <link href="css/bootstrap.min.css" rel="stylesheet">
 | 
			
		||||
   <script src="js/bootstrap.min.js"></script>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  <!-- Custom Stylesheet -->
 | 
			
		||||
  <link href='https://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet' type='text/css'>
 | 
			
		||||
  <link href='https://fonts.googleapis.com/css?family=Open+Sans:600italic,400,700,300' rel='stylesheet' type='text/css'>
 | 
			
		||||
  <link  href='css/main.css' rel='stylesheet'>
 | 
			
		||||
  <link  href='css/custom.css' rel='stylesheet'>
 | 
			
		||||
  
 | 
			
		||||
	<link rel="shortcut icon" href="favicon.ico?v=2" type="image/x-icon">
 | 
			
		||||
	<link rel="icon" href="favicon.ico?v=2" type="image/x-icon">
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  <!-- start Mixpanel -->
 | 
			
		||||
  <script type="text/javascript">(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src=("https:"===e.location.protocol?"https:":"http:")+'//cdn.mxpnl.com/libs/mixpanel-2.2.min.js';f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f);b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==
 | 
			
		||||
typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" ");for(g=0;g<i.length;g++)f(c,i[g]);
 | 
			
		||||
b._i.push([a,e,d])};b.__SV=1.2}})(document,window.mixpanel||[]);
 | 
			
		||||
mixpanel.init("132d42885e094171f34467fc54da6fab");
 | 
			
		||||
  </script>
 | 
			
		||||
    
 | 
			
		||||
  <script>if (window.location.host == "dev.ripple.com") { mixpanel.track("rest-api-tool"); }</script>    
 | 
			
		||||
  <!-- end Mixpanel -->
 | 
			
		||||
 | 
			
		||||
  <!-- start google analytics -->
 | 
			
		||||
  <script>
 | 
			
		||||
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
 | 
			
		||||
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
 | 
			
		||||
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
 | 
			
		||||
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 | 
			
		||||
 | 
			
		||||
  ga('create', 'UA-49188512-1', 'ripple.com');
 | 
			
		||||
  ga('send', 'pageview');
 | 
			
		||||
 | 
			
		||||
  </script>
 | 
			
		||||
  <!-- end google analytics -->  
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  <!-- Temporary shims until I modify the css directly -->
 | 
			
		||||
  <link type='text/css' rel='stylesheet' href='css/mod.css' />
 | 
			
		||||
  <script src='js/expandcode.js'></script>
 | 
			
		||||
  
 | 
			
		||||
</head>
 | 
			
		||||
<body role='flatdoc' class='no-literate'>
 | 
			
		||||
<!--Draft warning would go here-->
 | 
			
		||||
 	<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
        <div class="navbar-header">
 | 
			
		||||
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
 | 
			
		||||
            <span class="sr-only">Toggle navigation</span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
          </button>
 | 
			
		||||
          <a class="navbar-brand" href="https://dev.ripple.com/"><img class="small_logo" src="assets/img/ripple_logo_small.png"></a>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="navbar-collapse collapse">
 | 
			
		||||
          <ul class="nav navbar-nav">
 | 
			
		||||
			<li><a href="/">Resources</a></li>
 | 
			
		||||
            <li><a href="https://www.bountysource.com/teams/ripple/bounties">Bounties</a></li>
 | 
			
		||||
            <li><a href="https://ripplelabs.atlassian.net/">Bug Tracking</a></li>
 | 
			
		||||
            <li><a href="https://ripple.com/dev/blog/">Dev Blog</a></li>
 | 
			
		||||
            <li><a href="https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98">Forums</a></li>
 | 
			
		||||
            <li class="dropdown active">
 | 
			
		||||
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">API Tool <span class="caret"></span></a>
 | 
			
		||||
              <ul class="dropdown-menu" role="menu">
 | 
			
		||||
                <li><a href="ripple-api-tool.html">WebSocket Tool</a></li>
 | 
			
		||||
                <li class="active"><a href="rest-api-tool.html">REST Tool</a></li>
 | 
			
		||||
              </ul>
 | 
			
		||||
            </li>
 | 
			
		||||
          </ul>
 | 
			
		||||
          	<div class='right'>
 | 
			
		||||
		 	 <!-- GitHub buttons -->
 | 
			
		||||
		 		 <iframe src="https://dev.ripple.com/vendor/ghbtn.html?user=ripple&repo=ripple-dev-portal&type=watch&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="110" height="20"></iframe>
 | 
			
		||||
			</div>
 | 
			
		||||
        </div><!--/.nav-collapse -->
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  <div class='content-root'>
 | 
			
		||||
   <div id='wrapper'>
 | 
			
		||||
    <div style="clear:both;"></div>
 | 
			
		||||
    <div id='command_wrapper'>
 | 
			
		||||
      <ul id='command_list'>
 | 
			
		||||
        <li class='selected'>Generate Account</li>
 | 
			
		||||
        <li>Get Account Balances</li>
 | 
			
		||||
        <li>Get Account Settings</li>
 | 
			
		||||
        <li>Update Account Settings</li>
 | 
			
		||||
        <br/>
 | 
			
		||||
        <li>Prepare Payment</li>
 | 
			
		||||
        <li>Submit Payment</li>
 | 
			
		||||
        <li>Confirm Payment</li>
 | 
			
		||||
        <li>Get Payment History</li>
 | 
			
		||||
        <br/>
 | 
			
		||||
        <li>Get Trustlines</li>
 | 
			
		||||
        <li>Grant Trustline</li>
 | 
			
		||||
        <br/>
 | 
			
		||||
        <li>Check Notifications</li>
 | 
			
		||||
        <br/>
 | 
			
		||||
        <li>Check Connection</li>
 | 
			
		||||
        <li>Get Server Status</li>
 | 
			
		||||
        <br/>
 | 
			
		||||
        <li>Retrieve Ripple Transaction</li>
 | 
			
		||||
        <li>Generate UUID</li>
 | 
			
		||||
      </ul>
 | 
			
		||||
      <div id='command_table'>
 | 
			
		||||
        <div id='io_wrapper'>
 | 
			
		||||
          <div id='input' class='io'>
 | 
			
		||||
            <h2>REST Request</h2>
 | 
			
		||||
            <div id='test_warning' class='alert alert-danger' style='display:none;'>
 | 
			
		||||
                <h4>Test accounts only!</h4>
 | 
			
		||||
                <p>Never submit account secrets to a server you do not control, unless you are prepared to lose ownership of the account!</p>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style="clear:both;"></div>
 | 
			
		||||
            <h3 id='selected_command' title='Reference information'></h3>
 | 
			
		||||
            <p id='description'></p>
 | 
			
		||||
            <div id='invalid'>Invalid JSON</div>
 | 
			
		||||
<!--            <select id='rest_method'>
 | 
			
		||||
                <option value='GET'>GET</option>
 | 
			
		||||
                <option value='POST'>POST</option>
 | 
			
		||||
            </select>-->
 | 
			
		||||
            <div id='rest_url_wrapper'>
 | 
			
		||||
                <p><span id='rest_host'>https://api.ripple.com</span><span id='rest_url'></span></p>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div id='request_body'></div>
 | 
			
		||||
            <div id='request_options'>
 | 
			
		||||
              <div class="button btn btn-primary api" id='request_button'>Send request</div>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div id='output' class='io'>
 | 
			
		||||
            <h2>Response</h2>
 | 
			
		||||
            <div>
 | 
			
		||||
                <img class="loader" src="assets/img/rippleThrobber.png" style="vertical-align: middle; display:none;"/>
 | 
			
		||||
                <span id='rest_responsecode'></span>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div id='response_body'></div>
 | 
			
		||||
            <div id='tooltip'></div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
  </div>
 | 
			
		||||
<div class="footer">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
        <p class="text-muted">
 | 
			
		||||
        	<div class="row">
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links applications">
 | 
			
		||||
							<li><a href="https://www.rippletrade.com">Ripple Trade</a>
 | 
			
		||||
							<li><a href="https://www.ripplecharts.com">Ripple Charts</a>
 | 
			
		||||
							<li><a href="https://ripple.com/graph">Ripple Graph</a>
 | 
			
		||||
							<li><a href="http://codius.org/">Codius</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links middleware">
 | 
			
		||||
							<li><a href="gatewayd.html">Gatewayd</a>
 | 
			
		||||
							<li><a href="ripple-rest.html">Ripple REST</a>
 | 
			
		||||
							<li><a href="https://github.com/ripple/ripple-lib">Ripple Lib</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links core_network">
 | 
			
		||||
							<li><a href="rippled-apis.html">rippled</a>
 | 
			
		||||
							<li><a href="transactions.html">Transactions</a>
 | 
			
		||||
							<li><a href="consensus-whitepaper.html">Consensus</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
						<ul class="footer_links bounties">
 | 
			
		||||
							<li><a href="https://www.bountysource.com/teams/ripple/bounties">Bounties</a>
 | 
			
		||||
							<li><a href="https://ripplelabs.atlassian.net/">Bug tracking</a>
 | 
			
		||||
							<li><a href="guidelines.html">Brand guidelines</a>
 | 
			
		||||
							<li><a href="https://ripple.com/dev/blog/">Dev blog</a>
 | 
			
		||||
							<li><a href="https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98">Forums</a>
 | 
			
		||||
							<li><a href="https://ripple.com/wiki/Main_Page">Wiki</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-4 mail_chimp">
 | 
			
		||||
				<p>Join the mailing list!</p>
 | 
			
		||||
				<label for="mce-EMAIL">Email address</label>
 | 
			
		||||
					<!-- Begin MailChimp Signup Form -->
 | 
			
		||||
						<link href="//cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
 | 
			
		||||
						<style type="text/css">
 | 
			
		||||
							#mc_embed_signup{clear:left; font:14px; }
 | 
			
		||||
	
 | 
			
		||||
						</style>
 | 
			
		||||
						<div id="mc_embed_signup">
 | 
			
		||||
						<form action="//ripple.us4.list-manage.com/subscribe/post?u=245dbc1c47849f034390dc5bf&id=4dfbe160d0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
 | 
			
		||||
	
 | 
			
		||||
							<input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="" required>
 | 
			
		||||
							<!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
 | 
			
		||||
							<div style="position: absolute; left: -5000px; top: -50px;"><input type="text" name="b_245dbc1c47849f034390dc5bf_4dfbe160d0" tabindex="-1" value=""></div>
 | 
			
		||||
							<input type="submit" value="Submit" name="subscribe" id="mc-embedded-subscribe" class="button btn btn-primary">
 | 
			
		||||
						</form>
 | 
			
		||||
						</div>
 | 
			
		||||
 | 
			
		||||
					<!--End mc_embed_signup-->
 | 
			
		||||
				</div>
 | 
			
		||||
      		</div>
 | 
			
		||||
        
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  
 | 
			
		||||
  <link rel='stylesheet' type='text/css' href='css/api-style.css'/>
 | 
			
		||||
  <link rel='stylesheet' type='text/css' href='css/codemirror.css'/>
 | 
			
		||||
  <script type='text/javascript' src='js/es5-shim.js'></script>
 | 
			
		||||
  <script src='//cdnjs.cloudflare.com/ajax/libs/codemirror/3.16.0/codemirror.min.js'></script>
 | 
			
		||||
  <script type='text/javascript' src='js/cm-javascript.min.js'></script>
 | 
			
		||||
  <script type='text/javascript' src='js/jquery.autosize.input.min.js'></script>
 | 
			
		||||
  <script type='text/javascript' src='js/apitool-rest.js'></script>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										243
									
								
								ripple-api-tool.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,243 @@
 | 
			
		||||
<!doctype html>
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
  <meta charset='utf-8'>
 | 
			
		||||
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 | 
			
		||||
  <meta name="viewport" content="width=device-width">
 | 
			
		||||
 | 
			
		||||
  <title>Ripple Developer Portal: Websocket API Tool</title>
 | 
			
		||||
 | 
			
		||||
  <!-- favicon -->
 | 
			
		||||
  <link rel="icon" href="favicon.ico" type="image/x-icon"> 
 | 
			
		||||
  <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> 
 | 
			
		||||
 | 
			
		||||
  <!-- Flatdoc -->
 | 
			
		||||
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
 | 
			
		||||
  <script src='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/legacy.js'></script>
 | 
			
		||||
  <script src='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/flatdoc.js'></script>
 | 
			
		||||
  
 | 
			
		||||
   <!-- Bootstrap -->
 | 
			
		||||
 
 | 
			
		||||
   <link href="css/bootstrap.min.css" rel="stylesheet">
 | 
			
		||||
   <script src="js/bootstrap.min.js"></script>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  <!-- Custom Stylesheet -->
 | 
			
		||||
  <link href='https://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet' type='text/css'>
 | 
			
		||||
  <link href='https://fonts.googleapis.com/css?family=Open+Sans:600italic,400,700,300' rel='stylesheet' type='text/css'>
 | 
			
		||||
  <link href='css/main.css' rel='stylesheet'>
 | 
			
		||||
  <link href='css/custom.css' rel='stylesheet'>
 | 
			
		||||
  <link href='css/mod.css' type='text/css' rel='stylesheet' />
 | 
			
		||||
  
 | 
			
		||||
  <link rel="shortcut icon" href="favicon.ico?v=2" type="image/x-icon">
 | 
			
		||||
  <link rel="icon" href="favicon.ico?v=2" type="image/x-icon">
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  <!-- start Mixpanel -->
 | 
			
		||||
  <script type="text/javascript">(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src=("https:"===e.location.protocol?"https:":"http:")+'//cdn.mxpnl.com/libs/mixpanel-2.2.min.js';f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f);b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==
 | 
			
		||||
typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" ");for(g=0;g<i.length;g++)f(c,i[g]);
 | 
			
		||||
b._i.push([a,e,d])};b.__SV=1.2}})(document,window.mixpanel||[]);
 | 
			
		||||
mixpanel.init("132d42885e094171f34467fc54da6fab");
 | 
			
		||||
  </script>
 | 
			
		||||
    
 | 
			
		||||
  <script>if (window.location.host == "dev.ripple.com") { mixpanel.track("ripple-api-tool"); }</script>    
 | 
			
		||||
  <!-- end Mixpanel -->
 | 
			
		||||
 | 
			
		||||
  <!-- start google analytics -->
 | 
			
		||||
  <script>
 | 
			
		||||
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
 | 
			
		||||
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
 | 
			
		||||
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
 | 
			
		||||
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 | 
			
		||||
 | 
			
		||||
  ga('create', 'UA-49188512-1', 'ripple.com');
 | 
			
		||||
  ga('send', 'pageview');
 | 
			
		||||
 | 
			
		||||
  </script>
 | 
			
		||||
  <!-- end google analytics -->  
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
</head>
 | 
			
		||||
<body role='flatdoc' class='no-literate'>
 | 
			
		||||
 	<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
        <div class="navbar-header">
 | 
			
		||||
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
 | 
			
		||||
            <span class="sr-only">Toggle navigation</span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
          </button>
 | 
			
		||||
          <a class="navbar-brand" href="https://dev.ripple.com/"><img class="small_logo" src="assets/img/ripple_logo_small.png"></a>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="navbar-collapse collapse">
 | 
			
		||||
          <ul class="nav navbar-nav">
 | 
			
		||||
			<li><a href="/">Resources</a></li>
 | 
			
		||||
            <li><a href="https://www.bountysource.com/teams/ripple/bounties">Bounties</a></li>
 | 
			
		||||
            <li><a href="https://ripplelabs.atlassian.net/">Bug Tracking</a></li>
 | 
			
		||||
            <li><a href="https://ripple.com/dev/blog/">Dev Blog</a></li>
 | 
			
		||||
            <li><a href="https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98">Forums</a></li>
 | 
			
		||||
            <li class="dropdown active">
 | 
			
		||||
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">API Tool <span class="caret"></span></a>
 | 
			
		||||
              <ul class="dropdown-menu" role="menu">
 | 
			
		||||
                <li class="active"><a href="ripple-api-tool.html">WebSocket Tool</a></li>
 | 
			
		||||
                <li><a href="rest-api-tool.html">REST Tool</a></li>
 | 
			
		||||
              </ul>
 | 
			
		||||
            </li>
 | 
			
		||||
          </ul>
 | 
			
		||||
          	<div class='right'>
 | 
			
		||||
		 	 <!-- GitHub buttons -->
 | 
			
		||||
		 		 <iframe src="https://dev.ripple.com/vendor/ghbtn.html?user=ripple&repo=ripple-dev-portal&type=watch&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="110" height="20"></iframe>
 | 
			
		||||
			</div>
 | 
			
		||||
        </div><!--/.nav-collapse -->
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  <div class='content-root'>
 | 
			
		||||
   <div id='wrapper'>
 | 
			
		||||
    <div id='online_state'>Offline</div>
 | 
			
		||||
    <div style="clear:both;"></div>
 | 
			
		||||
    <div id='command_wrapper'>
 | 
			
		||||
      <ul id='command_list'>
 | 
			
		||||
        <li class='selected'>server_info</li>
 | 
			
		||||
        <li>server_state</li>
 | 
			
		||||
        <li>ping</li>
 | 
			
		||||
        <br/>
 | 
			
		||||
        <li>subscribe</li>
 | 
			
		||||
        <li>unsubscribe</li>
 | 
			
		||||
        <br/>
 | 
			
		||||
        <li>ledger</li>
 | 
			
		||||
        <li>ledger_closed</li>
 | 
			
		||||
        <li>ledger_current</li>
 | 
			
		||||
        <li>ledger_entry</li>
 | 
			
		||||
        <br/>
 | 
			
		||||
        <li>account_info</li>
 | 
			
		||||
        <li>account_lines</li>
 | 
			
		||||
        <li>account_offers</li>
 | 
			
		||||
        <li>account_tx</li>
 | 
			
		||||
        <br/>
 | 
			
		||||
        <li>transaction_entry</li>
 | 
			
		||||
        <li>tx</li>
 | 
			
		||||
        <li>tx_history</li>
 | 
			
		||||
        <br/>
 | 
			
		||||
        <li>sign</li>
 | 
			
		||||
        <li>submit</li>
 | 
			
		||||
        <br/>
 | 
			
		||||
        <li>ripple_path_find</li>
 | 
			
		||||
        <li>path_find</li>
 | 
			
		||||
        <li>book_offers</li>
 | 
			
		||||
      </ul>
 | 
			
		||||
      <div id='command_table'>
 | 
			
		||||
        <div id='io_wrapper'>
 | 
			
		||||
          <div id='input' class='io'>
 | 
			
		||||
            <h2>WebSocket Request</h2>
 | 
			
		||||
            <div style="clear:both;"></div>
 | 
			
		||||
            <h3 id='selected_command' title='Reference information'>server_info</h3>
 | 
			
		||||
            <p id='description'></p>
 | 
			
		||||
            <div id='invalid'>Invalid JSON</div>
 | 
			
		||||
            <p>JSON</p>
 | 
			
		||||
            <div id='request'></div>
 | 
			
		||||
            <div id='request_options'>
 | 
			
		||||
              <div class="button btn btn-primary api" id='request_button'>Send request</div>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div id='output' class='io'>
 | 
			
		||||
            <h2>Response</h2>
 | 
			
		||||
            <p>Stream output</p>
 | 
			
		||||
            <ul class='toolbar'>
 | 
			
		||||
              <li id='stream_show'>show</li>
 | 
			
		||||
              <li id='stream_pause'>pause</li>
 | 
			
		||||
            </ul>
 | 
			
		||||
            <div>
 | 
			
		||||
                <img class="loader" src="assets/img/rippleThrobber.png" style="vertical-align: middle; display:none;"/>
 | 
			
		||||
                <p id='status'></p>
 | 
			
		||||
            </div>
 | 
			
		||||
            <p id='info'></p>
 | 
			
		||||
            <div id='response'></div>
 | 
			
		||||
            <div id='tooltip'></div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
  </div>
 | 
			
		||||
<div class="footer">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
        <p class="text-muted">
 | 
			
		||||
        	<div class="row">
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links applications">
 | 
			
		||||
							<li><a href="https://www.rippletrade.com">Ripple Trade</a>
 | 
			
		||||
							<li><a href="https://www.ripplecharts.com">Ripple Charts</a>
 | 
			
		||||
							<li><a href="https://ripple.com/graph">Ripple Graph</a>
 | 
			
		||||
							<li><a href="http://codius.org/">Codius</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links middleware">
 | 
			
		||||
							<li><a href="gatewayd.html">Gatewayd</a>
 | 
			
		||||
							<li><a href="ripple-rest.html">Ripple REST</a>
 | 
			
		||||
							<li><a href="https://github.com/ripple/ripple-lib">Ripple Lib</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links core_network">
 | 
			
		||||
							<li><a href="rippled-apis.html">rippled</a>
 | 
			
		||||
							<li><a href="transactions.html">Transactions</a>
 | 
			
		||||
							<li><a href="consensus-whitepaper.html">Consensus</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
						<ul class="footer_links bounties">
 | 
			
		||||
							<li><a href="https://www.bountysource.com/teams/ripple/bounties">Bounties</a>
 | 
			
		||||
							<li><a href="https://ripplelabs.atlassian.net/">Bug tracking</a>
 | 
			
		||||
							<li><a href="guidelines.html">Brand guidelines</a>
 | 
			
		||||
							<li><a href="https://ripple.com/dev/blog/">Dev blog</a>
 | 
			
		||||
							<li><a href="https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98">Forums</a>
 | 
			
		||||
							<li><a href="https://ripple.com/wiki/Main_Page">Wiki</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-4 mail_chimp">
 | 
			
		||||
				<p>Join the mailing list!</p>
 | 
			
		||||
				<label for="mce-EMAIL">Email address</label>
 | 
			
		||||
					<!-- Begin MailChimp Signup Form -->
 | 
			
		||||
						<link href="//cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
 | 
			
		||||
						<style type="text/css">
 | 
			
		||||
							#mc_embed_signup{clear:left; font:14px; }
 | 
			
		||||
	
 | 
			
		||||
						</style>
 | 
			
		||||
						<div id="mc_embed_signup">
 | 
			
		||||
						<form action="//ripple.us4.list-manage.com/subscribe/post?u=245dbc1c47849f034390dc5bf&id=4dfbe160d0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
 | 
			
		||||
	
 | 
			
		||||
							<input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="" required>
 | 
			
		||||
							<!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
 | 
			
		||||
							<div style="position: absolute; left: -5000px; top: -50px;"><input type="text" name="b_245dbc1c47849f034390dc5bf_4dfbe160d0" tabindex="-1" value=""></div>
 | 
			
		||||
							<input type="submit" value="Submit" name="subscribe" id="mc-embedded-subscribe" class="button btn btn-primary">
 | 
			
		||||
						</form>
 | 
			
		||||
						</div>
 | 
			
		||||
 | 
			
		||||
					<!--End mc_embed_signup-->
 | 
			
		||||
				</div>
 | 
			
		||||
      		</div>
 | 
			
		||||
        
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  
 | 
			
		||||
  <link rel='stylesheet' type='text/css' href='css/api-style.css'/>
 | 
			
		||||
  <link rel='stylesheet' type='text/css' href='css/codemirror.css'/>
 | 
			
		||||
  <script type='text/javascript' src='js/es5-shim.js'></script>
 | 
			
		||||
  <script src='//cdnjs.cloudflare.com/ajax/libs/codemirror/3.16.0/codemirror.min.js'></script>
 | 
			
		||||
  <script type='text/javascript' src='js/cm-javascript.min.js'></script>
 | 
			
		||||
  <script type='text/javascript' src='js/api-ripple.min.js'></script>
 | 
			
		||||
  <script type='text/javascript' src='js/api-main.js'></script>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										185
									
								
								ripple-rest.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,185 @@
 | 
			
		||||
<!doctype html>
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
  <meta charset='utf-8'>
 | 
			
		||||
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 | 
			
		||||
  <meta name="viewport" content="width=device-width">
 | 
			
		||||
 | 
			
		||||
  <title>Ripple Developer Portal: Ripple-REST</title>
 | 
			
		||||
 | 
			
		||||
  <!-- favicon -->
 | 
			
		||||
  <link rel="icon" href="favicon.ico" type="image/x-icon"> 
 | 
			
		||||
  <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> 
 | 
			
		||||
 | 
			
		||||
  <!-- Flatdoc -->
 | 
			
		||||
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
 | 
			
		||||
  <script src='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/legacy.js'></script>
 | 
			
		||||
  <script src='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/flatdoc.js'></script>
 | 
			
		||||
  
 | 
			
		||||
   <!-- Bootstrap -->
 | 
			
		||||
 
 | 
			
		||||
   <link href="css/bootstrap.min.css" rel="stylesheet">
 | 
			
		||||
   <script src="js/bootstrap.min.js"></script>
 | 
			
		||||
 | 
			
		||||
  <!-- Flatdoc theme -->
 | 
			
		||||
  <link  href='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/theme-white/style.css' rel='stylesheet'>
 | 
			
		||||
  <script src='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/theme-white/script.js'></script>
 | 
			
		||||
 | 
			
		||||
  <!-- Custom Stylesheet -->
 | 
			
		||||
  <link href='https://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet' type='text/css'>
 | 
			
		||||
  <link href='https://fonts.googleapis.com/css?family=Open+Sans:600italic,400,700,300' rel='stylesheet' type='text/css'>
 | 
			
		||||
  <link  href='https://dev.ripple.com/css/main.css' rel='stylesheet'>
 | 
			
		||||
  <link  href='css/custom.css' rel='stylesheet'>
 | 
			
		||||
  
 | 
			
		||||
	<link rel="shortcut icon" href="favicon.ico?v=2" type="image/x-icon">
 | 
			
		||||
	<link rel="icon" href="favicon.ico?v=2" type="image/x-icon">
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  <!-- start Mixpanel -->
 | 
			
		||||
  <script type="text/javascript">(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src=("https:"===e.location.protocol?"https:":"http:")+'//cdn.mxpnl.com/libs/mixpanel-2.2.min.js';f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f);b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==
 | 
			
		||||
typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" ");for(g=0;g<i.length;g++)f(c,i[g]);
 | 
			
		||||
b._i.push([a,e,d])};b.__SV=1.2}})(document,window.mixpanel||[]);
 | 
			
		||||
mixpanel.init("132d42885e094171f34467fc54da6fab");
 | 
			
		||||
  </script>
 | 
			
		||||
    
 | 
			
		||||
  <script>if (window.location.host == "dev.ripple.com") { mixpanel.track("ripple-rest"); }</script>    
 | 
			
		||||
  <!-- end Mixpanel -->
 | 
			
		||||
 | 
			
		||||
  <!-- start google analytics -->
 | 
			
		||||
  <script>
 | 
			
		||||
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
 | 
			
		||||
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
 | 
			
		||||
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
 | 
			
		||||
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 | 
			
		||||
 | 
			
		||||
  ga('create', 'UA-49188512-1', 'ripple.com');
 | 
			
		||||
  ga('send', 'pageview');
 | 
			
		||||
 | 
			
		||||
  </script>
 | 
			
		||||
  <!-- end google analytics -->  
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  <!-- syntax selection js -->
 | 
			
		||||
  <script src="js/multicodetab.js"></script>
 | 
			
		||||
  <script>
 | 
			
		||||
    Flatdoc.run({
 | 
			
		||||
      fetcher: Flatdoc.file('ripplerest_api.md')
 | 
			
		||||
    });
 | 
			
		||||
    $(document).on('flatdoc:ready', $().multicode_tabs);
 | 
			
		||||
  </script>
 | 
			
		||||
  <link type='text/css' rel='stylesheet' href='css/mod.css' />
 | 
			
		||||
  <script src="js/fixsidebarscroll.js"></script>
 | 
			
		||||
  <script src='js/expandcode.js'></script>
 | 
			
		||||
  
 | 
			
		||||
</head>
 | 
			
		||||
<body role='flatdoc' class='no-literate'>
 | 
			
		||||
<!--Draft warning would go here-->
 | 
			
		||||
 	<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
        <div class="navbar-header">
 | 
			
		||||
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
 | 
			
		||||
            <span class="sr-only">Toggle navigation</span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
          </button>
 | 
			
		||||
          <a class="navbar-brand" href="https://dev.ripple.com/"><img class="small_logo" src="assets/img/ripple_logo_small.png"></a>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="navbar-collapse collapse">
 | 
			
		||||
          <ul class="nav navbar-nav">
 | 
			
		||||
			<li class="active"><a href="/">Resources</a></li>
 | 
			
		||||
            <li><a href="https://www.bountysource.com/teams/ripple/bounties">Bounties</a></li>
 | 
			
		||||
            <li><a href="https://ripplelabs.atlassian.net/">Bug Tracking</a></li>
 | 
			
		||||
            <li><a href="https://ripple.com/dev/blog/">Dev Blog</a></li>
 | 
			
		||||
            <li><a href="https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98">Forums</a></li>
 | 
			
		||||
            <li class="dropdown">
 | 
			
		||||
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">API Tool <span class="caret"></span></a>
 | 
			
		||||
              <ul class="dropdown-menu" role="menu">
 | 
			
		||||
                <li><a href="ripple-api-tool.html">WebSocket Tool</a></li>
 | 
			
		||||
                <li><a href="rest-api-tool.html">REST Tool</a></li>
 | 
			
		||||
              </ul>
 | 
			
		||||
            </li>
 | 
			
		||||
          </ul>
 | 
			
		||||
          	<div class='right'>
 | 
			
		||||
		 	 <!-- GitHub buttons -->
 | 
			
		||||
		 		 <iframe src="https://dev.ripple.com/vendor/ghbtn.html?user=ripple&repo=ripple-dev-portal&type=watch&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="110" height="20"></iframe>
 | 
			
		||||
			</div>
 | 
			
		||||
        </div><!--/.nav-collapse -->
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  <div class='content-root'>
 | 
			
		||||
    <div class='menubar'>
 | 
			
		||||
      <div class='menu section' role='flatdoc-menu'></div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div role='flatdoc-content' class='content'>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
<div class="footer">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
        <p class="text-muted">
 | 
			
		||||
        	<div class="row">
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links applications">
 | 
			
		||||
							<li><a href="https://www.rippletrade.com">Ripple Trade</a>
 | 
			
		||||
							<li><a href="https://www.ripplecharts.com">Ripple Charts</a>
 | 
			
		||||
							<li><a href="https://ripple.com/graph">Ripple Graph</a>
 | 
			
		||||
							<li><a href="http://codius.org/">Codius</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links middleware">
 | 
			
		||||
							<li><a href="gatewayd.html">Gatewayd</a>
 | 
			
		||||
							<li><a href="ripple-rest.html">Ripple REST</a>
 | 
			
		||||
							<li><a href="https://github.com/ripple/ripple-lib">Ripple Lib</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links core_network">
 | 
			
		||||
							<li><a href="rippled-apis.html">rippled</a>
 | 
			
		||||
							<li><a href="transactions.html">Transactions</a>
 | 
			
		||||
							<li><a href="consensus-whitepaper.html">Consensus</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
						<ul class="footer_links bounties">
 | 
			
		||||
							<li><a href="https://www.bountysource.com/teams/ripple/bounties">Bounties</a>
 | 
			
		||||
							<li><a href="https://ripplelabs.atlassian.net/">Bug tracking</a>
 | 
			
		||||
							<li><a href="guidelines.html">Brand guidelines</a>
 | 
			
		||||
							<li><a href="https://ripple.com/dev/blog/">Dev blog</a>
 | 
			
		||||
							<li><a href="https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98">Forums</a>
 | 
			
		||||
							<li><a href="https://ripple.com/wiki/Main_Page">Wiki</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-4 mail_chimp">
 | 
			
		||||
				<p>Join the mailing list!</p>
 | 
			
		||||
				<label for="mce-EMAIL">Email address</label>
 | 
			
		||||
					<!-- Begin MailChimp Signup Form -->
 | 
			
		||||
						<link href="//cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
 | 
			
		||||
						<style type="text/css">
 | 
			
		||||
							#mc_embed_signup{clear:left; font:14px; }
 | 
			
		||||
	
 | 
			
		||||
						</style>
 | 
			
		||||
						<div id="mc_embed_signup">
 | 
			
		||||
						<form action="//ripple.us4.list-manage.com/subscribe/post?u=245dbc1c47849f034390dc5bf&id=4dfbe160d0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
 | 
			
		||||
	
 | 
			
		||||
							<input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="" required>
 | 
			
		||||
							<!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
 | 
			
		||||
							<div style="position: absolute; left: -5000px; top: -50px;"><input type="text" name="b_245dbc1c47849f034390dc5bf_4dfbe160d0" tabindex="-1" value=""></div>
 | 
			
		||||
							<input type="submit" value="Submit" name="subscribe" id="mc-embedded-subscribe" class="button btn btn-primary">
 | 
			
		||||
						</form>
 | 
			
		||||
						</div>
 | 
			
		||||
 | 
			
		||||
					<!--End mc_embed_signup-->
 | 
			
		||||
				</div>
 | 
			
		||||
      		</div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										7285
									
								
								rippled-apis.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										1805
									
								
								ripplerest_api.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -1,87 +1,99 @@
 | 
			
		||||
<!doctype html>
 | 
			
		||||
<!--
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html lang="en">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8">
 | 
			
		||||
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1">
 | 
			
		||||
    <title>Ripple Dev Portal Resources</title>
 | 
			
		||||
 | 
			
		||||
  Instructions:
 | 
			
		||||
 | 
			
		||||
  - Save this file.
 | 
			
		||||
  - Replace "ripple" with your GitHub ripplename.
 | 
			
		||||
  - Replace "ripple-client" with your GitHub ripple-client name.
 | 
			
		||||
  - Replace "Ripple Web Client" with Ripple Web Client name.
 | 
			
		||||
  - Upload this file (or commit to GitHub Pages).
 | 
			
		||||
 | 
			
		||||
  Customize as you see fit!
 | 
			
		||||
 | 
			
		||||
-->
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
    <meta charset='utf-8'>
 | 
			
		||||
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 | 
			
		||||
    <meta name="viewport" content="width=device-width">
 | 
			
		||||
 | 
			
		||||
    <title>Ripple Web Client</title>
 | 
			
		||||
 | 
			
		||||
    <!-- Flatdoc -->
 | 
			
		||||
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
 | 
			
		||||
    <!-- Bootstrap -->
 | 
			
		||||
	<link href="css/bootstrap.min.css" rel="stylesheet">
 | 
			
		||||
    
 | 
			
		||||
    <!--  Google Font -->
 | 
			
		||||
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,600' rel='stylesheet' type='text/css'>
 | 
			
		||||
   
 | 
			
		||||
    <!-- Custom Js -->
 | 
			
		||||
 | 
			
		||||
    <script src="js/main.js"></script>
 | 
			
		||||
    <script src="js/bootstrap-modal.js"></script>
 | 
			
		||||
  	<!-- Font Awesome -->
 | 
			
		||||
	<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
 | 
			
		||||
	
 | 
			
		||||
	<!-- Custom stuff -->
 | 
			
		||||
    <link href="css/custom.css" rel="stylesheet">
 | 
			
		||||
    
 | 
			
		||||
    <link rel="shortcut icon" href="favicon.ico?v=2" type="image/x-icon">
 | 
			
		||||
	<link rel="icon" href="favicon.ico?v=2" type="image/x-icon">
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    <script src='vendor/flatdoc/v/0.8.0/legacy.js'></script>
 | 
			
		||||
    <script src='vendor/flatdoc/v/0.8.0/flatdoc.js'></script>
 | 
			
		||||
 | 
			
		||||
    <!-- Flatdoc theme -->
 | 
			
		||||
    <link  href='vendor/flatdoc/v/0.8.0/theme-white/style.css' rel='stylesheet'>
 | 
			
		||||
    <script src='vendor/flatdoc/v/0.8.0/theme-white/script.js'></script>
 | 
			
		||||
 | 
			
		||||
    <!-- Meta -->
 | 
			
		||||
    <meta content="Ripple Web Client" property="og:title">
 | 
			
		||||
    <meta content="Ripple Web Client description goes here." name="description">
 | 
			
		||||
 | 
			
		||||
    <!-- Custom Stylesheet -->
 | 
			
		||||
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:600italic,400,700,300' rel='stylesheet' type='text/css'>
 | 
			
		||||
    <link  href='css/main.css' rel='stylesheet'>
 | 
			
		||||
  <!-- start Mixpanel -->
 | 
			
		||||
    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
 | 
			
		||||
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
 | 
			
		||||
    <!--[if lt IE 9]>
 | 
			
		||||
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
 | 
			
		||||
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
 | 
			
		||||
    <![endif]-->
 | 
			
		||||
    
 | 
			
		||||
      <!-- start Mixpanel -->
 | 
			
		||||
  <script type="text/javascript">(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src=("https:"===e.location.protocol?"https:":"http:")+'//cdn.mxpnl.com/libs/mixpanel-2.2.min.js';f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f);b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==
 | 
			
		||||
typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" ");for(g=0;g<i.length;g++)f(c,i[g]);
 | 
			
		||||
b._i.push([a,e,d])};b.__SV=1.2}})(document,window.mixpanel||[]);
 | 
			
		||||
mixpanel.init("132d42885e094171f34467fc54da6fab");
 | 
			
		||||
  </script>
 | 
			
		||||
    
 | 
			
		||||
  <script>mixpanel.track("terms");</script>    
 | 
			
		||||
  <script>if (window.location.host == "dev.ripple.com") { mixpanel.track("terms"); }</script>    
 | 
			
		||||
  <!-- end Mixpanel -->
 | 
			
		||||
</head>
 | 
			
		||||
<body role='flatdoc'>
 | 
			
		||||
    
 | 
			
		||||
    <!-- start google analytics -->
 | 
			
		||||
	  <script>
 | 
			
		||||
	  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
 | 
			
		||||
	  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
 | 
			
		||||
	  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
 | 
			
		||||
	  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 | 
			
		||||
 | 
			
		||||
    <div class='header'>
 | 
			
		||||
        <div class='left'>
 | 
			
		||||
          <h1>{<i class="icon-ripple-logo"></i>}</h1>
 | 
			
		||||
          <ul>
 | 
			
		||||
        <li><a href='index.html'>Documentation</a></li>
 | 
			
		||||
        <li><a href='https://ripple.com/dev/blog'>Developer blog</a></li>
 | 
			
		||||
        <li><a href='https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98' target='_blank'>Developer Forum</a></li>
 | 
			
		||||
        <li><a href='guidelines.html'>Brand Guidelines</a></li>
 | 
			
		||||
        <li><a href='https://ripple.com/forum/viewforum.php?f=20'target='_blank'>Bounties</a></li>       
 | 
			
		||||
	  ga('create', 'UA-49188512-1', 'ripple.com');
 | 
			
		||||
	  ga('send', 'pageview');
 | 
			
		||||
 | 
			
		||||
	  </script>
 | 
			
		||||
  <!-- end google analytics -->  
 | 
			
		||||
  
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
  <div class="wrapper">
 | 
			
		||||
	<!--   navigation -->
 | 
			
		||||
  	<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
        <div class="navbar-header">
 | 
			
		||||
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
 | 
			
		||||
            <span class="sr-only">Toggle navigation</span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
          </button>
 | 
			
		||||
          <a class="navbar-brand" href="https://dev.ripple.com/"><img class="small_logo" src="assets/img/ripple_logo_small.png"></a>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="navbar-collapse collapse">
 | 
			
		||||
          <ul class="nav navbar-nav">
 | 
			
		||||
			<li class="active"><a href="/">Resources</a></li>
 | 
			
		||||
            <li><a href="https://www.bountysource.com/teams/ripple/bounties">Bounties</a></li>
 | 
			
		||||
            <li><a href="https://ripplelabs.atlassian.net/">Bug Tracking</a></li>
 | 
			
		||||
            <li><a href="https://ripple.com/dev/blog/">Dev Blog</a></li>
 | 
			
		||||
            <li><a href="https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98">Forums</a></li>
 | 
			
		||||
            <li class="dropdown">
 | 
			
		||||
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">API Tool <span class="caret"></span></a>
 | 
			
		||||
              <ul class="dropdown-menu" role="menu">
 | 
			
		||||
                <li><a href="ripple-api-tool.html">WebSocket Tool</a></li>
 | 
			
		||||
                <li><a href="rest-api-tool.html">REST Tool</a></li>
 | 
			
		||||
              </ul>
 | 
			
		||||
            </li>
 | 
			
		||||
          </ul>
 | 
			
		||||
 | 
			
		||||
          <a href="" class="header-menu-button">
 | 
			
		||||
              
 | 
			
		||||
          </a>
 | 
			
		||||
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class='right'>
 | 
			
		||||
              <!-- GitHub buttons: see http://ghbtns.com 
 | 
			
		||||
            <iframe src="http://ghbtns.com/github-btn.html?ripple=ripple&ripple-client=ripple-client&type=watch&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="110" height="20">
 | 
			
		||||
    </iframe> -->
 | 
			
		||||
        </div>
 | 
			
		||||
          	<div class='right'>
 | 
			
		||||
		 	 <!-- GitHub buttons -->
 | 
			
		||||
		 		 <iframe src="https://dev.ripple.com/vendor/ghbtn.html?user=ripple&repo=ripple-dev-portal&type=watch&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="110" height="20"></iframe>
 | 
			
		||||
			</div>
 | 
			
		||||
        </div><!--/.nav-collapse -->
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class='content-root  guidelines-content'>
 | 
			
		||||
      
 | 
			
		||||
        <div role='flatdoc-content' class='content'>
 | 
			
		||||
            
 | 
			
		||||
    <!-- main container -->
 | 
			
		||||
	<div class="container">
 | 
			
		||||
      <div class="content-root">
 | 
			
		||||
		 <div class="row">
 | 
			
		||||
            <div class="brand-guidelines-row terms-conditions-content">
 | 
			
		||||
              <h2 class="brand-guidelines-title">            
 | 
			
		||||
                Terms and Conditions 
 | 
			
		||||
@@ -139,8 +151,80 @@ mixpanel.init("132d42885e094171f34467fc54da6fab");
 | 
			
		||||
              </p>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
	<div class="footer">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
        <p class="text-muted">
 | 
			
		||||
        	<div class="row">
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links applications">
 | 
			
		||||
							<li><a href="https://www.rippletrade.com">Ripple Trade</a>
 | 
			
		||||
							<li><a href="https://www.ripplecharts.com">Ripple Charts</a>
 | 
			
		||||
							<li><a href="https://ripple.com/graph">Ripple Graph</a>
 | 
			
		||||
							<li><a href="http://codius.org/">Codius</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links middleware">
 | 
			
		||||
							<li><a href="gatewayd.html">Gatewayd</a>
 | 
			
		||||
							<li><a href="ripple-rest.html">Ripple REST</a>
 | 
			
		||||
							<li><a href="https://github.com/ripple/ripple-lib">Ripple Lib</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links core_network">
 | 
			
		||||
							<li><a href="rippled-apis.html">rippled</a>
 | 
			
		||||
							<li><a href="transactions.html">Transactions</a>
 | 
			
		||||
							<li><a href="consensus-whitepaper.html">Consensus</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
						<ul class="footer_links bounties">
 | 
			
		||||
							<li><a href="https://www.bountysource.com/teams/ripple/bounties">Bounties</a>
 | 
			
		||||
							<li><a href="https://ripplelabs.atlassian.net/">Bug tracking</a>
 | 
			
		||||
							<li><a href="guidelines.html">Brand guidelines</a>
 | 
			
		||||
							<li><a href="https://ripple.com/dev/blog/">Dev blog</a>
 | 
			
		||||
							<li><a href="https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98">Forums</a>
 | 
			
		||||
							<li><a href="https://ripple.com/wiki/Main_Page">Wiki</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-4">
 | 
			
		||||
				<p>Join the mailing list!</p>
 | 
			
		||||
				<label for="mce-EMAIL">Email address</label>
 | 
			
		||||
					<!-- Begin MailChimp Signup Form -->
 | 
			
		||||
						<link href="//cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
 | 
			
		||||
						<style type="text/css">
 | 
			
		||||
							#mc_embed_signup{clear:left; font:14px; }
 | 
			
		||||
	
 | 
			
		||||
						</style>
 | 
			
		||||
						<div id="mc_embed_signup">
 | 
			
		||||
						<form action="//ripple.us4.list-manage.com/subscribe/post?u=245dbc1c47849f034390dc5bf&id=4dfbe160d0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
 | 
			
		||||
	
 | 
			
		||||
							<input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="" required>
 | 
			
		||||
							<!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
 | 
			
		||||
							<div style="position: absolute; left: -5000px; top: -50px;"><input type="text" name="b_245dbc1c47849f034390dc5bf_4dfbe160d0" tabindex="-1" value=""></div>
 | 
			
		||||
							<input type="submit" value="Submit" name="subscribe" id="mc-embedded-subscribe" class="button btn btn-primary">
 | 
			
		||||
						</form>
 | 
			
		||||
						</div>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
					<!--End mc_embed_signup-->
 | 
			
		||||
				</div>
 | 
			
		||||
      		</div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
 | 
			
		||||
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
 | 
			
		||||
    <!-- Include all compiled plugins (below), or include individual files as needed -->
 | 
			
		||||
    <script src="js/bootstrap.min.js"></script>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										211
									
								
								transactions.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,211 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
  <meta charset="utf-8">
 | 
			
		||||
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 | 
			
		||||
  <meta name="viewport" content="width=device-width">
 | 
			
		||||
 | 
			
		||||
  <title>Ripple Developer Portal: Transactions</title>
 | 
			
		||||
 | 
			
		||||
  <!-- favicon -->
 | 
			
		||||
  <link rel="icon" href="favicon.ico" type="image/x-icon"> 
 | 
			
		||||
  <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> 
 | 
			
		||||
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
 | 
			
		||||
  
 | 
			
		||||
  <!-- Flatdoc -->
 | 
			
		||||
  <script src="https://dev.ripple.com/vendor/flatdoc/v/0.8.0/legacy.js"></script>
 | 
			
		||||
  <script src="https://dev.ripple.com/vendor/flatdoc/v/0.8.0/flatdoc.js"></script>
 | 
			
		||||
  
 | 
			
		||||
   <!-- Bootstrap -->
 | 
			
		||||
 
 | 
			
		||||
   <link href="css/bootstrap.min.css" rel="stylesheet">
 | 
			
		||||
   <script src="js/bootstrap.min.js"></script>
 | 
			
		||||
 | 
			
		||||
  <!-- Flatdoc theme -->
 | 
			
		||||
  <link href="vendor/flatdoc/v/0.8.0/theme-white/style.css" rel="stylesheet">
 | 
			
		||||
  <script src="vendor/flatdoc/v/0.8.0/theme-white/script.js"></script>
 | 
			
		||||
 | 
			
		||||
  <!-- Custom Stylesheets -->
 | 
			
		||||
  <link href="https://fonts.googleapis.com/css?family=Montserrat" rel="stylesheet" type="text/css">
 | 
			
		||||
  <link href="https://fonts.googleapis.com/css?family=Open+Sans:600italic,400,700,300" rel="stylesheet" type="text/css">
 | 
			
		||||
  <link href="css/main.css" rel="stylesheet">
 | 
			
		||||
  <link href="css/custom.css" rel="stylesheet">
 | 
			
		||||
  
 | 
			
		||||
	<link rel="shortcut icon" href="favicon.ico?v=2" type="image/x-icon">
 | 
			
		||||
	<link rel="icon" href="favicon.ico?v=2" type="image/x-icon">
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  <!-- start Mixpanel -->
 | 
			
		||||
  <script type="text/javascript">(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src=("https:"===e.location.protocol?"https:":"http:")+'//cdn.mxpnl.com/libs/mixpanel-2.2.min.js';f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f);b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==
 | 
			
		||||
typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" ");for(g=0;g<i.length;g++)f(c,i[g]);
 | 
			
		||||
b._i.push([a,e,d])};b.__SV=1.2}})(document,window.mixpanel||[]);
 | 
			
		||||
mixpanel.init("132d42885e094171f34467fc54da6fab");
 | 
			
		||||
  </script>
 | 
			
		||||
    
 | 
			
		||||
  <script>if (window.location.host == "dev.ripple.com") { mixpanel.track("transactions"); }</script>    
 | 
			
		||||
  <!-- end Mixpanel -->
 | 
			
		||||
 | 
			
		||||
  <!-- start google analytics -->
 | 
			
		||||
  <script>
 | 
			
		||||
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
 | 
			
		||||
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
 | 
			
		||||
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
 | 
			
		||||
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 | 
			
		||||
 | 
			
		||||
  ga('create', 'UA-49188512-1', 'ripple.com');
 | 
			
		||||
  ga('send', 'pageview');
 | 
			
		||||
 | 
			
		||||
  </script>
 | 
			
		||||
  <!-- end google analytics -->  
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  <!-- syntax selection js -->
 | 
			
		||||
  <script src="js/multicodetab.js"></script>
 | 
			
		||||
  <!-- Code to load Flatdoc; commented out on compiled page  -->
 | 
			
		||||
  <script>
 | 
			
		||||
    $(".flatdoc-content").empty();
 | 
			
		||||
    $(".content-root .menubar .menu").empty();
 | 
			
		||||
    Flatdoc.run({
 | 
			
		||||
      fetcher: Flatdoc.file('tx_format.md')
 | 
			
		||||
    });
 | 
			
		||||
    $(document).on('flatdoc:ready', $().multicode_tabs);
 | 
			
		||||
  </script>
 | 
			
		||||
  <!-- end flatdoc load -->
 | 
			
		||||
  <!-- Alternate multicode tabs for compiled page: 
 | 
			
		||||
  <script>
 | 
			
		||||
    $(document).ready(function() {
 | 
			
		||||
        $(".multicode").minitabs()
 | 
			
		||||
        make_code_expandable();
 | 
			
		||||
    });
 | 
			
		||||
  </script>
 | 
			
		||||
  <!--end alt code for compiled page -->
 | 
			
		||||
  <link type="text/css" rel="stylesheet" href="css/mod.css">
 | 
			
		||||
  <script src="js/expandcode.js"></script>
 | 
			
		||||
  <script src="js/fixsidebarscroll.js"></script>
 | 
			
		||||
  
 | 
			
		||||
</head>
 | 
			
		||||
<body role='flatdoc' class='no-literate'>
 | 
			
		||||
 	<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
        <div class="navbar-header">
 | 
			
		||||
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
 | 
			
		||||
            <span class="sr-only">Toggle navigation</span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
            <span class="icon-bar"></span>
 | 
			
		||||
          </button>
 | 
			
		||||
          <a class="navbar-brand" href="https://dev.ripple.com/"><img class="small_logo" src="assets/img/ripple_logo_small.png"></a>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="navbar-collapse collapse">
 | 
			
		||||
          <ul class="nav navbar-nav">
 | 
			
		||||
			<li class="active"><a href="/">Resources</a></li>
 | 
			
		||||
            <li><a href="https://www.bountysource.com/teams/ripple/bounties">Bounties</a></li>
 | 
			
		||||
            <li><a href="https://ripplelabs.atlassian.net/">Bug Tracking</a></li>
 | 
			
		||||
            <li><a href="https://ripple.com/dev/blog/">Dev Blog</a></li>
 | 
			
		||||
            <li><a href="https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98">Forums</a></li>
 | 
			
		||||
            <li class="dropdown">
 | 
			
		||||
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">API Tool <span class="caret"></span></a>
 | 
			
		||||
              <ul class="dropdown-menu" role="menu">
 | 
			
		||||
                <li><a href="ripple-api-tool.html">WebSocket Tool</a></li>
 | 
			
		||||
                <li><a href="rest-api-tool.html">REST Tool</a></li>
 | 
			
		||||
              </ul>
 | 
			
		||||
            </li>
 | 
			
		||||
          </ul>
 | 
			
		||||
          	<div class='right'>
 | 
			
		||||
		 	 <!-- GitHub buttons -->
 | 
			
		||||
		 		 <iframe src="https://dev.ripple.com/vendor/ghbtn.html?user=ripple&repo=ripple-dev-portal&type=watch&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="110" height="20"></iframe>
 | 
			
		||||
			</div>
 | 
			
		||||
        </div><!--/.nav-collapse -->
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
<!-- 
 | 
			
		||||
  <div class="header-subnav-wrapper">
 | 
			
		||||
  <div class='header-subnav navbar-fixed-top'>
 | 
			
		||||
    <ul>
 | 
			
		||||
        <li><a href='?p=introduction' id='subnav-intro'>Introduction</a></li>
 | 
			
		||||
        <li><a href='?p=ripple-rest-api' id='subnav-rest'>Ripple-REST API</a></li>
 | 
			
		||||
        <li><a href='?p=web-sockets-api' id='subnav-websocket'>WebSocket & JSON-RPC APIs</a></li>
 | 
			
		||||
    </ul>
 | 
			
		||||
    <div class='clearer'> </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
 -->
 | 
			
		||||
  <div class='content-root'>
 | 
			
		||||
    <div class='menubar'>
 | 
			
		||||
      <div class='menu section' role='flatdoc-menu'></div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div role='flatdoc-content' class='content'>
 | 
			
		||||
    	
 | 
			
		||||
	</div>
 | 
			
		||||
  </div>
 | 
			
		||||
<div class="footer">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
        <p class="text-muted">
 | 
			
		||||
        	<div class="row">
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links applications">
 | 
			
		||||
							<li><a href="https://www.rippletrade.com">Ripple Trade</a>
 | 
			
		||||
							<li><a href="https://www.ripplecharts.com">Ripple Charts</a>
 | 
			
		||||
							<li><a href="https://ripple.com/graph">Ripple Graph</a>
 | 
			
		||||
							<li><a href="http://codius.org/">Codius</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links middleware">
 | 
			
		||||
							<li><a href="gatewayd.html">Gatewayd</a>
 | 
			
		||||
							<li><a href="ripple-rest.html">Ripple REST</a>
 | 
			
		||||
							<li><a href="https://github.com/ripple/ripple-lib">Ripple Lib</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
					
 | 
			
		||||
						<ul class="footer_links core_network">
 | 
			
		||||
							<li><a href="rippled-apis.html">rippled</a>
 | 
			
		||||
							<li><a href="transactions.html">Transactions</a>
 | 
			
		||||
							<li><a href="consensus-whitepaper.html">Consensus</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-2">
 | 
			
		||||
						<ul class="footer_links bounties">
 | 
			
		||||
							<li><a href="https://www.bountysource.com/teams/ripple/bounties">Bounties</a>
 | 
			
		||||
							<li><a href="https://ripplelabs.atlassian.net/">Bug tracking</a>
 | 
			
		||||
							<li><a href="guidelines.html">Brand guidelines</a>
 | 
			
		||||
							<li><a href="https://ripple.com/dev/blog/">Dev blog</a>
 | 
			
		||||
							<li><a href="https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98">Forums</a>
 | 
			
		||||
							<li><a href="https://ripple.com/wiki/Main_Page">Wiki</a>
 | 
			
		||||
						</ul>
 | 
			
		||||
				
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-md-4 mail_chimp">
 | 
			
		||||
				<p>Join the mailing list!</p>
 | 
			
		||||
				<label for="mce-EMAIL">Email address</label>
 | 
			
		||||
					<!-- Begin MailChimp Signup Form -->
 | 
			
		||||
						<link href="//cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
 | 
			
		||||
						<style type="text/css">
 | 
			
		||||
							#mc_embed_signup{clear:left; font:14px; }
 | 
			
		||||
	
 | 
			
		||||
						</style>
 | 
			
		||||
						<div id="mc_embed_signup">
 | 
			
		||||
						<form action="//ripple.us4.list-manage.com/subscribe/post?u=245dbc1c47849f034390dc5bf&id=4dfbe160d0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
 | 
			
		||||
	
 | 
			
		||||
							<input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="" required>
 | 
			
		||||
							<!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
 | 
			
		||||
							<div style="position: absolute; left: -5000px; top: -50px;"><input type="text" name="b_245dbc1c47849f034390dc5bf_4dfbe160d0" tabindex="-1" value=""></div>
 | 
			
		||||
							<input type="submit" value="Submit" name="subscribe" id="mc-embedded-subscribe" class="button btn btn-primary">
 | 
			
		||||
						</form>
 | 
			
		||||
						</div>
 | 
			
		||||
 | 
			
		||||
					<!--End mc_embed_signup-->
 | 
			
		||||
				</div>
 | 
			
		||||
      		</div>
 | 
			
		||||
        </p>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										682
									
								
								tx_format.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,682 @@
 | 
			
		||||
# Transactions #
 | 
			
		||||
 | 
			
		||||
A *Transaction* is the only way to modify the Ripple Ledger. All transactions have certain fields in common:
 | 
			
		||||
 | 
			
		||||
* [Common Fields](#common-fields)
 | 
			
		||||
 | 
			
		||||
There are several different types of transactions that perform different actions, each with additional fields relevant to that type of action:
 | 
			
		||||
 | 
			
		||||
* [Payment - Send funds from one account to another](#payment)
 | 
			
		||||
* [AccountSet - Set options on an account](#accountset)
 | 
			
		||||
* [SetRegularKey - Set an account's regular key](#setregularkey)
 | 
			
		||||
* [OfferCreate - Submit an order to exchange currency](#offercreate)
 | 
			
		||||
* [OfferCancel - Withdraw a currency-exchange order](#offercancel)
 | 
			
		||||
* [TrustSet - Add or modify a trust line](#trustset)
 | 
			
		||||
 | 
			
		||||
Additionally, there are *Psuedo-Transactions* that are not created and submitted in the usual way, but may appear in ledgers:
 | 
			
		||||
 | 
			
		||||
* [Fee - Adjust the minimum transaction fee or account reserve](#fee)
 | 
			
		||||
 | 
			
		||||
## Signing and Sending Transactions ##
 | 
			
		||||
 | 
			
		||||
Signing a transaction cryptographically proves that the person in charge of the account sending the transaction is authorized to do so. Only signed transactions can be submitted to the network and included in a validated ledger. A signed transaction is immutable: its contents cannot change, and the signature is not valid for any other transaction.
 | 
			
		||||
 | 
			
		||||
You can sign a transaction using a secret key: either the master secret, or a regular secret if the account has a regular key pair associated with it. (See [SetRegularKey](#setregularkey) for details.)
 | 
			
		||||
 | 
			
		||||
Multi-signature transactions are [in development](https://wiki.ripple.com/Multisign).
 | 
			
		||||
 | 
			
		||||
Typically, you create a transaction in JSON format first. Here is an example of an unsigned Payment-type transaction in JSON:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
{
 | 
			
		||||
  "TransactionType" : "Payment",
 | 
			
		||||
  "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
 | 
			
		||||
  "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
 | 
			
		||||
  "Amount" : {
 | 
			
		||||
     "currency" : "USD",
 | 
			
		||||
     "value" : "1",
 | 
			
		||||
     "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn"
 | 
			
		||||
  },
 | 
			
		||||
  "Fee": "10",
 | 
			
		||||
  "Flags": 2147483648,
 | 
			
		||||
  "Sequence": 2,
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
After doing that, you generate the signed binary format for the transaction. There are two ways to do this:
 | 
			
		||||
 | 
			
		||||
1. Convert it to a binary blob and sign it offline. This is preferable, since it means that the account secret used for signing the transaction is never transmitted over any network connection.
 | 
			
		||||
  * [rsign.js](https://github.com/ripple/ripple-lib/blob/develop/bin/rsign.js) is a JavaScript implementation of offline signing.
 | 
			
		||||
2. Have a `rippled` server sign the transaction for you. The [sign command](rippled-apis.html#sign) takes a JSON-format transaction and secret and returns the signed binary transaction format ready for submission. (Transmitting your account secret is dangerous, so you should only do this from within a trusted and encrypted sub-net, to a server you control.)
 | 
			
		||||
  * As a shortcut, you can use the [submit command](rippled-apis.html#submit) with a `tx_json` object to sign and submit a transaction all at once. This is only recommended for testing and development purposes.
 | 
			
		||||
 | 
			
		||||
In either case, signing a transaction generates a binary blob that can be submitted to the network. This means using `rippled`'s [submit command](rippled-apis.html#submit). Here is an example of the same transaction, as a signed blob, being submitted with the WebSocket API:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
{
 | 
			
		||||
  "id": 2,
 | 
			
		||||
  "command": "submit",
 | 
			
		||||
  "tx_blob" : "120000240000000461D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000F732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74483046022100982064CDD3F052D22788DB30B52EEA8956A32A51375E72274E417328EBA31E480221008F522C9DB4B0F31E695AA013843958A10DE8F6BA7D6759BEE645F71A7EB240BE81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754"
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
After a transaction has been submitted, if it gets accepted into a validated ledger, you can view the final transaction using the API. For example, here is what the WebSocket API [tx command](rippled-apis.html#tx) shows for the same transaction. The field names that begin with capital letters are part of the ledger object; the fields that begin with lower-case letters are additional information generated by the server for the request:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
{
 | 
			
		||||
  "id": 6,
 | 
			
		||||
  "status": "success",
 | 
			
		||||
  "type": "response",
 | 
			
		||||
  "result": {
 | 
			
		||||
    "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
 | 
			
		||||
    "Amount": {
 | 
			
		||||
      "currency": "USD",
 | 
			
		||||
      "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
 | 
			
		||||
      "value": "1"
 | 
			
		||||
    },
 | 
			
		||||
    "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
 | 
			
		||||
    "Fee": "10",
 | 
			
		||||
    "Flags": 2147483648,
 | 
			
		||||
    "Sequence": 2,
 | 
			
		||||
    "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB",
 | 
			
		||||
    "TransactionType": "Payment",
 | 
			
		||||
    "TxnSignature": "3045022100D64A32A506B86E880480CCB846EFA3F9665C9B11FDCA35D7124F53C486CC1D0402206EC8663308D91C928D1FDA498C3A2F8DD105211B9D90F4ECFD75172BAE733340",
 | 
			
		||||
    "date": 455224610,
 | 
			
		||||
    "hash": "33EA42FC7A06F062A7B843AF4DC7C0AB00D6644DFDF4C5D354A87C035813D321",
 | 
			
		||||
    "inLedger": 7013674,
 | 
			
		||||
    "ledger_index": 7013674,
 | 
			
		||||
    "meta": {
 | 
			
		||||
      "AffectedNodes": [
 | 
			
		||||
        {
 | 
			
		||||
          "ModifiedNode": {
 | 
			
		||||
            "FinalFields": {
 | 
			
		||||
              "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
 | 
			
		||||
              "Balance": "99999980",
 | 
			
		||||
              "Flags": 0,
 | 
			
		||||
              "OwnerCount": 0,
 | 
			
		||||
              "Sequence": 3
 | 
			
		||||
            },
 | 
			
		||||
            "LedgerEntryType": "AccountRoot",
 | 
			
		||||
            "LedgerIndex": "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8",
 | 
			
		||||
            "PreviousFields": {
 | 
			
		||||
              "Balance": "99999990",
 | 
			
		||||
              "Sequence": 2
 | 
			
		||||
            },
 | 
			
		||||
            "PreviousTxnID": "7BF105CFE4EFE78ADB63FE4E03A851440551FE189FD4B51CAAD9279C9F534F0E",
 | 
			
		||||
            "PreviousTxnLgrSeq": 6979192
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "ModifiedNode": {
 | 
			
		||||
            "FinalFields": {
 | 
			
		||||
              "Balance": {
 | 
			
		||||
                "currency": "USD",
 | 
			
		||||
                "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji",
 | 
			
		||||
                "value": "2"
 | 
			
		||||
              },
 | 
			
		||||
              "Flags": 65536,
 | 
			
		||||
              "HighLimit": {
 | 
			
		||||
                "currency": "USD",
 | 
			
		||||
                "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
 | 
			
		||||
                "value": "0"
 | 
			
		||||
              },
 | 
			
		||||
              "HighNode": "0000000000000000",
 | 
			
		||||
              "LowLimit": {
 | 
			
		||||
                "currency": "USD",
 | 
			
		||||
                "issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
 | 
			
		||||
                "value": "100"
 | 
			
		||||
              },
 | 
			
		||||
              "LowNode": "0000000000000000"
 | 
			
		||||
            },
 | 
			
		||||
            "LedgerEntryType": "RippleState",
 | 
			
		||||
            "LedgerIndex": "96D2F43BA7AE7193EC59E5E7DDB26A9D786AB1F7C580E030E7D2FF5233DA01E9",
 | 
			
		||||
            "PreviousFields": {
 | 
			
		||||
              "Balance": {
 | 
			
		||||
                "currency": "USD",
 | 
			
		||||
                "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji",
 | 
			
		||||
                "value": "1"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            "PreviousTxnID": "7BF105CFE4EFE78ADB63FE4E03A851440551FE189FD4B51CAAD9279C9F534F0E",
 | 
			
		||||
            "PreviousTxnLgrSeq": 6979192
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "TransactionIndex": 0,
 | 
			
		||||
      "TransactionResult": "tesSUCCESS"
 | 
			
		||||
    },
 | 
			
		||||
    "validated": true
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Identifying Transactions ###
 | 
			
		||||
 | 
			
		||||
The `"hash"` is the unique value that identifies a particular transaction. The server provides the hash in the response when you submit the transaction; you can also look up a transaction in an account's transaction history with the [account_tx command](rippled-apis.html#account_tx).
 | 
			
		||||
 | 
			
		||||
The transaction hash can be used as a "proof of payment" since anyone can look up the transaction using the hash and verify its final status.
 | 
			
		||||
 | 
			
		||||
## Common Fields ##
 | 
			
		||||
 | 
			
		||||
Every transaction type has the same set of fundamental fields:
 | 
			
		||||
 | 
			
		||||
| Field | JSON Type | [Internal Type](https://wiki.ripple.com/Binary_Format) | Description |
 | 
			
		||||
|-------|-----------|---------------|-------------|
 | 
			
		||||
| Account | String | Account | The unique address of the account that initiated the transaction. |
 | 
			
		||||
| [AccountTxnID](#accounttxnid) | String | Hash256 | (Optional) Hash value identifying another transaction. This transaction is only valid if the sending account's previously-sent transaction matches the provided hash. |
 | 
			
		||||
| [Fee](#transaction-fees) | String | Amount | (Required, but [auto-fillable](#auto-fillable-fields)) Integer amount of XRP, in drops, to be destroyed as a fee for redistributing this transaction to the network. |
 | 
			
		||||
| [Flags](#flags) | Unsigned Integer | UInt32 | (Optional) Set of bit-flags for this transaction. |
 | 
			
		||||
| [LastLedgerSequence](#lastledgersequence) | Number | UInt32 | (Optional, but strongly recommended) Highest ledger sequence number that a transaction can appear in. |
 | 
			
		||||
| [Memos](#memos) | Array of Objects | Array | (Optional) Additional arbitrary information used to identify this transaction. |
 | 
			
		||||
| [Sequence](#canceling-or-skipping-a-transaction) | Unsigned Integer | UInt32 | (Required, but [auto-fillable](#auto-fillable-fields)) The sequence number, relative to the initiating account, of this transaction. A transaction is only valid if the `Sequence` number is exactly 1 greater than the last-valided transaction from the same account. |
 | 
			
		||||
| SigningPubKey | String | PubKey | (Automatically added when signing) Hex representation of the public key that corresponds to the private key used to sign this transaction. |
 | 
			
		||||
| SourceTag | Unsigned Integer | UInt32 | (Optional) Arbitrary integer used to identify the reason for this payment, or the hosted wallet on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's `SourceTag` as the refund payment's `DestinationTag`. |
 | 
			
		||||
| TransactionType | String | UInt16 | The type of transaction. Valid types include: `Payment`, `OfferCreate`, `OfferCancel`, `TrustSet`, `AccountSet`, and `SetRegularKey`. |
 | 
			
		||||
| TxnSignature | String | VariableLength | (Automatically added when signing) The signature that verifies this transaction as originating from the account it says it is from. |
 | 
			
		||||
 | 
			
		||||
The field `PreviousTxnID` is **DEPRECATED**. It has been replaced by [AccountTxnID](#accounttxnid). Always use `AccountTxnID` instead.
 | 
			
		||||
 | 
			
		||||
### Auto-fillable Fields ###
 | 
			
		||||
 | 
			
		||||
Some fields can be automatically filled in before the transaction is signed, either by a `rippled` server or by the library used for offline signing. Both [ripple-lib](https://github.com/ripple/ripple-lib) and `rippled` can automatically provide the following values:
 | 
			
		||||
 | 
			
		||||
* `Fee` - Automatically use the current base network fee. (*Note:* `rippled`'s [sign command](rippled-apis.html#sign) supports limits on how high the filled-in-value is, using the `fee_mult_max` parameter.)
 | 
			
		||||
* `Sequence` - Automatically use the next sequence number for the account sending the transaction.
 | 
			
		||||
 | 
			
		||||
For a production system, we recommend *not* leaving these fields to be filled by the server. For example if fees become temporarily high, you may want to wait for fees to decrease before sending some transactions, instead of continuing regardless of fee.
 | 
			
		||||
 | 
			
		||||
The [`Paths` field](#paths) of the [Payment](#payment) transaction type can also be automatically filled in. 
 | 
			
		||||
 | 
			
		||||
### Transaction Fees ###
 | 
			
		||||
 | 
			
		||||
The `Fee` field specifies an amount, in [drops of XRP](rippled-apis.html#specifying-currency-amounts), that must be deducted from the sender's balance in order to relay any transaction through the network. This is a measure to protect against spam and DDoS attacks weighing down the whole network. You can specify any amount in the `Fee` field when you create a transaction. If your transaction makes it into a validated leger (whether or not it achieves its intended purpose), then the deducted XRP is destroyed forever.
 | 
			
		||||
 | 
			
		||||
Each rippled server decides on the minimum fee to require, which is at least the global base transaction fee, and increases based on the individual server's current load. If a transaction's fee is not high enough, then the server does not relay the transaction to other servers. (*Exception:* If you send a transaction to your own server over an admin connection, it relays the transaction even under high load, so long as the fee meets the global base.)
 | 
			
		||||
 | 
			
		||||
Even if some servers have too much load to propagate a transaction, the transaction can still make it into a validated ledger as long as a large enough percentage of validating servers receive it, so the global base fee is generally enough to submit a transaction. If many servers in the network are under high load all at once (for example, due to a DDoS or a global event of some sort) then you must either set the fee higher or wait for the load to decrease.
 | 
			
		||||
 | 
			
		||||
For more information, see the [Transaction Fee wiki article](https://wiki.ripple.com/Transaction_Fee).
 | 
			
		||||
 | 
			
		||||
### Canceling or Skipping a Transaction ###
 | 
			
		||||
 | 
			
		||||
An important and intentional feature of the Ripple Network is that a transaction is final as soon as it has been incorporated in a validated ledger.
 | 
			
		||||
 | 
			
		||||
However, if a transaction has not yet been included in a validated ledger, you can effectively cancel it by rendering it invalid. Typically, this means sending another transaction with the same `Sequence` value from the same account. If you do not want to perform the same transaction again, you can perform an [AccountSet](#accountset) transaction with no options.
 | 
			
		||||
 | 
			
		||||
For example, if you attempted to submit 3 transactions with sequence numbers 11, 12, and 13, but transaction 11 gets lost somehow or does not have a high enough [transaction fee](#transaction-fees) to be propagated to the network, then you can cancel transaction 11 by submitting an AccountSet transaction with no options and sequence number 11. This does nothing (except destroying the transaction fee for the new transaction 11), but it allows transactions 12 and 13 to become valid.
 | 
			
		||||
 | 
			
		||||
This approach is preferable to renumbering and resubmitting transactions 12 and 13, because it prevents transactions from being effectively duplicated under different sequence numbers.
 | 
			
		||||
 | 
			
		||||
In this way, an AccountSet transaction with no options is the canonical "[no-op](http://en.wikipedia.org/wiki/NOP)" transaction.
 | 
			
		||||
 | 
			
		||||
### LastLedgerSequence ###
 | 
			
		||||
 | 
			
		||||
We strongly recommend that you specify the `LastLedgerSequence` parameter on every transaction. Provide a value of about 3 higher than [the most recent ledger index](rippled-apis.html#ledger) to ensure that your transaction is either validated or rejected within a matter of seconds.
 | 
			
		||||
 | 
			
		||||
Without the `LastLedgerSequence` parameter, there is a particular situation that can occur and cause your transaction to be stuck in an undesirable state where it is neither validated nor rejected for a long time. Specifically, if the global base [transaction fee](#transaction-fees) increases after you send a transaction, your transaction may not get propagated enough to be included in a validated ledger, but you would have to pay the (increased) fee in order to send another transaction canceling it. Later, if the transaction fee decreases again, the transaction may become viable again. The `LastLedgerSequence` places a hard upper limit on how long the transaction can wait to be validated or rejected.
 | 
			
		||||
 | 
			
		||||
### AccountTxnID ###
 | 
			
		||||
 | 
			
		||||
The `AccountTxnID` field lets you chain your transactions together, so that a current transaction is not valid unless the previous one (by Sequence Number) is also valid and matches the transaction you expected.
 | 
			
		||||
 | 
			
		||||
One situation in which this is useful is if you have a primary system for submitting transactions and a passive backup system. If the passive backup system becomes disconnected from the primary, but the primary is not fully dead, and they both begin operating at the same time, you could potentially encounter serious problems like some transactions sending twice and others not at all. Chaining your transactions together with `AccountTxnID` ensures that, even if both systems are active, only one of them can submit valid transactions at a time.
 | 
			
		||||
 | 
			
		||||
In order to use AccountTxnID, you must first set the [asfAccountTxnID](#accountset-flags) flag, so that the ledger keeps track of the ID for the account's previous transaction.
 | 
			
		||||
 | 
			
		||||
### Memos ###
 | 
			
		||||
 | 
			
		||||
The Memos field allows for arbitrary messaging data that can accompany the transaction. It is presented as an array of objects. Each object has only one field, `Memo`, which in turn contains another object with *one or more* of the following fields:
 | 
			
		||||
 | 
			
		||||
| Field | Type | [Internal Type](https://wiki.ripple.com/Binary_Format) | Description |
 | 
			
		||||
|-------|------|--------------------------------------------------------|-------------|
 | 
			
		||||
| MemoType | String | VariableLength | Arbitrary hex value; conventionally should be ASCII for a unique relation (according to [RFC 5988](http://tools.ietf.org/html/rfc5988#section-4)) that defines the format of this memo. |
 | 
			
		||||
| MemoData | String | VariableLength | Arbitrary hex value, conventionally containing the content of the memo. |
 | 
			
		||||
| MemoFormat | String | VariableLength | Arbitrary hex value, conventionally containing information on how the memo is encoded, for example as a [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) |
 | 
			
		||||
 | 
			
		||||
The `Memos` field is currently limited to no more than 1KB in size (when serialized in binary format).
 | 
			
		||||
 | 
			
		||||
Example of a transaction with a Memos field:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
{
 | 
			
		||||
    "TransactionType": "Payment",
 | 
			
		||||
    "Account": "rMmTCjGFRWPz8S2zAUUoNVSQHxtRQD4eCx",
 | 
			
		||||
    "Destination": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV",
 | 
			
		||||
    "Memos": [
 | 
			
		||||
        {
 | 
			
		||||
            "Memo": {
 | 
			
		||||
                "MemoType": "5061796d656e7420726561736f6e",
 | 
			
		||||
                "MemoData": "72656e74"
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    ],
 | 
			
		||||
    "Amount": "1"
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Flags ###
 | 
			
		||||
 | 
			
		||||
The Flags field allows for additional boolean options regarding the behavior of a transaction. They are represented as binary values that can be combined with bitwise-or operations to set multiple flags at once.
 | 
			
		||||
 | 
			
		||||
Most flags only have meaning for a specific transaction type. The same bitwise value may be reused for flags on different transaction types, so it is important to pay attention to the `TransactionType` field when setting and reading flags.
 | 
			
		||||
 | 
			
		||||
The only flag that applies globally to all transactions is as follows:
 | 
			
		||||
 | 
			
		||||
| Flag Name | Hex Value | Decimal Value | Description |
 | 
			
		||||
|-----------|-----------|---------------|-------------|
 | 
			
		||||
| tfFullyCanonicalSig | 0x80000000 | 2147483648 | Require a fully-canonical signature, to protect a transaction from [transaction malleability](https://wiki.ripple.com/Transaction_Malleability) exploits. |
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Payment ##
 | 
			
		||||
[[Source]<br>](https://github.com/ripple/rippled/blob/master/src/ripple/module/app/transactors/Payment.cpp "Source")
 | 
			
		||||
 | 
			
		||||
A Payment transaction represents a transfer of value from one account to another. (Depending on the path taken, additional exchanges of value may occur atomically to facilitate the payment.)
 | 
			
		||||
 | 
			
		||||
Payments are also the only way to [create accounts](#creating-accounts).
 | 
			
		||||
 | 
			
		||||
Example payment:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
{
 | 
			
		||||
  "TransactionType" : "Payment",
 | 
			
		||||
  "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
 | 
			
		||||
  "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
 | 
			
		||||
  "Amount" : {
 | 
			
		||||
     "currency" : "USD",
 | 
			
		||||
     "value" : "1",
 | 
			
		||||
     "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn"
 | 
			
		||||
  },
 | 
			
		||||
  "Fee": "10",
 | 
			
		||||
  "Flags": 2147483648,
 | 
			
		||||
  "Sequence": 2,
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
| Field | JSON Type | [Internal Type](https://wiki.ripple.com/Binary_Format) | Description |
 | 
			
		||||
|-------|-----------|--------------------------------------------------------|-------------|
 | 
			
		||||
| Amount | String (XRP)<br/>Object (Otherwise) | Amount | The amount of currency to deliver. *Note:* If the [*tfPartialPayment* flag](#payment-flags) is set, this is not the amount actually received. (Formatted as per [Specifying Currency Amounts](rippled-apis.html#specifying-currency-amounts).) |
 | 
			
		||||
| Destination | String | Account | The unique address of the account receiving the payment. |
 | 
			
		||||
| DestinationTag | Unsigned Integer | UInt32 | (Optional) Arbitrary tag that identifies the reason for the payment to the destination, or the hosted wallet to make a payment to. |
 | 
			
		||||
| InvoiceID | String | Hash256 | (Optional) Arbitrary 256-bit hash representing a specific reason or identifier for this payment. |
 | 
			
		||||
| Paths | Array of path arrays | PathSet | (Optional, auto-fillable) Array of [payment paths](https://ripple.com/wiki/Payment_paths) to be used for this transaction. Must be omitted for XRP-to-XRP transactions. |
 | 
			
		||||
| SendMax | String/Object | Amount | (Optional) Highest amount of source currency this transaction is allowed to cost, including fees, exchanges, and [slippage](http://en.wikipedia.org/wiki/Slippage_%28finance%29). (See [Specifying Currency Amounts](rippled-apis.html#specifying-currency-amounts)) Must be supplied for cross-currency/cross-issue payments (implies source balance). Must be omitted for XRP-to-XRP payments.|
 | 
			
		||||
 | 
			
		||||
### Creating Accounts ###
 | 
			
		||||
 | 
			
		||||
The Payment transaction type is the only way to create new accounts in the shared Ripple ledger. To do so, send an amount of XRP that is equal or greater than the [account reserve](https://wiki.ripple.com/Reserves) to a mathematically-valid account address that does not exist yet. When the payment is processed, a new [AccountRoot node](https://wiki.ripple.com/Ledger_Format#AccountRoot) will be added to the ledger to reflect the newly-created account.
 | 
			
		||||
 | 
			
		||||
If you attempt to send an insufficient amount of XRP, or any other currency, the Payment will fail.
 | 
			
		||||
 | 
			
		||||
### Paths ###
 | 
			
		||||
 | 
			
		||||
The `Paths` field is a set of different paths along which the payment can be made. A single transaction can potentially follow multiple paths, for example if the transaction exchanges currency using several different offers in order to achieve the best rate. The source and destination (that is, the endpoints of the path) are omitted from a path. You can get suggestions of paths from rippled servers using the [`path_find`](#path-find) or [`ripple_path_find`](#ripple-path-find) commands. 
 | 
			
		||||
 | 
			
		||||
If the `Paths` field is provided, the server decides at transaction processing time which paths to use out of the provided set. This decision is deterministic and attempts to minimize costs, but it is not guaranteed to be perfect.
 | 
			
		||||
 | 
			
		||||
If the `Paths` field is omitted, by definition the payment should take a direct path connecting the source and destination accounts. A direct path could be:
 | 
			
		||||
 | 
			
		||||
* An XRP-to-XRP transfer.
 | 
			
		||||
* A payment along a single trust line that connects the two accounts in the currency being transferred.
 | 
			
		||||
 | 
			
		||||
The `Paths` field must not be an empty array, nor an array whose members are all empty arrays.
 | 
			
		||||
 | 
			
		||||
The `Paths` field can be automatically filled in when the transaction is signed, if the `build_path` field is provided to the [sign](rippled-apis.html#sign) or [submit](rippled-apis.html#submit) commands. However, we recommend pathfinding separately and confirming the results prior to signing, in order to avoid surprises. There are no guarantees on how expensive the paths the server finds will be at the time of submission. (Although `rippled` is designed to search for the cheapest paths possible, it may not always find them. Untrustworthy `rippled` instances could also be modified to change this behavior for profit.)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Payment Flags ###
 | 
			
		||||
 | 
			
		||||
Transactions of the Payment type support additional values in the [`Flags` field](#flags), as follows:
 | 
			
		||||
 | 
			
		||||
| Flag Name | Hex Value | Decimal Value | Description |
 | 
			
		||||
|-----------|-----------|---------------|-------------|
 | 
			
		||||
| tfNoDirectRipple | 0x00010000 | 65536 | Do not use a direct path, if available. This is intended to force the transaction to take arbitrage opportunities. Most clients will not need this. |
 | 
			
		||||
| tfPartialPayment | 0x00020000 | 131072 | If the specified `Amount` cannot be sent without spending more than `SendMax`, reduce the received amount instead of failing outright. See [Partial Payments](#partial-payments) for more details. |
 | 
			
		||||
 | 
			
		||||
### Partial Payments ###
 | 
			
		||||
 | 
			
		||||
A partial payment allows a payment to succeed by reducing the amount received, instead of increasing the `SendMax`. Partial payments are useful for [returning payments](https://wiki.ripple.com/Returning_payments) without incurring additional costs to oneself.
 | 
			
		||||
 | 
			
		||||
By default, the `Amount` field of a Payment transaction specifies the amount of currency that is *received* by the account that is the destination of the payment. Any additional amount needed for fees or currency exchange is deducted from the sending account's balances, up to the `SendMax` amount. (If `SendMax` is not specified, that is equivalent to setting the `SendMax` to the `Amount` field.) If the amount needed in order to make the payment exceeds the `SendMax` parameter, or the full amount cannot be delivered for any other reason, the transaction fails.
 | 
			
		||||
 | 
			
		||||
The [*tfPartialPayment* flag](#payment-flags) allows you to make a "partial payment" instead. When this flag is enabled for a payment, it delivers as much as possible, up to the `Amount` value, without exceeding the `SendMax` value. Fees and currency exchange rates are calculated the same way, but the amount being sent automatically scales down until the total amount deducted from the sending account's balances is within `SendMax`. The transaction is always considered successful as long as it delivers any positive amount. This means that partial payments can succeed at sending *some* of the intended value despite limitations including fees, lack of liquidity, insufficient space in the receiving account's trustlines, or other reasons.
 | 
			
		||||
 | 
			
		||||
A partial payment cannot provide the initial XRP to fund an account; this case returns the error code `telNO_DST_PARTIAL`. Direct XRP-to-XRP payments also cannot be partial payments `temBAD_SEND_XRP_PARTIAL`.
 | 
			
		||||
 | 
			
		||||
The amount of XRP used for the [transaction fee](#transaction-fees) is always deducted from the sender’s account, regardless of the *tfPartialPayment* flag.
 | 
			
		||||
 | 
			
		||||
#### Partial Payments Warning ####
 | 
			
		||||
 | 
			
		||||
When the [*tfPartialPayment* flag](#payment-flags) is enabled, the `Amount` field __*is not guaranteed to be the amount received*__. In fact, __*there is no minimum guaranteed amount*__ that a partial payment actually delivers. Validated partial payment transactions have a `meta.DeliveredAmount` field, which indicates the amount of currency actually received by the destination account. When receiving a payment, you should confirm that, if the `meta.DeliveredAmount` field exists, you use that to determine how much your account received instead of relying on the `Amount` field. 
 | 
			
		||||
 | 
			
		||||
*Note:* Early partial payments in historical ledgers do not have this field. If necessary, you can check the balance changes in the `meta` field to determine how much the destination account actually received.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## AccountSet ##
 | 
			
		||||
 | 
			
		||||
[[Source]<br>](https://github.com/ripple/rippled/blob/master/src/ripple/module/app/transactors/SetAccount.cpp "Source")
 | 
			
		||||
 | 
			
		||||
An AccountSet transaction modifies the properties of an [account in the global ledger]((https://wiki.ripple.com/Ledger_Format#AccountRoot).
 | 
			
		||||
 | 
			
		||||
Example AccountSet:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
{
 | 
			
		||||
    "TransactionType": "AccountSet",
 | 
			
		||||
    "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
 | 
			
		||||
    "Fee": "12",
 | 
			
		||||
    "Sequence": 5,
 | 
			
		||||
    "Domain": "6D64756F31332E636F6D",
 | 
			
		||||
    "LastLedgerIndex": 8804315,
 | 
			
		||||
    "SetFlag": 5,
 | 
			
		||||
    "MessageKey": "rQD4SqHJtDxn5DDL7xNnojNa3vxS1Jx5gv"
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
| Field | JSON Type | [Internal Type](https://wiki.ripple.com/Binary_Format) | Description |
 | 
			
		||||
|-------|-----------|--------------------------------------------------------|-------------|
 | 
			
		||||
| [ClearFlag](#accountset-flags) | Unsigned Integer | UInt32 | (Optional) Unique identifier of a flag to disable for this account. |
 | 
			
		||||
| [Domain](#domain) | String | VariableLength | (Optional) The domain that owns this account, as a string of hex representing the ASCII for the domain in lowercase. |
 | 
			
		||||
| EmailHash | String | Hash128 | (Optional) Hash of an email address to be used for generating an avatar image. Conventionally, clients use [Gravatar](http://en.gravatar.com/site/implement/hash/) to display this image. |
 | 
			
		||||
| MessageKey | String | PubKey | (Optional) Public key for sending encrypted messages to this account. Conventionally, it should be a secp256k1 key, the same encryption that is used by the rest of Ripple. |
 | 
			
		||||
| [SetFlag](#accountset-flags) | Unsigned Integer | UInt32 | (Optional) Integer flag to enable for this account. |
 | 
			
		||||
| [TransferRate](#transferrate) | Unsigned Integer | UInt32 | (Optional) The fee to charge when users transfer this account's issuances, represented as billionths of a unit. Use `0` to set no fee. |
 | 
			
		||||
| WalletLocator | String | Hash256 | (Optional) Not used. |
 | 
			
		||||
| WalletSize | Unsigned Integer | UInt32 | (Optional) Not used. |
 | 
			
		||||
 | 
			
		||||
If none of these options are provided, then the AccountSet transaction has no effect (beyond destroying the transaction fee). See [Canceling or Skipping a Transaction](#canceling-or-skipping-a-transaction) for more details.
 | 
			
		||||
 | 
			
		||||
### Domain ###
 | 
			
		||||
 | 
			
		||||
The `Domain` field is represented as the hex string of the lowercase ASCII of the domain. For example, the domain *example.com* would be represented as `"6578616d706c652e636f6d"`.
 | 
			
		||||
 | 
			
		||||
To remove the `Domain` field from an account, send an AccountSet with the Domain set to an empty string.
 | 
			
		||||
 | 
			
		||||
Client applications can use the [ripple.txt](https://ripple.com/wiki/Ripple.txt) file hosted by the domain to confirm that the account is actually operated by that domain. *Note:* We expect the *host-meta* component of [Gateway Services](https://wiki.ripple.com/Gateway_Services) to replace ripple.txt for this purpose.
 | 
			
		||||
 | 
			
		||||
### AccountSet Flags ###
 | 
			
		||||
 | 
			
		||||
There are several options which can be either enabled or disabled for an account. Account options are represented by different types of flags depending on the situation:
 | 
			
		||||
 | 
			
		||||
* The `AccountSet` transaction type has several "AccountSet Flags" (prefixed *asf*) that can enable an option when passed as the `SetFlag` parameter, or disable an option when passed as the `ClearFlag` parameter.
 | 
			
		||||
* The `AccountSet` transaction type has several transaction flags (prefixed *tf*) that can be used to enable or disable specific account options when passed in the `Flags` parameter. This style is discouraged, and new account options will not have new corresponding transaction flags.
 | 
			
		||||
* The `AccountRoot` ledger node type has several ledger-specific-flags (prefixed *lsf*) which represent the state of particular account options within a particular ledger. Naturally, the values apply until a later ledger version changes them.
 | 
			
		||||
 | 
			
		||||
The preferred way to enable and disable Account Flags is using the `SetFlag` and `ClearFlag` parameters of an AccountSet transaction. AccountSet flags have names that begin with *asf*.
 | 
			
		||||
 | 
			
		||||
All flags are off by default.
 | 
			
		||||
 | 
			
		||||
The available AccountSet flags are:
 | 
			
		||||
 | 
			
		||||
| Flag Name | Decimal Value | Description | Corresponding Ledger Flag |
 | 
			
		||||
|-----------|---------------|-------------|---------------------------|
 | 
			
		||||
| asfRequireDest | 1 | Require a destination tag to send transactions to this account. | lsfRequireDestTag |
 | 
			
		||||
| asfRequireAuth | 2 | Require authorization for users to hold balances issued by this account. (This prevents users unknown to a gateway from holding funds issued by that gateway.) | lsfRequireAuth |
 | 
			
		||||
| asfDisallowXRP | 3 | XRP should not be sent to this account. (Enforced by client applications, not by `rippled`) | lsfDisallowXRP |
 | 
			
		||||
| asfDisableMaster | 4 | Disallow use of the master key. Can only be enabled if the account has a [RegularKey](#setregularkey) configured. | lsfDisableMaster |
 | 
			
		||||
| asfAccountTxnID | 5 | Track the ID of this account's most recent transaction. Required for [AccountTxnID](#accounttxnid) | (None) |
 | 
			
		||||
| asfNoFreeze | 6 | Permanently give up the ability to freeze individual trust lines. This flag can never be cleared. | lsfNoFreeze |
 | 
			
		||||
| asfGlobalFreeze | 7 | Freeze all assets issued by this account. | lsfGlobalFreeze |
 | 
			
		||||
 | 
			
		||||
The following [Transaction flags](#flags), specific to the AccountSet transaction type, serve the same purpose, but are discouraged:
 | 
			
		||||
 | 
			
		||||
| Flag Name | Hex Value | Decimal Value | Replaced by AccountSet Flag |
 | 
			
		||||
|-----------|-----------|---------------|-----------------------------|
 | 
			
		||||
| tfRequireDestTag | 0x00010000 | 65536 | asfRequireDest (SetFlag) |
 | 
			
		||||
| tfOptionalDestTag | 0x00020000 | 131072 | asfRequireDest (ClearFlag) |
 | 
			
		||||
| tfRequireAuth | 0x00040000 | 262144 | asfRequireAuth (SetFlag) |
 | 
			
		||||
| tfOptionalAuth | 0x00080000 | 524288 | asfRequireAuth (ClearFlag) |
 | 
			
		||||
| tfDisallowXRP | 0x00100000 | 1048576 | asfDisallowXRP (SetFlag) |
 | 
			
		||||
| tfAllowXRP | 0x00200000 | 2097152 | asfDisallowXRP (ClearFlag) |
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#### Blocking Incoming Transactions ####
 | 
			
		||||
 | 
			
		||||
Incoming transactions with unclear purposes may be an inconvenience for some gateways, which would have to identify whether a mistake was made, and then potentially refund accounts or adjust balances depending on the mistake. The `asfRequireDest` and `asfDisallowXRP` flags are intended to protect users from accidentally sending funds to a gateway in a way that is unclear about the reason the funds were sent.
 | 
			
		||||
 | 
			
		||||
For example, a destination tag is typically used to identify which hosted balance should be credited when the gateway receives a payment. If the destination tag is omitted, it may be unclear which account should be credited, creating a need for refunds, among other problems. By using the `asfRequireDest` tag, the gateway (or any account) can ensure that every incoming payment has a destination tag, which makes it harder to send an ambiguous payment by accident.
 | 
			
		||||
 | 
			
		||||
Accounts can protect against unwanted incoming payments for non-XRP currencies simply by not creating trust lines in those currencies. Since XRP does not require trust, the `asfDisallowXRP` flag is used to discourage users from sending XRP to an account. However, this flag is not enforced in `rippled` because it could potentially cause accounts to become unusable. (If an account did not have enough XRP to send a transaction that disabled the flag, the account would be completely unusable.) Instead, client applications should disallow or discourage XRP payments to accounts with the `asfDisallowXRP` flag enabled.
 | 
			
		||||
 | 
			
		||||
### TransferRate ###
 | 
			
		||||
 | 
			
		||||
TransferRate allows issuing gateways to charge users for sending funds to other users of the same gateway. It adds a fee, specified in billionths of a unit (for all non-XRP currencies) that applies when a user pays another user in the currency issued by this account. The fee "disappears" from the balances on the ledger, becoming the property of the issuing gateway. The value cannot be less than 1000000000. (Less than that would indicate giving away money for sending transactions, which is exploitable.) You can specify 0 as a shortcut for 1000000000, meaning no fee.
 | 
			
		||||
 | 
			
		||||
For example, if HighFeeGateway issues USD and sets the `TransferRate` to 120000000 and Norman wants to send Arthur $100 of USD issued by HighFeeGateway, Norman would have to spend $120 in order for Arthur to receive $100. The other $20 would no longer be tracked on the Ripple Ledger, and would become the property of HighFeeGateway instead.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## SetRegularKey ##
 | 
			
		||||
 | 
			
		||||
[[Source]<br>](https://github.com/ripple/rippled/blob/develop/src/ripple/module/app/transactors/SetRegularKey.cpp "Source")
 | 
			
		||||
 | 
			
		||||
A SetRegularKey transaction changes the regular key used by the account to sign future transactions.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
{
 | 
			
		||||
    "Flags": 0,
 | 
			
		||||
    "TransactionType": "SetRegularKey",
 | 
			
		||||
    "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
 | 
			
		||||
    "Fee": "12",
 | 
			
		||||
    "RegularKey": "rAR8rR8sUkBoCZFawhkWzY4Y5YoyuznwD"
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
| Field | JSON Type | [Internal Type](https://wiki.ripple.com/Binary_Format) | Description |
 | 
			
		||||
|-------|-----------|--------------------------------------------------------|-------------|
 | 
			
		||||
| RegularKey | String | Account | (Optional) The public key of a new keypair, to use as the regular key to this account, as a base-58-encoded string in the same format as an account address. If omitted, removes the existing regular key. |
 | 
			
		||||
 | 
			
		||||
Instead of using an account's master key to sign transactions, you can set an alternate key pair, called the "Regular Key". As long as the public key for this key pair is set in the `RegularKey` field of an account this way, then the secret of the Regular Key pair can be used to sign transactions. (The master secret can still be used, too, unless you set the [asfDisableMaster account flag](#accountset-flags).)
 | 
			
		||||
 | 
			
		||||
A Regular Key pair is generated in the same way as any other Ripple keys (for example, with [wallet_propose](rippled-apis.html#wallet-propose)), but it can be changed. A Master Key pair is an intrinsic part of the account's identity (the address is derived from the master public key) so the Master Key cannot be changed. Therefore, using a Regular Key to sign transactions instead of the master key whenever possible is beneficial to security.
 | 
			
		||||
 | 
			
		||||
If your regular key is compromised, but the master key is not, you can use this method to regain control of your account. As a special feature, each account is allowed to perform SetRegularKey transaction *without* a transaction fee as long as the [*lsfPasswordSpent* flag](https://wiki.ripple.com/Ledger_Format#AccountRoot) for the account is not set. To use this feature, submit a SetRegularKey transaction with a `Fee` value of 0, signed by the account's *master key*. (This way, you don't have to worry about whether the attacker has used up all the account's spare XRP.) The [*lsfPasswordSpent* flag]() is automatically cleared if your account receives a payment of XRP.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## OfferCreate ##
 | 
			
		||||
 | 
			
		||||
[[Source]<br>](https://github.com/ripple/rippled/blob/master/src/ripple/module/app/transactors/CreateOffer.cpp "Source")
 | 
			
		||||
 | 
			
		||||
An OfferCreate transaction is effectively a [limit order](http://en.wikipedia.org/wiki/limit_order). It defines an intent to exchange currencies, and creates an Offer node in the global ledger if not completely fulfilled when placed. Offers can be partially fulfilled.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
{
 | 
			
		||||
    "TransactionType": "OfferCreate",
 | 
			
		||||
    "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
 | 
			
		||||
    "Fee": "12",
 | 
			
		||||
    "Flags": 0,
 | 
			
		||||
    "LastLedgerSequence": 7108682,
 | 
			
		||||
    "Sequence": 8,
 | 
			
		||||
    "TakerGets": "6000000",
 | 
			
		||||
    "TakerPays": {
 | 
			
		||||
      "currency": "GKO",
 | 
			
		||||
      "issuer": "ruazs5h1qEsqpke88pcqnaseXdm6od2xc",
 | 
			
		||||
      "value": "2"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
| Field | JSON Type | [Internal Type](https://wiki.ripple.com/Binary_Format) | Description |
 | 
			
		||||
|-------|-----------|--------------------------------------------------------|-------------|
 | 
			
		||||
| [Expiration](#expiration) | Unsigned Integer | UInt32 | (Optional) Time after which the offer is no longer active, in [seconds since the Ripple Epoch](rippled-apis.html#specifying-time). |
 | 
			
		||||
| OfferSequence | Unsigned Integer | UInt32 | (Optional) The sequence number of a previous OfferCreate transaction. If specified, cancel any offer node in the ledger that was created by that transaction. It is not considered an error if the offer specified does not exist. |
 | 
			
		||||
| TakerGets | Object (Non-XRP), or <br/>String (XRP) | Amount | The amount and type of currency being provided by the offer creator. |
 | 
			
		||||
| TakerPays | Object (Non-XRP), or <br/>String (XRP) | Amount | The amount and type of currency being requested by the offer creator. |
 | 
			
		||||
 | 
			
		||||
### Lifecycle of an Offer ###
 | 
			
		||||
 | 
			
		||||
When an OfferCreate transaction is processed, it automatically consumes matching or crossing offers to the extent possible. (If existing offers provide a better rate than requested, the offer creator could pay less than the full `TakerGets` amount in order to receive the entire `TakerPays` amount.) If that does not completely fulfill the `TakerPays` amount, then the offer becomes an Offer node in the ledger. (You can use [OfferCreate Flags](#offercreate-flags) to modify this behavior.)
 | 
			
		||||
 | 
			
		||||
An offer in the ledger can be fulfilled either by additional OfferCreate transactions that match up with the existing offers, or by [Payments](#payment) that use the offer to connect the payment path. Offers can be partially fulfilled and partially funded.
 | 
			
		||||
 | 
			
		||||
You can create an Offer so long as you have at least some (any positive, nonzero amount) of the currency specified by the `TakerGets` parameter of the offer. Any amount of that currency you have, up to the `TakerGets` amount, will be sold until the `TakerPays` amount is satisfied. An offer cannot place anyone in debt.
 | 
			
		||||
 | 
			
		||||
It is possible for an offer to become temporarily or permanently *unfunded*:
 | 
			
		||||
 | 
			
		||||
* If the creator no longer has any of the `TakerGets` currency.
 | 
			
		||||
  * The offer becomes funded again when the creator obtains more of that currency.
 | 
			
		||||
* If the currency required to fund the offer is held in a [frozen trust line](https://wiki.ripple.com/Freeze).
 | 
			
		||||
  * The offer becomes funded again when the trust line is no longer frozen.
 | 
			
		||||
* If the creator does not have enough XRP for the reserve amount of a new trust line required by the offer. (See [Offers and Trust](#offers-and-trust).)
 | 
			
		||||
  * The offer becomes funded again when the creator obtains more XRP, or the reserve requirements decrease.
 | 
			
		||||
* If the Expiration time included in the offer is later than the close time of the most recently-closed ledger. (See [Expiration](#expiration).)
 | 
			
		||||
 | 
			
		||||
An unfunded transaction can remain on the ledger indefinitely, but it does not have any effect. The only ways an offer can be *permanently* removed from the ledger are:
 | 
			
		||||
 | 
			
		||||
* It becomes fully claimed by a Payment or a matching OfferCreate transaction.
 | 
			
		||||
* A subsequent OfferCancel or OfferCreate transaction explicitly cancels the offer.
 | 
			
		||||
* A subsequent OfferCreate from the same account crosses the earlier offer. (In this case, the older offer is automatically canceled.)
 | 
			
		||||
* An offer is found to be unfunded during transaction processing, typically because it was at the tip of the orderbook.
 | 
			
		||||
  * This includes cases where one side or the other of an offer is found to be closer to 0 than `rippled`'s precision supports.
 | 
			
		||||
* *Note:* there is a bug that can cause offers to be removed incorrectly in rare circumstances. (See [RIPD-456](https://ripplelabs.atlassian.net/browse/RIPD-456) for status.)
 | 
			
		||||
 | 
			
		||||
### Offers and Trust ###
 | 
			
		||||
 | 
			
		||||
The limit values of trust lines (See [TrustSet](#trustset)) do not affect offers. In other words, you can use an offer to acquire more than the maximum amount you trust an issuing gateway to redeem.
 | 
			
		||||
 | 
			
		||||
However, possessing non-XRP balances still requires a trust line to the account issuing those balances. When an offer is taken, it automatically creates any necessary trust lines, setting their limits to 0. Because [trust lines increase the reserve an account must hold](https://wiki.ripple.com/Reserves), any offers that would require a new trust line also require the account to have the necessary XRP to pay the reserve for that trust line.
 | 
			
		||||
 | 
			
		||||
A trust line indicates an issuer you trust enough to accept their issuances as payment, within limits. Offers are explicit instructions to acquire certain issuances, so they are allowed to go beyond those limits.
 | 
			
		||||
 | 
			
		||||
### Offer Preference ###
 | 
			
		||||
 | 
			
		||||
Existing offers are grouped by "quality", which is measured as the ratio between `TakerGets` and `TakerPays`. Offers with a higher quality are taken preferentially. (That is, the person accepting the offer receives as much as possible for the amount of currency they pay out.) Offers with the same quality are taken on the basis of which offer was placed in the earliest ledger version.
 | 
			
		||||
 | 
			
		||||
When offers of the same quality are placed in the same ledger version, the order in which they are taken is determined by the [canonical order](https://github.com/ripple/rippled/blob/f65cea66ef99b1de149c02c15f06de6c61abf360/src/ripple/app/misc/CanonicalTXSet.cpp "Source: Transaction ordering") in which the transactions were [applied to the ledger](https://github.com/ripple/rippled/blob/develop/src/ripple/app/consensus/LedgerConsensus.cpp#L1404-L1507 "Source: Applying transactions"). This behavior is designed to be deterministic, efficient, and hard to game.
 | 
			
		||||
 | 
			
		||||
### Expiration ###
 | 
			
		||||
 | 
			
		||||
Since transactions can take time to propagate and confirm, the timestamp of a ledger is used to determine offer validity. An offer only expires when its Expiration time occurs prior to the most-recently validated ledger. In other words, an offer with an `Expiration` field is still considered "active" if its expiration time is later than the timestamp of the most-recently validated ledger, regardless of what your local clock says.
 | 
			
		||||
 | 
			
		||||
You can determine the final disposition of an offer with an `Expiration` as soon as you see a fully-validated ledger with a close time equal to or greater than the expiration time.
 | 
			
		||||
 | 
			
		||||
*Note:* Since only new transactions can modify the ledger, an expired offer can remain on the ledger after it becomes inactive. The offer is treated as unfunded and has no effect, but it can continue to appear in results (for example, from the [ledger_entry](rippled-apis.html#ledger-entry) command). Later on, the expired offer can get finally deleted as a result of another transaction (such as another OfferCreate) if the server encounters it while processing.
 | 
			
		||||
 | 
			
		||||
### OfferCreate Flags ###
 | 
			
		||||
 | 
			
		||||
Transactions of the OfferCreate type support additional values in the [`Flags` field](#flags), as follows:
 | 
			
		||||
 | 
			
		||||
| Flag Name | Hex Value | Decimal Value | Description |
 | 
			
		||||
|-----------|-----------|---------------|-------------|
 | 
			
		||||
| tfPassive | 0x00010000 | 65536 | If enabled, the offer will not consume offers that exactly match it, and instead becomes an Offer node in the ledger. It will still consume offers that cross it. |
 | 
			
		||||
| tfImmediateOrCancel | 0x00020000 | 131072 | Treat the offer as an [Immediate or Cancel order](http://en.wikipedia.org/wiki/Immediate_or_cancel). If enabled, the offer will never become a ledger node: it only attempts to match existing offers in the ledger. |
 | 
			
		||||
| tfFillOrKill | 0x00040000 | 262144 | Treat the offer as a [Fill or Kill order](http://en.wikipedia.org/wiki/Fill_or_kill). Only attempt to match existing offers in the ledger, and only do so if the entire `TakerPays` quantity can be obtained. |
 | 
			
		||||
| tfSell | 0x00080000 | 524288 | Exchange the entire `TakerGets` amount, even if it means obtaining more than the `TakerPays` amount in exchange. |
 | 
			
		||||
 | 
			
		||||
The following invalid flag combination prompts a temINVALID_FLAG error:
 | 
			
		||||
 | 
			
		||||
* tfImmediateOrCancel and tfFillOrKill
 | 
			
		||||
 | 
			
		||||
## OfferCancel ##
 | 
			
		||||
 | 
			
		||||
[[Source]<br>](https://github.com/ripple/rippled/blob/master/src/ripple/module/app/transactors/CancelOffer.cpp "Source")
 | 
			
		||||
 | 
			
		||||
An OfferCancel transaction removes an Offer node from the global ledger.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
{
 | 
			
		||||
    "TransactionType": "OfferCancel",
 | 
			
		||||
    "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
 | 
			
		||||
    "Fee": "12",
 | 
			
		||||
    "Flags": 0,
 | 
			
		||||
    "LastLedgerSequence": 7108629,
 | 
			
		||||
    "OfferSequence": 6,
 | 
			
		||||
    "Sequence": 7
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
| Field | JSON Type | [Internal Type](https://wiki.ripple.com/Binary_Format) | Description |
 | 
			
		||||
|-------|-----------|--------------------------------------------------------|-------------|
 | 
			
		||||
| OfferSequence | Unsigned Integer | UInt32 | The sequence number of the offer to cancel. |
 | 
			
		||||
 | 
			
		||||
*Tip:* To remove an old offer and replace it with a new one, you can use an [OfferCreate](#offercreate) transaction with an `OfferSequence` parameter, instead of using OfferCancel and another OfferCreate.
 | 
			
		||||
 | 
			
		||||
The OfferCancel method returns [tesSUCCESS](https://ripple.com/wiki/Transaction_errors) even if it did not find an offer with the matching sequence number.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## TrustSet ##
 | 
			
		||||
 | 
			
		||||
[[Source]<br>](https://github.com/ripple/rippled/blob/master/src/ripple/module/app/transactors/SetTrust.cpp "Source")
 | 
			
		||||
 | 
			
		||||
Create or modify a trust line linking two accounts.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
{
 | 
			
		||||
    "TransactionType": "TrustSet",
 | 
			
		||||
    "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
 | 
			
		||||
    "Fee": "12",
 | 
			
		||||
    "Flags": 262144,
 | 
			
		||||
    "LastLedgerSequence": 8007750,
 | 
			
		||||
    "LimitAmount": {
 | 
			
		||||
      "currency": "USD",
 | 
			
		||||
      "issuer": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc",
 | 
			
		||||
      "value": "100"
 | 
			
		||||
    },
 | 
			
		||||
    "Sequence": 12
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
| Field | JSON Type | [Internal Type](https://wiki.ripple.com/Binary_Format) | Description |
 | 
			
		||||
|-------|-----------|---------------|-------------|
 | 
			
		||||
| [LimitAmount](#trust-limits) | Object | Amount | Object defining the trust line to create or modify, in the same format as [currency amounts](rippled-apis.html#specifying-currency-amounts). |
 | 
			
		||||
| LimitAmount.currency | String | (Amount.currency) | The currency to this trust line applies to, as a three-letter [ISO 4217 Currency Code](http://www.xe.com/iso4217.php) or a 160-bit hex value according to [currency format](https://wiki.ripple.com/Currency_format). "XRP" is invalid. |
 | 
			
		||||
| LimitAmount.value | String | (Amount.value) | Quoted decimal representation of the limit to set on this trust line. |
 | 
			
		||||
| LimitAmount.issuer | String | (Amount.issuer) | The address of the account to extend trust to. |
 | 
			
		||||
| QualityIn | Unsigned Integer | UInt32 | (Optional) % fee for incoming value on this line, represented as an integer over 1,000,000,000. A value of `0` is shorthand for no fee. |
 | 
			
		||||
| QualityOut | Unsigned Integer | UInt32 | (Optional) % fee for outgoing value on this line, represented as an integer over 1,000,000,000. A value of `0` is shorthand for no fee. |
 | 
			
		||||
 | 
			
		||||
### Trust Limits ###
 | 
			
		||||
 | 
			
		||||
All balances on the Ripple Network, except for XRP, represent value owed in the world outside the Ripple Ledger. The account that issues those funds in Ripple (identified by the `issuer` field of the `LimitAmount` object) is responsible for paying the balance back, outside of the Ripple Network, when users redeem their Ripple balances by returning them to the issuing account.
 | 
			
		||||
 | 
			
		||||
Since a computer program cannot force the gateway to keep its promise and not default in real life, trust lines represent a way of configuring how much you are willing to trust the issuing account to hold on your behalf. Since a large, reputable issuing gateway is more likely to be able to pay you back than, say, your broke roommate, you can set different limits on each trust line, to indicate the maximum amount you are willing to let the issuing account "owe" you (off the network) for the funds that you hold on the network. In the case that the issuing gateway defaults or goes out of business, you can lose up to that much money because the balances you hold in the Ripple Network can no longer be exchanged for equivalent balances off the network. (The Ripple Ledger will still reflect that you possess the same balance with that issuing gateway, but you won't be able to redeem, making it unlikely to be worth anything.)
 | 
			
		||||
 | 
			
		||||
There are two cases where you can hold a balance on a trust line that is *greater* than your limit: when you acquire more of that currency through [trading](#offercreate), or when you decrease the limit on your trust line.
 | 
			
		||||
 | 
			
		||||
Since a trust line occupies space in the ledger, [a trust line increases the XRP your account must hold in reserve](https://wiki.ripple.com/Reserves). This applies to the account extending trust, not to the account receiving it.
 | 
			
		||||
 | 
			
		||||
A trust line with a limit *and* a balance of 0 is equivalent to no trust line.
 | 
			
		||||
 | 
			
		||||
### TrustSet Flags ###
 | 
			
		||||
 | 
			
		||||
Transactions of the TrustSet type support additional values in the [`Flags` field](#flags), as follows:
 | 
			
		||||
 | 
			
		||||
| Flag Name | Hex Value | Decimal Value | Description |
 | 
			
		||||
|-----------|-----------|---------------|-------------|
 | 
			
		||||
| tfSetAuth | 0x00010000 | 65536 | Authorize the other party to hold issuances from this account. (No effect unless using the [*asfRequireAuth* AccountSet flag](#accountset-flags).) Cannot be unset. |
 | 
			
		||||
| tfSetNoRipple | 0x00020000 | 131072 | Blocks rippling between two trustlines of the same currency, if this flag is set on both. (See [No Ripple](https://wiki.ripple.com/No_Ripple) for details.) |
 | 
			
		||||
| tfClearNoRipple | 0x00040000 | 262144 | Clears the No-Rippling flag. (See [No Ripple](https://wiki.ripple.com/No_Ripple) for details.) |
 | 
			
		||||
| tfSetFreeze | 0x00100000 | 1048572 | [Freeze](https://wiki.ripple.com/Freeze) the trustline.
 | 
			
		||||
| tfClearFreeze | 0x00200000 | 2097152 | Unfreeze the trustline. |
 | 
			
		||||
 | 
			
		||||
# Pseudo-Transactions #
 | 
			
		||||
 | 
			
		||||
Pseudo-Transactions are never submitted by users, nor propagated through the network. Instead, a server may choose to inject them in a proposed ledger directly. If enough servers inject an equivalent pseudo-transaction for it to pass consensus, then it becomes included in the ledger, and appears in ledger data thereafter.
 | 
			
		||||
 | 
			
		||||
Some of the fields that are mandatory for normal transactions do not make sense for pseudo-transactions. In those cases, the pseudo-transaction has the following default values:
 | 
			
		||||
 | 
			
		||||
| Field | Default Value |
 | 
			
		||||
|-------|---------------|
 | 
			
		||||
| Account | [ACCOUNT_ZERO](https://wiki.ripple.com/Accounts#ACCOUNT_ZERO) |
 | 
			
		||||
| Sequence | 0 |
 | 
			
		||||
| Fee | 0 |
 | 
			
		||||
| SigningPubKey | "" |
 | 
			
		||||
| Signature | "" |
 | 
			
		||||
 | 
			
		||||
## Fee ##
 | 
			
		||||
 | 
			
		||||
A change in transaction or account fees. This is typically in response to changes in the load on the network.
 | 
			
		||||
 | 
			
		||||
*Note:* There have been very few, if any, Fee psuedo-transactions, ever. It is possible, but very unlikely, that you may encounter one in a historical ledger.
 | 
			
		||||
 | 
			
		||||
| Field | JSON Type | [Internal Type](https://wiki.ripple.com/Binary_Format) | Description |
 | 
			
		||||
|-------|-----------|--------------------------------------------------------|-------------|
 | 
			
		||||
| BaseFee | String (Quoted Integer) | UInt64 | The charge, in drops, for the reference transaction. (See [Transaction Fee Terminology](https://ripple.com/wiki/Transaction_Fee#Fee_Terminology) |
 | 
			
		||||
| ReferenceFeeUnits | Unsigned Integer | UInt32 | The cost, in fee units, of the reference transaction |
 | 
			
		||||
| ReserveBase | Unsigned Integer | UInt32 | The base reserve, in drops |
 | 
			
		||||
| ReserveIncrement | Unsigned Integer | UInt32 | The incremental reserve, in drops |
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
/* ----------------------------------------------------------------------------
 | 
			
		||||
 * Fonts
 | 
			
		||||
 */
 | 
			
		||||
@import url("https://fonts.googleapis.com/css?family=Montserrat:700|Open+Sans:300");
 | 
			
		||||
 | 
			
		||||
/* ----------------------------------------------------------------------------
 | 
			
		||||
 * Base
 | 
			
		||||
 */
 | 
			
		||||
@@ -121,7 +121,7 @@ input {
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
a {
 | 
			
		||||
  color: #2badad;
 | 
			
		||||
  color: #3a87ad;
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
}
 | 
			
		||||
a:hover {
 | 
			
		||||
@@ -425,21 +425,23 @@ body.no-literate .content pre > code:hover::-webkit-scrollbar-thumb {
 | 
			
		||||
  -webkit-font-smoothing: antialiased;
 | 
			
		||||
  text-rendering: optimizeLegibility;
 | 
			
		||||
  font-family: montserrat, sans-serif;
 | 
			
		||||
  letter-spacing: -1px;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  padding: 3px 25px;
 | 
			
		||||
  border: solid 2px #2badad;
 | 
			
		||||
  -webkit-border-radius: 20px;
 | 
			
		||||
  border-radius: 20px;
 | 
			
		||||
  -webkit-border-radius: 4px;
 | 
			
		||||
  border-radius: 4px;
 | 
			
		||||
  margin-right: 15px;
 | 
			
		||||
  background: #428bca;
 | 
			
		||||
}
 | 
			
		||||
.button,
 | 
			
		||||
.button:visited {
 | 
			
		||||
  background: #2badad;
 | 
			
		||||
  color: #fff;
 | 
			
		||||
  text-shadow: none;
 | 
			
		||||
}
 | 
			
		||||
.button:hover {
 | 
			
		||||
    text-decoration:none;
 | 
			
		||||
    background: #3071a9;
 | 
			
		||||
}
 | 
			
		||||
/*
 | 
			
		||||
.button:hover {
 | 
			
		||||
  border-color: #111;
 | 
			
		||||
  background: #111;
 | 
			
		||||
@@ -448,15 +450,13 @@ body.no-literate .content pre > code:hover::-webkit-scrollbar-thumb {
 | 
			
		||||
.button.light,
 | 
			
		||||
.button.light:visited {
 | 
			
		||||
  background: transparent;
 | 
			
		||||
  color: #9090aa;
 | 
			
		||||
  border-color: #9090aa;
 | 
			
		||||
  text-shadow: none;
 | 
			
		||||
}
 | 
			
		||||
.button.light:hover {
 | 
			
		||||
  border-color: #9090aa;
 | 
			
		||||
  background: #9090aa;
 | 
			
		||||
  color: #fff;
 | 
			
		||||
}
 | 
			
		||||
}*/
 | 
			
		||||
.content .button + em {
 | 
			
		||||
  color: #9090aa;
 | 
			
		||||
}
 | 
			
		||||
@@ -662,18 +662,18 @@ a.big.button {
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  font-size: 1.1em;
 | 
			
		||||
  background: transparent;
 | 
			
		||||
  border: solid 3px #2badad;
 | 
			
		||||
  border: solid 3px #3a87ad;
 | 
			
		||||
  -webkit-border-radius: 30px;
 | 
			
		||||
  border-radius: 30px;
 | 
			
		||||
  font-family: montserrat, sans-serif;
 | 
			
		||||
}
 | 
			
		||||
a.big.button,
 | 
			
		||||
a.big.button:visited {
 | 
			
		||||
  color: #2badad;
 | 
			
		||||
  color: #3a87ad;
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
}
 | 
			
		||||
a.big.button:hover {
 | 
			
		||||
  background: #2badad;
 | 
			
		||||
  background: #3a87ad;
 | 
			
		||||
}
 | 
			
		||||
a.big.button:hover,
 | 
			
		||||
a.big.button:hover:visited {
 | 
			
		||||
@@ -685,12 +685,12 @@ a.big.button:hover:visited {
 | 
			
		||||
    border-bottom: solid 1px #dfe2e7;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@media (max-width: 768px) /* Mobile and tablet */ {
 | 
			
		||||
@media (max-width: 990px) /* Mobile and tablet */ {
 | 
			
		||||
  .menubar {
 | 
			
		||||
    display: none;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@media (min-width: 768px) /* Desktop */ {
 | 
			
		||||
@media (min-width: 990px) /* Desktop */ {
 | 
			
		||||
  .content-root {
 | 
			
		||||
    padding-left: 230px;
 | 
			
		||||
  }
 | 
			
		||||
@@ -743,7 +743,7 @@ a.big.button:hover:visited {
 | 
			
		||||
}
 | 
			
		||||
.menu a,
 | 
			
		||||
.menu a:visited {
 | 
			
		||||
  color: #2badad;
 | 
			
		||||
  color: #3a87ad;
 | 
			
		||||
}
 | 
			
		||||
.menu a:hover {
 | 
			
		||||
  color: #228a8a;
 | 
			
		||||
@@ -790,7 +790,7 @@ a.big.button:hover:visited {
 | 
			
		||||
  height: 3px;
 | 
			
		||||
  -webkit-border-radius: 2px;
 | 
			
		||||
  border-radius: 2px;
 | 
			
		||||
  background: #2badad;
 | 
			
		||||
  background: #3a87ad;
 | 
			
		||||
}
 | 
			
		||||
code .string,
 | 
			
		||||
code .number {
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								www/.DS_Store
									
									
									
									
										vendored
									
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								www/favicon.ico
									
									
									
									
									
								
							
							
						
						| 
		 Before Width: | Height: | Size: 430 B  | 
							
								
								
									
										120
									
								
								www/index.html
									
									
									
									
									
								
							
							
						
						@@ -1,120 +0,0 @@
 | 
			
		||||
<!doctype html>
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
  <meta charset='utf-8'>
 | 
			
		||||
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 | 
			
		||||
  <meta name="viewport" content="width=device-width">
 | 
			
		||||
 | 
			
		||||
  <title>Ripple Developer Portal: Introduction</title>
 | 
			
		||||
 | 
			
		||||
  <!-- favicon -->
 | 
			
		||||
  <link rel="icon" href="favicon.ico" type="image/x-icon"> 
 | 
			
		||||
  <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> 
 | 
			
		||||
 | 
			
		||||
  <!-- Flatdoc -->
 | 
			
		||||
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
 | 
			
		||||
  <script src='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/legacy.js'></script>
 | 
			
		||||
  <script src='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/flatdoc.js'></script>
 | 
			
		||||
 | 
			
		||||
  <!-- Flatdoc theme -->
 | 
			
		||||
  <link  href='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/theme-white/style.css' rel='stylesheet'>
 | 
			
		||||
  <script src='https://dev.ripple.com/vendor/flatdoc/v/0.8.0/theme-white/script.js'></script>
 | 
			
		||||
 | 
			
		||||
  <!-- Custom Stylesheet -->
 | 
			
		||||
  <link href='https://fonts.googleapis.com/css?family=Open+Sans:600italic,400,700,300' rel='stylesheet' type='text/css'>
 | 
			
		||||
  <link  href='https://dev.ripple.com/css/main.css' rel='stylesheet'>
 | 
			
		||||
 | 
			
		||||
  <!-- start Mixpanel -->
 | 
			
		||||
  <script type="text/javascript">(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src=("https:"===e.location.protocol?"https:":"http:")+'//cdn.mxpnl.com/libs/mixpanel-2.2.min.js';f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f);b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==
 | 
			
		||||
typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" ");for(g=0;g<i.length;g++)f(c,i[g]);
 | 
			
		||||
b._i.push([a,e,d])};b.__SV=1.2}})(document,window.mixpanel||[]);
 | 
			
		||||
mixpanel.init("132d42885e094171f34467fc54da6fab");
 | 
			
		||||
  </script>
 | 
			
		||||
    
 | 
			
		||||
  <script>mixpanel.track("View");</script>    
 | 
			
		||||
  <!-- end Mixpanel -->
 | 
			
		||||
 | 
			
		||||
  <!-- start google analytics -->
 | 
			
		||||
  <script>
 | 
			
		||||
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
 | 
			
		||||
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
 | 
			
		||||
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
 | 
			
		||||
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 | 
			
		||||
 | 
			
		||||
  ga('create', 'UA-49188512-1', 'ripple.com');
 | 
			
		||||
  ga('send', 'pageview');
 | 
			
		||||
 | 
			
		||||
  </script>
 | 
			
		||||
  <!-- end google analytics -->  
 | 
			
		||||
    
 | 
			
		||||
  <!-- Initializer -->
 | 
			
		||||
  <script>
 | 
			
		||||
    var GET_VARS = window.location.search.replace("?","").split("&");
 | 
			
		||||
    if (GET_VARS.indexOf("p=web-sockets-api")>-1) {
 | 
			
		||||
        var fdfile = "websocket_api.md";
 | 
			
		||||
        $('.header-subnav').removeClass('active');
 | 
			
		||||
        $('#subnav-websocket').addClass('active');
 | 
			
		||||
        document.title = "Ripple Dev Portal: WebSocket and JSON-RPC APIs";
 | 
			
		||||
    } else if (GET_VARS.indexOf("p=ripple-rest-api")>-1) {
 | 
			
		||||
        var fdfile = "ripplerest_api.md";
 | 
			
		||||
        $('.header-subnav').removeClass('active');
 | 
			
		||||
        $('#subnav-rest').addClass('active');
 | 
			
		||||
        document.title = "Ripple Dev Portal: Ripple-REST API";
 | 
			
		||||
    } else {
 | 
			
		||||
        var fdfile = "intro.md";
 | 
			
		||||
        $('.header-subnav').removeClass('active');
 | 
			
		||||
        $('#subnav-intro').addClass('active');
 | 
			
		||||
        document.title = "Ripple Dev Portal: Introduction";
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    Flatdoc.run({
 | 
			
		||||
      fetcher: Flatdoc.file(fdfile)
 | 
			
		||||
    });
 | 
			
		||||
  </script>
 | 
			
		||||
  
 | 
			
		||||
  <!-- syntax selection js -->
 | 
			
		||||
  <script src='js/multicodetab.js'></script>
 | 
			
		||||
  <script>
 | 
			
		||||
    $(document).on('flatdoc:ready', $().multicode_tabs);
 | 
			
		||||
  </script>
 | 
			
		||||
  <!-- Temporary shims until I modify the css directly -->
 | 
			
		||||
  <link type='text/css' rel='stylesheet' href='css/mod.css' />
 | 
			
		||||
  <script src='js/expandcode.js'></script>
 | 
			
		||||
  
 | 
			
		||||
</head>
 | 
			
		||||
<body role='flatdoc' class='no-literate'>
 | 
			
		||||
<!--Draft warning would go here-->
 | 
			
		||||
  <div class='header'>
 | 
			
		||||
    <div class='left'>
 | 
			
		||||
      <h1>{<i class="icon-ripple-logo"></i>}</h1>
 | 
			
		||||
      <ul>
 | 
			
		||||
        <li class="active"><a href='#'>Documentation</a></li>
 | 
			
		||||
        <li><a href='https://ripple.com/dev/blog'>Developer blog</a></li>
 | 
			
		||||
        <li><a href='https://ripple.com/forum/viewforum.php?f=2&sid=c016bc6b934120b7117c0e136e74de98' target='_blank'>Developer Forum</a></li>
 | 
			
		||||
        <li><a href='guidelines.html'>Brand Guidelines</a></li>
 | 
			
		||||
        <li><a href='https://ripple.com/forum/viewforum.php?f=20' target='_blank'>Bounties</a></li>  
 | 
			
		||||
      </ul>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class='right'>
 | 
			
		||||
      <!-- GitHub buttons: ghbtn.html -->
 | 
			
		||||
      <iframe src="https://dev.ripple.com/vendor/ghbtn.html?user=ripple&repo=ripple-dev-portal&type=watch&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="110" height="20"></iframe>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div class='header-subnav'>
 | 
			
		||||
    <ul>
 | 
			
		||||
        <li><a href='?p=introduction' id='subnav-intro'>Introduction</a></li>
 | 
			
		||||
        <li><a href='?p=ripple-rest-api' id='subnav-rest'>Ripple-REST API</a></li>
 | 
			
		||||
        <li><a href='?p=web-sockets-api' id='subnav-websocket'>WebSocket & JSON-RPC APIs</a></li>
 | 
			
		||||
    </ul>
 | 
			
		||||
    <div class='clearer'> </div>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
  <div class='content-root'>
 | 
			
		||||
    <div class='menubar'>
 | 
			
		||||
      <div class='menu section' role='flatdoc-menu'></div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div role='flatdoc-content' class='content'></div>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||